Agents

Treasury Steward

Enforces the treasury's rules, with proof.

Give it the treasury's assets and its investment policy (minimum liquidity, maximum holder concentration, maximum funding, maximum exchange inflow, mint authority, maximum exit slippage, maximum share of market cap). It tests every asset against every rule — exit slippage with a live DEX quote for the actual position size — and returns pass/fail per rule per asset, each backed by a proof id, ready to attach to a governance vote.

When to use it #

  • A DAO or company treasury must prove its holdings meet its investment policy.
  • Before a governance vote, to attach evidence to a proposal.

Built for: DAO treasuries & vaults · Risk & compliance teams

How it decides #

  • Checks every asset against every rule: minimum depth, top-10 holders, funding, exchange inflow, mint authority, exit slippage for the whole position, and share of market cap.
  • Exit slippage uses the cheaper of a live on-chain sell quote and the exchange order books.
  • Native coins (ADA, SOL, ETH…) have no token contract, so no admin can mint; the mint rule passes for them.

Verdicts #

VerdictMeaning
COMPLIANTEvery asset passes every rule.
BREACHAt least one rule fails.
INCOMPLETENo failures, but at least one rule could not be measured.

Input #

POST/v1/agents/treasury-steward

Body

  • assetsobject[]required

  • policyobjectrequired

  • policy.min_depth_usdnumberoptional

    Minimum liquidity within 2% of price
  • policy.max_top10_holder_pctnumberoptional

  • policy.max_funding_pctnumberoptional

  • policy.max_exchange_inflow_usdnumberoptional

  • policy.allow_mint_authoritybooleanoptional

  • policy.max_exit_slippage_pctnumberoptional

    Largest acceptable price impact to sell the whole position
  • policy.max_position_pct_of_market_capnumberoptional

Examples #

Real runs, captured from the live service.

A $20K community treasury in ADA, LINK and SOL

Request
curl -X POST "https://coingraph.ai/api/v1/agents/treasury-steward" \
  -H "content-type: application/json" \
  -d '{"assets":[{"token":"cardano","value_usd":9000},{"token":"chainlink","value_usd":6000},{"token":"solana","value_usd":5000}],"policy":{"min_depth_usd":500000,"max_exit_slippage_pct":1,"allow_mint_authority":false,"max_position_pct_of_market_cap":0.5}}'
Response · real, captured 2026-10-06 23:24 UTC · long lists trimmed
{
  "object": "agent_run",
  "id": "run_51d0dbf65d40e51b307f",
  "as_of": "2026-10-06T23:23:27.252Z",
  "data": {
    "run_id": "run_51d0dbf65d40e51b307f",
    "agent": "treasury-steward",
    "agent_version": "1.0.0",
    "as_of": "2026-10-06T23:23:27.252Z",
    "verdict": "COMPLIANT",
    "summary": "All 3 assets ($20K) comply with the policy.",
    "result": {
      "assets": [
        {
          "token": {
            "id": "cardano",
            "symbol": "ADA"
          },
          "value_usd": 9000,
          "status": "compliant",
          "rules": {
            "min_depth_usd": {
              "result": "pass",
              "detail": "required $500K, available $70.9M"
            },
            "allow_mint_authority": {
              "result": "pass",
              "detail": "native coin: no token contract, so no admin can mint or freeze; new supply follows the protocol's issuance rules"
            },
            "max_exit_slippage_pct": {
              "result": "pass",
              "detail": "selling $9K costs about under 0.01% on exchange order books (limit 1%)"
            },
            "max_position_pct_of_market_cap": {
              "result": "pass",
              "detail": "0.000% of market cap (limit 0.5%)"
            }
          },
          "check": "proceed",
          "proof_id": "eval_cb74732ac83a2e5f3a9f"
        },
        {
          "token": {
            "id": "chainlink",
            "symbol": "LINK"
          },
          "value_usd": 6000,
          "status": "compliant",
          "rules": {
            "min_depth_usd": {
              "result": "pass",
              "detail": "required $500K, available $3.3M"
            },
            "allow_mint_authority": {
              "result": "pass",
              "detail": "no mint or freeze authority"
            },
            "max_exit_slippage_pct": {
              "result": "pass",
              "detail": "selling $6K costs about under 0.01% on exchange order books (limit 1%)"
            },
            "max_position_pct_of_market_cap": {
              "result": "pass",
              "detail": "0.000% of market cap (limit 0.5%)"
            }
          },
          "check": "proceed",
          "proof_id": "eval_3f9d49bd4f48c9afe69d"
        },
        {
          "token": {
            "id": "solana",
            "symbol": "SOL"
          },
          "value_usd": 5000,
          "status": "compliant",
          "rules": {
            "min_depth_usd": {
              "result": "pass",
              "detail": "required $500K, available $109.7M"
            },
            "allow_mint_authority": {
              "result": "pass",
              "detail": "native coin: no token contract, so no admin can mint or freeze; new supply follows the protocol's issuance rules"
            },
            "max_exit_slippage_pct": {
              "result": "pass",
              "detail": "selling $5K costs about under 0.01% on exchange order books (limit 1%)"
            },
            "max_position_pct_of_market_cap": {
              "result": "pass",
              "detail": "0.000% of market cap (limit 0.5%)"
            }
          },
          "check": "proceed",
          "proof_id": "eval_de710b558e9e465fccd9"
        }
      ],
      "policy": {
        "min_depth_usd": 500000,
        "allow_mint_authority": false,
        "max_exit_slippage_pct": 1,
        "max_position_pct_of_market_cap": 0.5
      },
      "total_usd": 20000
    },
    "reasons": [],
    "warnings": [],
    "links": {
      "proof_ADA": "/api/v1/verify/eval_cb74732ac83a2e5f3a9f",
      "proof_LINK": "/api/v1/verify/eval_3f9d49bd4f48c9afe69d",
      "proof_SOL": "/api/v1/verify/eval_de710b558e9e465fccd9"
    },
    "disclaimer": "CoinGraph never trades, holds funds or gives financial advice. The caller decides.",
    "hash": "87ab1fdbf5b5d32ae89cadcfbbb772284fb05c18562c858b7f36504941f03922",
    "verify_url": "https://coingraph.ai/api/v1/verify/run_51d0dbf65d40e51b307f"
  },
  "sources": []
}

Result fields #

Inside data.result:

FieldContents
assets[]Token, value, status, every rule's pass / fail / unknown with detail, and a proof id.
total_usdThe treasury's total.

Use it from Claude #

With CoinGraph connected (how), ask in plain words, or call the tool directly:

MCP tools/call
{
  "name": "run_treasury_steward",
  "arguments": {
    "assets": [
      {
        "token": "cardano",
        "value_usd": 9000
      },
      {
        "token": "chainlink",
        "value_usd": 6000
      },
      {
        "token": "solana",
        "value_usd": 5000
      }
    ],
    "policy": {
      "min_depth_usd": 500000,
      "max_exit_slippage_pct": 1,
      "allow_mint_authority": false,
      "max_position_pct_of_market_cap": 0.5
    }
  }
}

The proof for any run: https://coingraph.ai/proof/run_…