addrbookFor publishers
← The evidence ledger

Evidence row 296685

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f1dd03f0-9c1f-458d-8b3b-980853991394
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c435f7ba4f88fa85c84cb3f14dd0eb5cc603c23c81235cabadcf616ca80f1276
Leaf
0xd4046194b025124e714d689e7e4201da40f743ab4b9fbce6e44c2d8d6c87ff56

What was observed

{
  "count": 59,
  "tools": [
    {
      "description": "Checks whether a string is a well-formed address for EVM (EIP-55 checksum), Solana, Aptos (AIP-40) or Bitcoin (base58check, bech32, bech32m). With family \"auto\" it lists every family the string could be, and never picks one. A valid format is not evidence an address is safe, owned, or the one you meant.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "family": {
            "enum": [
              "evm",
              "solana",
              "aptos",
              "bitcoin",
              "auto"
            ],
            "type": "string"
          }
        },
        "required": [
          "address",
          "family"
        ],
        "type": "object"
      },
      "name": "address_format_check"
    },
    {
      "description": "Validates an address for a chain and returns its canonical form. EVM: EIP-55 (a wrong checksum is refused, never corrected). Aptos: AIP-40 strict form. Says only what can be known offline; it never guesses what kind of account an address is.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "chain": {
            "description": "CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like \"base\" are refused.",
            "type": [
              "string",
              "number"
            ]
          }
        },
        "required": [
          "chain",
          "address"
        ],
        "type": "object"
      },
      "name": "address_validate"
    },
    {
      "description": "Step 1 (free): builds the ERC-8004 registration file and A2A agent card LogicNodes will host for your agent, and the exact message your agent address must sign (personal_sign) to publish them with agent_register_publish.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "a2aUrl": {
            "description": "the agent's own A2A JSON-RPC endpoint",
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "address": {
            "description": "the agent's EVM address (it signs the publish message and the registration transaction)",
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "minLength": 10,
            "type": "string"
          },
          "imageUrl": {
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "mcpUrl": {
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          },
          "url": {
            "description": "the agent's website",
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "x402": {
            "description": "true if the agent accepts x402 payments",
            "type": "boolean"
          }
        },
        "required": [
          "address",
          "name",
          "description"
        ],
        "type": "object"
      },
      "name": "agent_register_prepare"
    },
    {
      "description": "[PAID $5.00 USDC per call via x402] Step 2: with the signature from agent_register_prepare, LogicNodes hosts the registration file at https://logicnodes.io/a/<address>/registration.json and the agent card next to it, and returns the unsigned transaction that calls register(tokenURI) on the ERC-8004 identity registry on Base (0x8004A169FB4a3325136EB29fA0ceB6D2e539a432). Your agent signs and sends it and pays the gas; LogicNodes never holds keys. Calling again with a new signature updates the hosted files.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "a2aUrl": {
            "description": "the agent's own A2A JSON-RPC endpoint",
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "address": {
            "description": "the agent's EVM address (it signs the publish message and the registration transaction)",
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "minLength": 10,
            "type": "string"
          },
          "imageUrl": {
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "mcpUrl": {
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          },
          "signature": {
            "pattern": "^0x[0-9a-fA-F]{130}$",
            "type": "string"
          },
          "url": {
            "description": "the agent's website",
            "format": "uri",
            "maxLength": 300,
            "type": "string"
          },
          "x402": {
            "description": "true if the agent accepts x402 payments",
            "type": "boolean"
          }
        },
        "required": [
          "address",
          "name",
          "description",
          "signature"
        ],
        "type": "object"
      },
      "name": "agent_register_publish"
    },
    {
      "description": "Validates an address against the Aptos address standard (AIP-40) and returns its canonical form: special addresses (0x0-0xf) as short form, all others as 0x + 64 digits. Strict by default; mode=relaxed also accepts a missing 0x or a few dropped leading zeros, and says which spelling you used (a truncated-looking address is always refused). With lookup=true it checks the chain to say whether the address is an account, an object, or neither, at one ledger version.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "lookup": {
            "type": "boolean"
          },
          "mode": {
            "enum": [
              "strict",
              "relaxed"
            ],
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "aptos_address_validate"
    },
    {
      "description": "Converts between a human decimal amount and integer base units, using the asset's decimals read LIVE from the chain (never assumed from a symbol). Refuses to round: more decimal places than the asset has is an error. An ambiguous symbol returns AMBIGUOUS_INPUT.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "string"
          },
          "asset": {
            "type": "string"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "direction": {
            "enum": [
              "toBase",
              "toHuman"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "direction",
          "asset"
        ],
        "type": "object"
      },
      "name": "aptos_amount_convert"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Turns a symbol, registry id, fungible-asset address or coin type into one asset, with its on-chain symbol/name/decimals read live. Several different assets share the symbols USDC and USDT (Circle/Tether native vs LayerZero-bridged); those return AMBIGUOUS_INPUT with every candidate, its issuer and how to select it. Assets outside the registry are returned with verified:false, never silently trusted.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "caseSensitive": {
            "type": "boolean"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "query": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "aptos_asset_resolve"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Balances of an address for APT and fungible assets, all read at ONE ledger version (stated, or the current one pinned). Amounts are exact integer strings plus decimal strings. Default assets: APT and every verified asset; pass `assets` (symbols, ids, addresses, coin types) to choose. An ambiguous symbol fails the whole call. An address with no account and all-zero balances is reported honestly, not as an empty account.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "assets": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "ledgerVersion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ],
            "description": "read the chain exactly as of this ledger version (default: the current one, pinned for consistency)"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "aptos_balance_get"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.005 USDC per call via x402] Gas unit price tiers (deprioritized/regular/prioritized) plus the cost of common transactions in octas, APT and USD. Gas units are MEASURED by simulating real transfers now, not taken from a table. USD comes only from two independent exchanges that agree; otherwise USD is explicitly unavailable. Transaction types: apt_transfer, apt_transfer_new_account; for anything else use aptos_tx_simulate.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "txTypes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "aptos_fee_estimate"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] name -> address, or address -> primary name (give exactly one). A name resolves to its TARGET address, which can differ from its owner; a registered name with no target resolves to nothing (NOT_FOUND) and its owner is never substituted. An address's primary name is returned only if that name resolves forward to the same address, so a spoofed reverse record is never trusted.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "aptos_name_resolve"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Explains what an entry-function payload would do, in plain English, with every argument type-checked against the module ABI and amounts shown using the asset's live decimals. Known patterns (transfers, batch transfers, key rotation, code publishing) carry a risk flag from a fixed table; no flag means 'not recognised', never 'safe'.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "items": {},
            "type": "array"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "function": {
            "type": "string"
          },
          "typeArguments": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "function"
        ],
        "type": "object"
      },
      "name": "aptos_tx_decode"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.005 USDC per call via x402] Runs an UNSIGNED entry-function transaction through the node's own simulator (no key needed, nothing is submitted) and returns success or the abort decoded in plain English, exact gas and fee, balance changes, and events. Arguments are type-checked against the module ABI first. Balance changes count only the framework's Withdraw/Deposit events, so assets that re-emit them (like USDC) are never double-counted. A simulation runs against the node's current state and cannot be pinned to an older ledger version.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "items": {},
            "type": "array"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "function": {
            "type": "string"
          },
          "gasUnitPrice": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ]
          },
          "maxGasAmount": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ]
          },
          "sender": {
            "type": "string"
          },
          "sequenceNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ]
          },
          "typeArguments": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "sender",
          "function"
        ],
        "type": "object"
      },
      "name": "aptos_tx_simulate"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Committed, failed, pending or not found for a transaction hash, with the VM status explained in plain English (Move aborts decoded to module, error name, code and category; the raw status is always included). Fee is computed from the VM's own fee statement.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "hash": {
            "type": "string"
          }
        },
        "required": [
          "hash"
        ],
        "type": "object"
      },
      "name": "aptos_tx_status"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Calls a Move #[view] function read-only, after checking every type argument and argument against the module's ABI: u64/u128/u256 must be decimal strings, vector<u8> a 0x hex string, Option<T> written {\"vec\":[]} or {\"vec\":[value]}, addresses in AIP-40 form. A wrong argument is a specific error from us, never an opaque node error. Optionally reads at a stated ledger version.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "items": {},
            "type": "array"
          },
          "chain": {
            "description": "Aptos CAIP-2 id: aptos:1 (mainnet, default) or aptos:2 (testnet)",
            "type": "string"
          },
          "function": {
            "type": "string"
          },
          "ledgerVersion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ],
            "description": "read the chain exactly as of this ledger version (default: the current one, pinned for consistency)"
          },
          "typeArguments": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "function"
        ],
        "type": "object"
      },
      "name": "aptos_view"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Adds one entry (any JSON object up to 8 KB: a payment, a decision, a delivery, ...) to your log. Returns its sequence number, its chain hash and the receipt digest that will be in today's Bitcoin-timestamped root. Needs the log's write key.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "entry": {
            "additionalProperties": {},
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "logId": {
            "maxLength": 60,
            "type": "string"
          },
          "writeKey": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "logId",
          "writeKey",
          "entry"
        ],
        "type": "object"
      },
      "name": "audit_log_append"
    },
    {
      "description": "Creates a logbook for an agent or business. Returns the log id, a write key (to append) and a read key (to export), shown only once. Every entry is hash-chained and timestamped into Bitcoin through the daily receipt root. Free to create; appending costs per entry.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "label": {
            "description": "a name for your own reference",
            "maxLength": 120,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "audit_log_create"
    },
    {
      "description": "Returns entries of your log (up to 1000 per call, from fromSeq), re-verifies the whole hash chain, and gives each entry's Bitcoin proof status (pending until its day's root is built and timestamped). Needs the log's read key.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "fromSeq": {
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "limit": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "logId": {
            "maxLength": 60,
            "type": "string"
          },
          "readKey": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "logId",
          "readKey"
        ],
        "type": "object"
      },
      "name": "audit_log_export"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Counts business days between two dates, adds business days to a date, or tests whether a date is a business day. Weekends are configurable. NO holidays are assumed: pass the holidays you want observed. Dates are calendar dates (YYYY-MM-DD) with no time zone.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "days": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "from": {
            "type": "string"
          },
          "holidays": {
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "type": "array"
          },
          "op": {
            "enum": [
              "count",
              "add",
              "is_business_day"
            ],
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "weekend": {
            "enum": [
              "sat_sun",
              "fri_sat",
              "sun_only",
              "none"
            ],
            "type": "string"
          }
        },
        "required": [
          "op",
          "from"
        ],
        "type": "object"
      },
      "name": "business_days"
    },
    {
      "description": "Describes a supported chain: CAIP-2 id, display name, native currency, block explorers, and exactly which operations it supports. Omit `chain` to list every supported chain.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like \"base\" are refused.",
            "type": [
              "string",
              "number"
            ]
          }
        },
        "type": "object"
      },
      "name": "chain_info"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.003 USDC per call via x402] Before paying or delivering to an agent or address: checks sanctions lists, on-chain activity on Base and Ethereum (wallet, contract or EIP-7702 wallet; transaction counts), whether it owns an ERC-8004 agent identity, its record of deals verified by the LogicNodes notary (settled, and deliveries that failed their re-run check) and payments it made to LogicNodes. Returns every component, a 0-100 indicator and the formula: start 50; sanctions match = 0 (do not transact); +10 if 10+ transactions on Base or Ethereum, +10 more if 100+; +15 if it owns an ERC-8004 agent identity; +3 per deal settled through the LogicNodes notary (max +20); +1 per payment it made to LogicNodes (max +5); +10 if a domain operator is verified; -25 per delivery that failed its re-run check; clamped to 0-100. A new address has little history, which is not evidence of bad behaviour.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "EVM address of the agent or counterparty",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "counterparty_check"
    },
    {
      "description": "[PAID $1.00 USDC per call via x402] For a deal recorded by the LogicNodes deal notary: verifies the signed, hash-chained record and gives an ADVISORY ruling from fixed rules (R0, R1, R2, R3, R4, R5, R6: settled, delivered and checked, failed check, uncheckable, never delivered, never agreed). Returns the facts it used (with event hashes), the rule applied, and a ruling digest that goes into the Bitcoin-timestamped daily root. Advisory only: not a legal judgment and not enforced.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "dealId": {
            "pattern": "^0x[0-9a-fA-F]{64}$",
            "type": "string"
          }
        },
        "required": [
          "dealId"
        ],
        "type": "object"
      },
      "name": "deal_dispute_review"
    },
    {
      "description": "Add, subtract, multiply, divide, raise to an integer power, compare, or take a percentage, on decimal STRINGS with exact arithmetic (no floating point). The result is rounded only to the scale and rule you choose, and the response says whether rounding changed the value. JSON numbers are refused because they lose precision. Division by zero is an error.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          },
          "op": {
            "enum": [
              "add",
              "subtract",
              "multiply",
              "divide",
              "power",
              "compare",
              "percent_of"
            ],
            "type": "string"
          },
          "rounding": {
            "description": "rounding rule; default half_up (ties away from zero). half_even is banker's rounding",
            "enum": [
              "down",
              "up",
              "floor",
              "ceil",
              "half_up",
              "half_even",
              "half_down"
            ],
            "type": "string"
          },
          "scale": {
            "maximum": 36,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "op",
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "decimal_calc"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Resolves an ENS name (e.g. vitalik.eth) to its Ethereum address, or an address to its primary ENS name, read live from Ethereum mainnet. Give exactly one of name or address. A reverse result is returned only if that name resolves back to the same address (otherwise it is reported as unverified, never as the answer). Names are normalized (ENSIP-15) first; a name that cannot be normalized is refused.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "name": {
            "maxLength": 255,
            "minLength": 3,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "ens_resolve"
    },
    {
      "description": "Reads an agent from the ERC-8004 identity registry on Base: its owner address and the registration URI it points to, at one stated block. The URI is reported, not fetched (fetching arbitrary URLs for you is not this tool's job). An id that was never minted is NOT_FOUND.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "agentId": {
            "description": "ERC-8004 agent id (decimal string)",
            "pattern": "^(0|[1-9][0-9]{0,30})$",
            "type": "string"
          },
          "block": {
            "type": "string"
          }
        },
        "required": [
          "agentId"
        ],
        "type": "object"
      },
      "name": "erc8004_agent"
    },
    {
      "description": "Summarises the feedback posted about an agent in the ERC-8004 reputation registry on Base, at one block: number of distinct clients, number of feedback entries, the registry's own summary value, and each client's latest entry (value, tags, revoked). It is EVIDENCE, not a verdict: anyone can post feedback from any address, so many clients is not proof of many people, and tag text is free text written by the client (shown as untrusted).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "agentId": {
            "description": "ERC-8004 agent id (decimal string)",
            "pattern": "^(0|[1-9][0-9]{0,30})$",
            "type": "string"
          },
          "block": {
            "type": "string"
          }
        },
        "required": [
          "agentId"
        ],
        "type": "object"
      },
      "name": "erc8004_reputation"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] How much a spender may take from an owner for a token, at one block, in exact base units and human units, flagging 'unlimited' approvals.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "owner": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "spender": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "token": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "token",
          "owner",
          "spender"
        ],
        "type": "object"
      },
      "name": "evm_allowance"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Native and ERC-20 balances of an address, ALL read at one stated block (number and hash returned). Token decimals are read from the token contract, never assumed; an address with no code, or a contract that is not a standard ERC-20, is an error and is never reported as a zero balance. Amounts are exact strings.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "assets": {
            "description": "\"native\" and/or token contract addresses; default [\"native\"]",
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          },
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "address"
        ],
        "type": "object"
      },
      "name": "evm_balance"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Number, hash, timestamp, base fee (gwei), gas used/limit and transaction count of one block. Use block \"finalized\" for a block that can no longer reorganize.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          }
        },
        "required": [
          "chain"
        ],
        "type": "object"
      },
      "name": "evm_block"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Decodes transaction calldata against an ABI that YOU supply and returns the function, its signature and each argument. If the selector is not in your ABI it says so and lists the selectors it does have; it does not guess from a selector database. An ABI that does not belong to the target contract can decode to plausible nonsense.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "abi": {
            "description": "JSON ABI objects, or human-readable signatures such as \"function transfer(address to, uint256 amount)\"",
            "items": {
              "anyOf": [
                {
                  "additionalProperties": {},
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                {
                  "maxLength": 1000,
                  "type": "string"
                }
              ]
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "abi",
          "data"
        ],
        "type": "object"
      },
      "name": "evm_calldata_decode"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.003 USDC per call via x402] Says what is at an address using on-chain evidence: empty account, EIP-7702 delegated account, EIP-1167 minimal proxy, EIP-1967 proxy (with implementation and admin), Safe wallet (with owners and threshold), or other contract. Each classification lists the evidence. It is not a safety verdict.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "address"
        ],
        "type": "object"
      },
      "name": "evm_contract_type"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Decodes one event log (its topics and data) against an ABI that YOU supply and returns the event name and arguments. If no event in your ABI matches topic0 it says so rather than guessing from a database of known events.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "abi": {
            "description": "JSON ABI objects, or human-readable signatures such as \"function transfer(address to, uint256 amount)\"",
            "items": {
              "anyOf": [
                {
                  "additionalProperties": {},
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                {
                  "maxLength": 1000,
                  "type": "string"
                }
              ]
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "data": {
            "type": "string"
          },
          "topics": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "abi",
          "topics",
          "data"
        ],
        "type": "object"
      },
      "name": "evm_log_decode"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.003 USDC per call via x402] Logs emitted by one contract in a block range of at most 2000 blocks, optionally filtered by topics. Refuses (rather than truncates) when more than 1000 logs match, so an answer is always complete.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "fromBlock": {
            "type": "string"
          },
          "toBlock": {
            "type": "string"
          },
          "topics": {
            "items": {
              "type": [
                "string",
                "null"
              ]
            },
            "maxItems": 4,
            "type": "array"
          }
        },
        "required": [
          "chain",
          "address",
          "fromBlock",
          "toBlock"
        ],
        "type": "object"
      },
      "name": "evm_logs"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] The transaction count of an address at one stated block. Pending-pool transactions are not counted, and the answer says so.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "address"
        ],
        "type": "object"
      },
      "name": "evm_nonce"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.005 USDC per call via x402] Every transfer of one ERC-20 token out of (or into) a wallet across a block range of up to 20,000 blocks, with exact amounts, per-counterparty totals, per-UTC-day totals, and an accounting CSV. Reads public chain data only. The range is queried in full 2000-block pieces and the report refuses (rather than truncates) when more than 2000 transfers match.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "type": "string"
          },
          "direction": {
            "enum": [
              "out",
              "in"
            ],
            "type": "string"
          },
          "fromBlock": {
            "type": "string"
          },
          "toBlock": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "wallet": {
            "type": "string"
          }
        },
        "required": [
          "chain",
          "wallet",
          "token",
          "fromBlock",
          "toBlock"
        ],
        "type": "object"
      },
      "name": "evm_spend_report"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Name, symbol, decimals and total supply of an ERC-20 read from its contract at one block. Handles tokens whose name/symbol are bytes32. If decimals() is missing, it is an error: decimals are never assumed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "block": {
            "description": "\"latest\" (default), \"safe\", \"finalized\", or a decimal block number. Every value in the answer is read at this one block",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "token": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "token"
        ],
        "type": "object"
      },
      "name": "evm_token_metadata"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Status (success / reverted / pending), block, gas used and the exact fee in wei and native units for a transaction hash. 'Not found' is reported as such and is not proof the transaction never existed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "hash": {
            "type": "string"
          }
        },
        "required": [
          "chain",
          "hash"
        ],
        "type": "object"
      },
      "name": "evm_tx_receipt"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Current fee tiers for a chain as decimal strings with explicit units. EVM: confidence levels (default 99/95/90/80/70) in gwei with base fee, priority fee and max fee. Aptos: deprioritized/regular/prioritized gas unit prices in octas per gas unit. Data older than its freshness budget is an error, never a stale answer.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like \"base\" are refused.",
            "type": [
              "string",
              "number"
            ]
          },
          "confidenceLevels": {
            "description": "EVM only",
            "items": {
              "maximum": 99,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 12,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "chain"
        ],
        "type": "object"
      },
      "name": "gas_estimate"
    },
    {
      "description": "Current gas price estimates for an EVM chain in Blocknative-compatible format (gwei). Default chain is Ethereum (1). Supported chain IDs: 1, 8453, 42161, 10, 137, 56, 43114, 59144, 534352, 324, 100, 81457, 5000, 42220.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chainId": {
            "description": "EVM chain ID, e.g. 1 (Ethereum), 8453 (Base). Default 1.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "chainid": {
            "description": "Alias of chainId (the REST spelling).",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "confidenceLevels": {
            "description": "Confidence levels to return. Default 99, 95, 90, 80, 70.",
            "items": {
              "maximum": 99,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 12,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "get_gas_prices"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Exact simple or compound interest for a principal, an annual percentage rate and a term in years, compounded annually, semiannually, quarterly, monthly, weekly or daily. The number of periods must be whole; fractional periods are refused, not approximated. Also returns the effective annual rate.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "compounding": {
            "enum": [
              "simple",
              "annual",
              "semiannual",
              "quarterly",
              "monthly",
              "weekly",
              "daily"
            ],
            "type": "string"
          },
          "principal": {
            "type": "string"
          },
          "ratePercent": {
            "type": "string"
          },
          "rounding": {
            "description": "rounding rule; default half_up (ties away from zero). half_even is banker's rounding",
            "enum": [
              "down",
              "up",
              "floor",
              "ceil",
              "half_up",
              "half_even",
              "half_down"
            ],
            "type": "string"
          },
          "scale": {
            "maximum": 18,
            "minimum": 0,
            "type": "integer"
          },
          "years": {
            "type": "string"
          }
        },
        "required": [
          "principal",
          "ratePercent",
          "years",
          "compounding"
        ],
        "type": "object"
      },
      "name": "interest_calc"
    },
    {
      "description": "EVM chains with live gas data, with chain IDs.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_supported_chains"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Monthly payment, total interest and total paid for a fixed-rate amortizing loan, in exact arithmetic. The payment is rounded once to the currency scale and the final payment absorbs the rounding so the balance ends at exactly zero.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "annualRatePercent": {
            "type": "string"
          },
          "principal": {
            "type": "string"
          },
          "rounding": {
            "description": "rounding rule; default half_up (ties away from zero). half_even is banker's rounding",
            "enum": [
              "down",
              "up",
              "floor",
              "ceil",
              "half_up",
              "half_even",
              "half_down"
            ],
            "type": "string"
          },
          "scale": {
            "maximum": 8,
            "minimum": 0,
            "type": "integer"
          },
          "termMonths": {
            "maximum": 600,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "principal",
          "annualRatePercent",
          "termMonths"
        ],
        "type": "object"
      },
      "name": "loan_calc"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Rounds, adds, subtracts, multiplies, or splits an amount of an ISO 4217 currency, using that currency's real number of minor units (JPY 0, USD 2, KWD 3). A currency not in the list is refused, never assumed to have 2 decimals. split divides a total into equal parts or by ratios so the parts always add back to the total exactly.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "factor": {
            "type": "string"
          },
          "op": {
            "enum": [
              "round",
              "add",
              "subtract",
              "multiply",
              "split"
            ],
            "type": "string"
          },
          "other": {
            "type": "string"
          },
          "parts": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "ratios": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rounding": {
            "description": "rounding rule; default half_up (ties away from zero). half_even is banker's rounding",
            "enum": [
              "down",
              "up",
              "floor",
              "ceil",
              "half_up",
              "half_even",
              "half_down"
            ],
            "type": "string"
          }
        },
        "required": [
          "currency",
          "op",
          "amount"
        ],
        "type": "object"
      },
      "name": "money_calc"
    },
    {
      "description": "[PAID $10.00 USDC per call via x402] Step 2 of the verified-operator badge: reads https://<domain>/.well-known/logicnodes-verify.txt and the DNS TXT record _logicnodes.<domain>; if either holds the line from operator_verify_start, the badge is recorded for 365 days and shows in counterparty_check and at /v1/operators/<address>. A failed check is an error (and errors are never charged).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          }
        },
        "required": [
          "address",
          "domain"
        ],
        "type": "object"
      },
      "name": "operator_verify_check"
    },
    {
      "description": "Step 1 (free) of the verified-operator badge. Returns one line to publish EITHER as the content of https://<domain>/.well-known/logicnodes-verify.txt OR as a DNS TXT record at _logicnodes.<domain>. Then call operator_verify_check. The badge proves control of the domain and is valid 365 days.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "the agent's EVM address",
            "type": "string"
          },
          "domain": {
            "description": "e.g. example.com",
            "type": "string"
          }
        },
        "required": [
          "address",
          "domain"
        ],
        "type": "object"
      },
      "name": "operator_verify_start"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Given a transaction hash, lists the ERC-20 transfers in its receipt and, if you give expectations (payee, asset, amount, payer), says whether a successful transaction contains a matching transfer. Use it to check an x402 or other USDC payment. A match proves tokens moved; it does not prove what the payment was for.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "description": "base units",
            "pattern": "^(0|[1-9][0-9]{0,77})$",
            "type": "string"
          },
          "asset": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "hash": {
            "type": "string"
          },
          "payTo": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          },
          "payer": {
            "description": "0x + 40 hex digits (EIP-55 checksum enforced when mixed-case)",
            "type": "string"
          }
        },
        "required": [
          "chain",
          "hash"
        ],
        "type": "object"
      },
      "name": "payment_verify"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] Deterministic, publicly recomputable random integers derived from a FINALIZED block hash and a salt. Refuses a block that is not yet final. Not secret and not for cases where the salt can be chosen after seeing the block.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "block": {
            "type": "string"
          },
          "chain": {
            "description": "EVM CAIP-2 chain id such as eip155:8453, or a bare chain id number as a string. Chain names are refused.",
            "type": "string"
          },
          "count": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "max": {
            "maximum": 1000000,
            "minimum": 2,
            "type": "integer"
          },
          "salt": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "chain",
          "block",
          "salt",
          "count",
          "max"
        ],
        "type": "object"
      },
      "name": "random_from_block"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Checks whether an address appears on public sanctions lists: the US Treasury OFAC SDN digital-currency addresses (EVM, Bitcoin, Solana, Tron, Litecoin, Bitcoin Cash) and, for EVM addresses, Chainalysis' on-chain sanctions oracle. Returns sanctioned true/false, which sources matched, which were checked or unavailable, and when the list was last updated. This is a list match, not legal advice; no match is not a clearance. If no source can be read you get an error, never a 'clean' result.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "maxLength": 120,
            "minLength": 20,
            "type": "string"
          },
          "family": {
            "description": "auto-detected from the address format when omitted",
            "enum": [
              "evm",
              "solana",
              "bitcoin",
              "tron",
              "litecoin",
              "bitcoin_cash"
            ],
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "sanctions_check"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] From a quoted amount in base units (integer string) and a slippage tolerance in basis points, computes the minimum you should accept (min_out, rounded down) or the maximum you should pay (max_in, rounded up). Integer arithmetic only; the rounding direction is stated.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "string"
          },
          "direction": {
            "enum": [
              "min_out",
              "max_in"
            ],
            "type": "string"
          },
          "slippageBps": {
            "maximum": 10000,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "slippageBps",
          "direction"
        ],
        "type": "object"
      },
      "name": "slippage_bounds"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] For a Uniswap-V2-style pool, computes the exact output of a swap (the router's integer formula), the total cost versus the spot price including the fee, and the part due to trade size alone, in basis points. Inputs are reserves and amounts in base units. Does not know any pool: you supply the reserves.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amountIn": {
            "type": "string"
          },
          "feeBps": {
            "maximum": 10000,
            "minimum": 0,
            "type": "integer"
          },
          "reserveIn": {
            "type": "string"
          },
          "reserveOut": {
            "type": "string"
          }
        },
        "required": [
          "reserveIn",
          "reserveOut",
          "amountIn"
        ],
        "type": "object"
      },
      "name": "swap_price_impact"
    },
    {
      "description": "Converts an ISO 8601 instant, or a local time plus its IANA zone, to another IANA zone. A local time skipped by a daylight-saving jump is refused; one that occurs twice returns AMBIGUOUS_INPUT with both instants. Zone abbreviations such as EST are refused.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "fromZone": {
            "type": "string"
          },
          "time": {
            "type": "string"
          },
          "toZone": {
            "type": "string"
          }
        },
        "required": [
          "time",
          "toZone"
        ],
        "type": "object"
      },
      "name": "time_convert"
    },
    {
      "description": "Converts between a human decimal amount and integer base units without ever rounding: too many decimals is an error. Decimals are never assumed: pass `decimals`, or an `asset` whose decimals are read from the chain (EVM: \"native\" or an ERC-20 token address, whose decimals() is read live from the chain; Aptos: any asset, with live decimals; an ambiguous symbol such as USDC returns AMBIGUOUS_INPUT with every option).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "string"
          },
          "asset": {
            "type": "string"
          },
          "chain": {
            "description": "CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like \"base\" are refused.",
            "type": [
              "string",
              "number"
            ]
          },
          "decimals": {
            "maximum": 77,
            "minimum": 0,
            "type": "integer"
          },
          "direction": {
            "enum": [
              "toBase",
              "toHuman"
            ],
            "type": "string"
          }
        },
        "required": [
          "chain",
          "amount",
          "direction"
        ],
        "type": "object"
      },
      "name": "token_amount_convert"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Spot USD price of a crypto asset by ticker (BTC, ETH, SOL, USDC, APT, LINK, ...), read live from Coinbase and Kraken. A price is returned only when both answer and agree within 1%; the answer is their midpoint, with both readings and the deviation. If one venue is down or they disagree, you get an error with the readings instead of a guess. Ticker prices are for the market asset, not a specific token contract.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "symbol": {
            "description": "ticker such as BTC, ETH, SOL, USDC (case-insensitive)",
            "maxLength": 10,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ],
        "type": "object"
      },
      "name": "token_price"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.005 USDC per call via x402] Before your agent signs an EVM transaction: simulates it on the current chain state and reports every token and native-coin movement in and out of the sender, decodes what it asks for (ERC-20 approve/permit, Permit2, setApprovalForAll, transfers), checks the counterparty (contract or wallet, sanctions lists) and, if you pass expectedTo, flags look-alike addresses (address poisoning). Verdict: \"danger\", \"caution\" or \"no_known_risk\", with every reason. It never says \"safe\": a simulation shows what would happen at this block. Chains: eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999. Priced by the USD value at risk you declare in valueUsd: under $1,000: $0.005; under $10,000: $0.05; under $100,000: $0.50 (deep review); $100k and up: $2.00 (deep review). Deep review adds a second simulation on an independent provider and a counterparty check of every address involved.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "CAIP-2 EVM chain id, e.g. eip155:8453",
            "type": "string"
          },
          "data": {
            "description": "calldata, 0x... (omit for a plain native transfer)",
            "type": "string"
          },
          "expectedTo": {
            "description": "the recipient or contract you MEANT to interact with; enables the look-alike check",
            "type": "string"
          },
          "from": {
            "description": "the address that would sign",
            "type": "string"
          },
          "to": {
            "description": "the transaction's to address",
            "type": "string"
          },
          "value": {
            "description": "native amount in wei (base units)",
            "pattern": "^(0|[1-9][0-9]{0,77})$",
            "type": "string"
          },
          "valueUsd": {
            "description": "approximate USD value at risk; sets the price tier, and $10,000+ includes the deep review",
            "maximum": 1000000000000,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "chain",
          "from",
          "to"
        ],
        "type": "object"
      },
      "name": "tx_safety_check"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.001 USDC per call via x402] Whether a transaction is committed, failed, pending or not found, with a plain-English explanation. 'Not found' is reported as such and is not proof the transaction never existed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "chain": {
            "description": "CAIP-2 chain id such as eip155:8453 (Base) or aptos:1; a bare EVM chain id number also works. Chain names like \"base\" are refused.",
            "type": [
              "string",
              "number"
            ]
          },
          "hash": {
            "type": "string"
          }
        },
        "required": [
          "chain",
          "hash"
        ],
        "type": "object"
      },
      "name": "tx_status"
    },
    {
      "description": "Converts length, mass, volume, time, data, energy, area, speed and temperature using exact definitions (an inch is exactly 0.0254 m). Ambiguous names (oz, gal, pt, KB) return AMBIGUOUS_INPUT with the choices instead of picking one. Reports whether the result is exact or rounded.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "from": {
            "type": "string"
          },
          "rounding": {
            "description": "rounding rule; default half_up (ties away from zero). half_even is banker's rounding",
            "enum": [
              "down",
              "up",
              "floor",
              "ceil",
              "half_up",
              "half_even",
              "half_down"
            ],
            "type": "string"
          },
          "scale": {
            "maximum": 30,
            "minimum": 0,
            "type": "integer"
          },
          "to": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value",
          "from",
          "to"
        ],
        "type": "object"
      },
      "name": "unit_convert"
    },
    {
      "description": "Stops a watch immediately. Needs the watch id and its secret. (No refund: the subscription is pay-once.)",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "secret": {
            "maxLength": 200,
            "type": "string"
          },
          "watchId": {
            "maxLength": 80,
            "type": "string"
          }
        },
        "required": [
          "watchId",
          "secret"
        ],
        "type": "object"
      },
      "name": "wallet_watch_cancel"
    },
    {
      "description": "[PAID $5.00 USDC per call via x402] Subscribes for 30 days: LogicNodes watches one EVM address and POSTs a signed webhook (X-LogicNodes-Signature: sha256=HMAC of the body with your secret) when tokens arrive (incoming) or leave (outgoing), when it grants a token or NFT approval (approval), or when its sanctions status changes (sanctions). Returns the watch id and a secret shown only once. Native-coin transfers are not watched. The webhook must be a public https URL. Chains: eip155:84532, eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "address": {
            "type": "string"
          },
          "events": {
            "description": "default: all four",
            "items": {
              "enum": [
                "incoming",
                "outgoing",
                "approval",
                "sanctions"
              ],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "type": "array"
          },
          "network": {
            "description": "CAIP-2 EVM chain id",
            "type": "string"
          },
          "webhookUrl": {
            "description": "public https URL that receives the events",
            "maxLength": 500,
            "type": "string"
          }
        },
        "required": [
          "address",
          "network",
          "webhookUrl"
        ],
        "type": "object"
      },
      "name": "wallet_watch_create"
    },
    {
      "description": "Shows a watch's state (active, failing, cancelled, expired), the last block scanned, delivery counts and the last 20 events. Needs the watch id and its secret.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "secret": {
            "maxLength": 200,
            "type": "string"
          },
          "watchId": {
            "maxLength": 80,
            "type": "string"
          }
        },
        "required": [
          "watchId",
          "secret"
        ],
        "type": "object"
      },
      "name": "wallet_watch_status"
    },
    {
      "description": "[FREE: 25 calls/day, then $0.002 USDC per call via x402] For sellers taking x402 or other stablecoin payments: give the network, the settlement transaction (EVM hash or Solana signature) and your payout address, and optionally the asset, minimum amount (base units) and payer. Reads the chain itself and answers verdict \"paid\", \"not_paid\" (failed, or no matching transfer to you) or \"unknown\" (not found yet), with every token transfer it saw. Networks: eip155:84532, eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1. A match proves tokens reached you; it does not prove what they were for.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "description": "minimum amount in base units (USDC: 1 USD = 1000000)",
            "pattern": "^(0|[1-9][0-9]{0,77})$",
            "type": "string"
          },
          "asset": {
            "description": "token contract (EVM) or mint (Solana) you expect; omit to accept any token",
            "type": "string"
          },
          "network": {
            "description": "CAIP-2 id, one of: eip155:84532, eip155:8453, eip155:1, eip155:137, eip155:42161, eip155:10, eip155:43114, eip155:1329, eip155:130, eip155:146, eip155:480, eip155:5042, eip155:999, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
            "type": "string"
          },
          "payTo": {
            "description": "your payout address (EVM 0x... or Solana base58)",
            "type": "string"
          },
          "payer": {
            "description": "the address you expect the payment from",
            "type": "string"
          },
          "tx": {
            "description": "EVM transaction hash (0x + 64 hex) or Solana transaction signature (base58)",
            "type": "string"
          }
        },
        "required": [
          "network",
          "tx",
          "payTo"
        ],
        "type": "object"
      },
      "name": "x402_settlement_verify"
    }
  ]
}

What the leaf hashes

{"body":"c435f7ba4f88fa85c84cb3f14dd0eb5cc603c23c81235cabadcf616ca80f1276","id":296685,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793051910445814,"prev":null,"subject":"f1dd03f0-9c1f-458d-8b3b-980853991394","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. 0xd40456ccf158e391e2d3c55037474c254ca1cc048b41fc389e995eb8a1f96cb4
  2. 0xdd0541b7db7b62fdfd703802ed2a03d3073c843d4a4827e692b7e99d1781e5a6
  3. 0x85694852aa547cad493e192b7d415af4b1ea875eb4e35a9cafcb088e0d3a1d5e
  4. 0xa0567b2ddd6ce96df1b7e23aa13a7d807335528abab2c2a844f12fa75c21e7a8
  5. 0x2e0a9e67038a73e895c51e1997b0d74e833ec7ac5149e874b22a8fd019f99b36
  6. 0xbd9a89a42712480a6b536c8566b36ad7bc05d9c2327aa3e4b80a0c309bc2e71b
  7. 0xb59e70e6dbb11fc1c2a2a5948d9e86730a4e37ea7a8822222b29bb8375a01828
  8. 0xed57ae098a0795d0d930423ac9e2820ea8039daa8053e2f9e2ce3e2efcfb969e
  9. 0x77710ff073cbaa3d56a41cbab3e18e18de3f9c30092854e03c86fa1bf50efe30
  10. 0xa2e80671dd591188e2f9ffca4feadda9599a056a371af323021b390343be0982
  11. 0x14362d8e1df4e5c0cf9c6949986f8f51c6a0b5605b593e145aade16c5f5c871a
  12. 0x9f6b360f1992898cb3f17e45d0bf5a96f946d7eaf9705a57af03c151a407d239
  13. 0x889eefefef2d4457fe6114f397df813a5cbb85011a6f40309b54ddcd4aba3bd1
  14. 0xefabf1105e09cf52c12c58e60cbb5048b9ac3f02631d1816a926e14bdd86fbdf
  15. 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON