addrbookFor publishers
← The evidence ledger

Evidence row 276105

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b295023b-63b8-45b5-ae95-b022ece77c71
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d1fcbc490c03fbf4191a0ce4b4b1386bd19c3d58d43483b880a4a83b1e8a888f
Leaf
0x2ddc42318bed9ff11cf5d425bb018ecb9a750a009449440505559a4b238b051d

What was observed

{
  "count": 16,
  "tools": [
    {
      "description": "Buy `amount_usdc` of USDC worth of the RWA `asset_id` (e.g. 'paxg').\n    **Requires sign-in + a one-time wallet delegation** at\n    app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy\n    delegation, capped per-trade — no key, no per-trade approval. Your smart\n    account must already hold USDC (see realmint_deposit). Moves real funds.",
      "inputSchema": {
        "properties": {
          "amount_usdc": {
            "title": "Amount Usdc",
            "type": "number"
          },
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id",
          "amount_usdc"
        ],
        "title": "realmint_buyArguments",
        "type": "object"
      },
      "name": "realmint_buy"
    },
    {
      "description": "Show where to send USDC to fund your buying power. **Requires sign-in.**\n    Send USDC on Base to your EVM wallet; it funds your smart account for buys.",
      "inputSchema": {
        "properties": {},
        "title": "realmint_depositArguments",
        "type": "object"
      },
      "name": "realmint_deposit"
    },
    {
      "description": "\n    Get the full schema for a specific RWA by asset ID.\n    Includes issuer details, control capabilities (freeze/mint/burn/blacklist),\n    transferability restrictions, redemption mechanics, and legal documents.\n\n    The asset ID is the lowercased ticker (e.g. \"xaut\", \"paxg\", \"kau\", \"agri\",\n    \"cgo\"). Use `realmint_list_assets` to discover all available IDs — the\n    catalog spans ~30 tokens across multiple chains and changes over time.\n\n    Always read `metadata.lifecycle` from the response: a non-null lifecycle\n    means the token is migrated/discontinued/abandoned and trading is\n    disallowed (score is hard-capped at 49).\n    ",
      "inputSchema": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id"
        ],
        "title": "realmint_get_assetArguments",
        "type": "object"
      },
      "name": "realmint_get_asset"
    },
    {
      "description": "\n    Get the versioned metadata change history for an asset.\n    Each entry records what changed (created, updated) and a full schema snapshot.\n    Useful for detecting when an issuer changes terms or control parameters.\n    ",
      "inputSchema": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id"
        ],
        "title": "realmint_get_asset_historyArguments",
        "type": "object"
      },
      "name": "realmint_get_asset_history"
    },
    {
      "description": "\n    Time-series price history for an asset.\n\n    Args:\n        asset_id: Asset identifier\n        days: Lookback in days (1-730, default 30)\n        granularity: Optional explicit bucket — \"5m\" | \"1h\" | \"1d\". Omit to\n            auto-pick (≤2d → 5m, ≤30d → 1h, else 1d). The server cascades to\n            coarser buckets when the requested one is empty for this asset.\n    ",
      "inputSchema": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          },
          "days": {
            "default": 30,
            "title": "Days",
            "type": "integer"
          },
          "granularity": {
            "default": "",
            "title": "Granularity",
            "type": "string"
          }
        },
        "required": [
          "asset_id"
        ],
        "title": "realmint_get_price_historyArguments",
        "type": "object"
      },
      "name": "realmint_get_price_history"
    },
    {
      "description": "\n    List the venues and chains that can route this asset, plus per-venue\n    backing/liquidity/social scores and policy flags. Use this to check\n    whether a trade is even feasible before quoting — `routing_enabled=false`\n    or an empty venue list means the asset can be inspected but not traded\n    via Realmint.\n    ",
      "inputSchema": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id"
        ],
        "title": "realmint_get_route_supportArguments",
        "type": "object"
      },
      "name": "realmint_get_route_support"
    },
    {
      "description": "\n    Get the Risk & Rights Score for an asset across six dimensions:\n    - backing (0-100): proof of reserves, audit cadence, backing mechanism\n    - enforceability (0-100): governing law, issuer verification, legal documents\n    - control (0-100): issuer power risk — freeze, mint, burn, blacklist, upgrade\n    - exit (0-100): redemption, transferability, KYC/whitelist, settlement, holding periods\n    - liquidity (0-100): market data, venue count, evidence docs\n    - social (0-100): Twitter activity (recency-weighted; unverified handles\n      are penalized below the worst observed tier)\n    Also returns a weighted composite (0-100, higher is better). Weights and\n    penalty tiers are versioned server-side — see `policy_version` in the\n    response.\n\n    Combine with the asset's `metadata.lifecycle` field (from\n    `realmint_get_asset`) to detect dead/migrated tokens — those are\n    score-capped at 49.\n\n    Suggested thresholds for decision-making:\n    - composite ≥ 75: typical case, proceed\n    - 55 ≤ composite < 75: elevated friction (gates, missing audits, etc.);\n      review the asset's flags before proceeding\n    - composite < 55: high risk; abort or require explicit user override\n    ",
      "inputSchema": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id"
        ],
        "title": "realmint_get_scoreArguments",
        "type": "object"
      },
      "name": "realmint_get_score"
    },
    {
      "description": "\n    List all tokenized real-world assets (RWAs) indexed by Realmint.\n    Returns the full schema for each asset including ownership, control,\n    transferability, redemption terms, and legal metadata.\n    ",
      "inputSchema": {
        "properties": {},
        "title": "realmint_list_assetsArguments",
        "type": "object"
      },
      "name": "realmint_list_assets"
    },
    {
      "description": "\n    List instruments — the real-world things tokens represent: an underlying\n    at a specific denomination (\"Silver · 1 oz\") or a stock (\"Apple\"). Tokens\n    sharing an instrument are interchangeable representations of the same\n    thing. Each entry carries its member token ids, the recommended member\n    (buyable > priced > score), and the floor price across members — use it to\n    pick the best token for an instrument before quoting or buying.\n    ",
      "inputSchema": {
        "properties": {},
        "title": "realmint_list_instrumentsArguments",
        "type": "object"
      },
      "name": "realmint_list_instruments"
    },
    {
      "description": "\n    Market snapshots for indexed RWAs: spot price, 24h change, volume, market\n    cap, venue count, and a short price history series. Combine with\n    `realmint_get_score` to compare risk against liquidity.\n\n    Args:\n        ids: Optional comma-separated asset IDs to filter (e.g. \"xaut,paxg\").\n             Empty = all assets. Assets without fresh market data are omitted\n             from the response.\n    ",
      "inputSchema": {
        "properties": {
          "ids": {
            "default": "",
            "title": "Ids",
            "type": "string"
          }
        },
        "title": "realmint_list_marketArguments",
        "type": "object"
      },
      "name": "realmint_list_market"
    },
    {
      "description": "Sign out note: Realmint keeps no signing session — server-side signing is\n    your standing Privy **delegation**. To fully revoke it, go to\n    app.realmint.io/mcp/delegate. Disconnecting the connector ends this session.",
      "inputSchema": {
        "properties": {},
        "title": "realmint_logoutArguments",
        "type": "object"
      },
      "name": "realmint_logout"
    },
    {
      "description": "Show your Realmint wallet (EVM + Solana), smart account, and balances.\n    **Requires sign-in.** Read-only; moves no funds.",
      "inputSchema": {
        "properties": {},
        "title": "realmint_my_walletArguments",
        "type": "object"
      },
      "name": "realmint_my_wallet"
    },
    {
      "description": "Sell `amount` of the RWA `asset_id` you hold, settling USDC back on\n    Injective. **Requires sign-in + a one-time wallet delegation** at\n    app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy\n    delegation — no key, no per-trade approval. Sells positions bought over MCP\n    (held in your derived Realmint Wallet). Moves real funds.",
      "inputSchema": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "number"
          },
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          }
        },
        "required": [
          "asset_id",
          "amount"
        ],
        "title": "realmint_sellArguments",
        "type": "object"
      },
      "name": "realmint_sell"
    },
    {
      "description": "Return the signed-in user's identity. This tool **requires authentication**\n    — calling it triggers the Realmint sign-in (OAuth) if you're not signed in.\n    Use it to confirm who you're acting as. Read-only; moves no funds.",
      "inputSchema": {
        "properties": {},
        "title": "realmint_whoamiArguments",
        "type": "object"
      },
      "name": "realmint_whoami"
    },
    {
      "description": "Withdraw `amount_usdc` USDC from your Realmint smart account to `recipient`\n    (any address). **Requires sign-in + a one-time wallet delegation** at\n    app.realmint.io/mcp/delegate. Realmint signs server-side via your Privy\n    delegation, capped per-transaction — no key, no per-withdraw approval. Native\n    USDC on Injective. Moves real funds.\n\n    `smart_account_address` (advanced/recovery, normally leave empty): sweep from\n    a specific smart account you own that a factory rotation left behind. Only an\n    SA CREATE2-owned by you is accepted.",
      "inputSchema": {
        "properties": {
          "amount_usdc": {
            "title": "Amount Usdc",
            "type": "number"
          },
          "recipient": {
            "title": "Recipient",
            "type": "string"
          },
          "smart_account_address": {
            "default": "",
            "title": "Smart Account Address",
            "type": "string"
          }
        },
        "required": [
          "recipient",
          "amount_usdc"
        ],
        "title": "realmint_withdrawArguments",
        "type": "object"
      },
      "name": "realmint_withdraw"
    },
    {
      "description": "\n    Get the x402 payment requirements to fund yourself in USDC so you can buy\n    RWAs — the agent-native on-ramp. This returns the 402 challenge only; it\n    moves no funds.\n\n    To complete funding (two signatures total, the same a human gives), the\n    agent then, ENTIRELY CLIENT-SIDE:\n      1. Reads `accepts[0]` from the returned body: `payTo` is YOUR Base smart\n         account (derived from `owner_eoa`), `maxAmountRequired` the USDC atomic\n         amount, `asset` the Base USDC contract, `extra` the EIP-712 domain.\n      2. Signs an EIP-3009 `transferWithAuthorization(from=owner_eoa, to=payTo,\n         value=maxAmountRequired, ...)` over that domain, base64-encodes the\n         x402 PaymentPayload, and re-POSTs to `/v1/route/x402-buy` with it in the\n         `X-PAYMENT` header. On settlement the USDC bridges custody-free to your\n         Injective smart account.\n      3. Buys any RWA from that Injective balance via `POST /v1/route/intent`\n         (signing the route as usual). The asset rests in your smart account;\n         `send` it elsewhere if you want — exactly like a human user.\n\n    Always verify `payTo` derives from your own `owner_eoa` before signing.\n\n    Args:\n        owner_eoa: Your EVM EOA — the payment signer and smart-account owner.\n        amount_usdc: USDC to fund yourself with (human units, e.g. 25.0).\n        asset_id: Optional RWA you intend to buy, recorded for context.\n    ",
      "inputSchema": {
        "properties": {
          "amount_usdc": {
            "title": "Amount Usdc",
            "type": "number"
          },
          "asset_id": {
            "default": "",
            "title": "Asset Id",
            "type": "string"
          },
          "owner_eoa": {
            "title": "Owner Eoa",
            "type": "string"
          }
        },
        "required": [
          "owner_eoa",
          "amount_usdc"
        ],
        "title": "realmint_x402_buy_challengeArguments",
        "type": "object"
      },
      "name": "realmint_x402_buy_challenge"
    }
  ]
}

What the leaf hashes

{"body":"d1fcbc490c03fbf4191a0ce4b4b1386bd19c3d58d43483b880a4a83b1e8a888f","id":276105,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793041045098899,"prev":null,"subject":"b295023b-63b8-45b5-ae95-b022ece77c71","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x2ddbff5d1d992c49229a537c187aba600be81a84ddd79abf934c294b2a5e0da7
  2. 0xf1c1f9fb129ae2aa995e73d3ebcd389de53e042f4da4801376cdee42b08d2598
  3. 0x5685cda02939f343ec6c76f1babb7bef68fa1fbed08196467bd739e2cd27cb73
  4. 0xefb7d3ccca60620dfc3f7fa1b41e1ce9f6f2892d4fbd47e8ff095f62cfc1752d
  5. 0x6de9bdb4b5f342ee07cae13d724df58cddb926f68aa2409de80f2810d60acc50
  6. 0x9dcb7d0f9e1be30ee820f8faf35f3092688bbcb804129e7ae854aa47124dafee
  7. 0x4bc67770cce1ec4bbc9cd323ba43aa7675f519fbbf7b08a2b5f9b192aee171a9
  8. 0x14356e3fe1b449e959805a7df87190b5f99d71446d00129c320da101df112046
  9. 0x36c7a4604aff36363924174b7e9f04643fef946b698610045ddb5b142794756b
  10. 0x1859ecce266f09009e2bb998b57fb91dc34a74ec4cf0a4a573732ebfec820dee
  11. 0x0a14d7531a251f3320f61b058ccd68e743331eaf8f3058982b949d68be76670c
  12. 0xf89d9951e0a8e08b9cf11177a1f4e0fd86d9facc5dfecaabbfe564675ebefef7
  13. 0xb87e8b32cda179c9e632e227bbd8a6d1f6f61d9d81bb92dbd4dd835d2b3b5caa
  14. 0x683955a5b2250ad50568d022a6580d8739b6aff1356779d72a773b088e7c289c
  15. 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON