addrbookFor publishers
← The evidence ledger

Evidence row 3357942

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f1d2232c-8602-407c-8957-65571cb8250e
Recorded
Previous row
#221350
Body SHA-256
d2c69eb2f14358a71381ed3a5e89dd6ac9ea8e44bb44b18ef0e2ce5ab9e09dc5
Leaf
0x3157807ebe7f8de1d8313f4b20a3803749dd714ccbeccfa80b8b9e3bf60d7c90

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Initiate a handshake on a contract on behalf of your delegating principal.\n\nRequires an API key with an active delegation (principal wallet registered via /api/v1/delegations).\nRecords the agent's intent to accept, reject, or request changes on the contract.\nThe principal must separately approve via wallet signature on the Reader Portal.\n\nArgs:\n  - contract_id (string, required): Contract ID (amb-YYYY-NNNN), SHA-256 hash, or UUID\n  - intent (string, required): \"accept\" | \"reject\" | \"request_changes\"\n  - message (string, optional): Note for the counterparty\n  - visibility_preference (string, optional): \"private\" | \"metadata_only\" | \"public\" | \"encrypted\"\n\nReturns: Handshake status and next steps for principal approval.\n\nLegibility: the handshake itself is auditable — delegation scope, agent identity, and principal approval are recorded alongside the contract hash.",
      "inputSchema": {
        "properties": {
          "contract_id": {
            "description": "Contract ID, SHA-256 hash, or UUID",
            "type": "string"
          },
          "intent": {
            "description": "Handshake intent",
            "enum": [
              "accept",
              "reject",
              "request_changes"
            ],
            "type": "string"
          },
          "message": {
            "description": "Optional note for counterparty",
            "type": "string"
          },
          "visibility_preference": {
            "description": "Optional visibility preference for negotiation",
            "enum": [
              "private",
              "metadata_only",
              "public",
              "encrypted"
            ],
            "type": "string"
          }
        },
        "required": [
          "contract_id",
          "intent"
        ],
        "type": "object"
      },
      "name": "ambr_agent_handshake"
    },
    {
      "description": "Check one payment against what an agreement allows, before releasing funds.\n\nTests the payment against the agreement's status, validity window, currency, per-transaction\nlimit, monthly limit, approved categories, enumerated actions and approval threshold. If the\nagreement was amended, the newest approved version is checked. Free: no credits are burned.\nAmbr does not hold funds or track spend, so the monthly limit is checked only when you pass\nperiod_spent. A rule the agreement sets no limit for comes back as not_evaluated, never as a pass.\nIf a rule has a limit but you did not send what it needs (category, action, currency, period_spent),\nthe verdict is \"incomplete\", not \"in_scope\". Send everything the agreement limits.\n\nAccess: a public contract is open to anyone; otherwise use the creator's API key or pass a share_token.\n\nArgs:\n  - contract_id (string, required): Contract ID (amb-YYYY-NNNN), SHA-256 hash, or UUID\n  - amount (number, required): payment amount, zero or more\n  - currency (string, optional): e.g. \"USD\"\n  - category (string, optional): spending category\n  - action (string, optional): the action the agent is taking\n  - period_spent (number, optional): already spent this month, to check the monthly limit\n  - share_token (string, optional): share token for a private contract\n\nReturns: verdict (\"in_scope\" | \"out_of_scope\" | \"incomplete\" | \"needs_approval\"), the per-rule checks, plain-language reasons, and the contract that was checked (contract_id, effective_contract_id, sha256_hash, reader_url).",
      "inputSchema": {
        "properties": {
          "action": {
            "description": "Action the agent is taking",
            "type": "string"
          },
          "amount": {
            "description": "Payment amount",
            "minimum": 0,
            "type": "number"
          },
          "category": {
            "description": "Spending category",
            "type": "string"
          },
          "contract_id": {
            "description": "Contract ID, SHA-256 hash, or UUID",
            "type": "string"
          },
          "currency": {
            "description": "Payment currency, e.g. USD",
            "type": "string"
          },
          "period_spent": {
            "description": "Already spent this month",
            "minimum": 0,
            "type": "number"
          },
          "share_token": {
            "description": "Share token for a private contract",
            "type": "string"
          }
        },
        "required": [
          "contract_id",
          "amount"
        ],
        "type": "object"
      },
      "name": "ambr_check_transaction"
    },
    {
      "description": "Generate a Ricardian Contract from a template.\n\nCreates a dual-format contract (human-readable legal text + machine-parsable JSON)\nusing AI, linked by SHA-256 hash. The contract is stored on Ambr and accessible\nvia the Reader Portal.\n\nRequires a valid API key (X-API-Key header on the HTTP request) with available credits.\nUse ambr_list_templates first to discover templates and their required parameters.\n\nArgs:\n  - template (string, required): Template slug (e.g. \"d1-general-auth\")\n  - parameters (object, required): Template-specific parameters matching the schema\n  - principal_declaration (object, required): { agent_id, principal_name, principal_type }\n  - principal_wallet (string, optional): the deploying party's own wallet. It must differ from the\n    counterparty wallet in parameters (same_wallet_both_parties otherwise); left out, the first\n    wallet that signs fills the principal side\n  - parent_contract_hash (string, optional): SHA-256 hash of a contract you created, which this one is\n    created under (its oversight threshold then applies). Not for amendments: propose those with\n    POST /api/v1/contracts/{id}/amend\n  - oversight_threshold_usd (number, optional): spending level above which work created under\n    this contract needs human approval. Children exceeding it halt at awaiting_principal_approval.\n\nReturns:\n  - contract_id: Unique ID (e.g. \"amb-2026-0042\")\n  - sha256_hash: SHA-256 hash for verification\n  - status: Contract status\n  - reader_url: URL to view in Reader Portal\n  - credits_remaining: Remaining API credits\n\nLegibility: Output is dual-format by construction and replayable to the original SHA-256 hash — the basis of Ambr's legibility guarantee.",
      "inputSchema": {
        "properties": {
          "oversight_threshold_usd": {
            "description": "Spending level above which work created UNDER this contract requires human approval. A child contract exceeding the parent threshold is held at awaiting_principal_approval until a human signs, and cannot be signed or activated before then (EU AI Act Art. 14).",
            "type": "number"
          },
          "parameters": {
            "additionalProperties": true,
            "description": "Template-specific parameters",
            "type": "object"
          },
          "parent_contract_hash": {
            "description": "SHA-256 hash of a contract you created, which this one is created under. Amendments are proposed with POST /api/v1/contracts/{id}/amend, not here.",
            "type": "string"
          },
          "principal_declaration": {
            "properties": {
              "agent_id": {
                "description": "Agent identifier",
                "type": "string"
              },
              "principal_name": {
                "description": "Name of the principal (person or company)",
                "type": "string"
              },
              "principal_type": {
                "description": "Type of principal",
                "enum": [
                  "company",
                  "individual"
                ],
                "type": "string"
              }
            },
            "required": [
              "agent_id",
              "principal_name",
              "principal_type"
            ],
            "type": "object"
          },
          "principal_wallet": {
            "description": "The deploying party's own wallet (0x…). Must differ from the counterparty wallet in parameters.",
            "type": "string"
          },
          "template": {
            "description": "Template slug from ambr_list_templates",
            "type": "string"
          }
        },
        "required": [
          "template",
          "parameters",
          "principal_declaration"
        ],
        "type": "object"
      },
      "name": "ambr_create_contract"
    },
    {
      "description": "Retrieve a contract by ID, SHA-256 hash, or UUID.\n\nWith a valid API key (contract creator): returns the full contract including\nhuman-readable text, machine-readable JSON, status, and principal declaration.\nWithout authentication: returns metadata only (contract_id, status, hash, dates).\n\nSupports three lookup formats:\n  - Contract ID: \"amb-2026-0042\"\n  - SHA-256 hash: 64-character hex string\n  - UUID: Standard UUID format\n\nArgs:\n  - id (string, required): Contract ID, SHA-256 hash, or UUID\n\nReturns: Full contract (if authorized) or metadata-only response.\n\nLegibility: retrieval preserves the dual-format pairing — prose and JSON always replay to the same SHA-256.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "Contract ID (amb-YYYY-NNNN), SHA-256 hash, or UUID",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "ambr_get_contract"
    },
    {
      "description": "Check the status of a contract and its amendment chain.\n\nReturns the current status and any linked amendments (parent or child contracts).\nUseful for verifying if a contract is active, amended, or terminated.\n\nArgs:\n  - id (string, required): Contract ID, SHA-256 hash, or UUID\n\nReturns:\n  - contract_id, status, created_at\n  - amendment_type, parent_contract_hash\n  - amendments: Array of child contracts (if any)\n\nLegibility: amendments are bilateral and themselves dual-format — the chain stays legible from original through every revision.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "Contract ID (amb-YYYY-NNNN), SHA-256 hash, or UUID",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "ambr_get_contract_status"
    },
    {
      "description": "List available contract templates on Ambr.\n\nReturns all active Ricardian Contract templates with their slugs, names, descriptions,\ncategories, parameter schemas, and pricing. Use this to discover which templates are\navailable before creating a contract with ambr_create_contract.\n\nNo authentication required.\n\nReturns: Array of template objects with slug, name, description, category,\nparameter_schema, price_cents, and version fields.\n\nLegibility: templates are the parameter schema for the dual-format contracts you create — starting here keeps your request conformant and your output defensible.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "ambr_list_templates"
    },
    {
      "description": "Verify a contract's SHA-256 hash to confirm document integrity.\n\nChecks whether the provided hash matches a contract stored on Ambr. Returns\nverification status, contract metadata, and Reader Portal URL if found.\n\nArgs:\n  - hash (string, required): SHA-256 hash (64-character hex string)\n\nReturns:\n  - verified: boolean\n  - contract_id: string (if found)\n  - status: string (if found)\n  - reader_url: string (if found)\n\nLegibility: verification is the point at which legibility becomes provable — matching hash means the prose a human reads and the JSON a machine parses are the same document that was originally signed.",
      "inputSchema": {
        "properties": {
          "hash": {
            "description": "SHA-256 hash to verify (64-character hex)",
            "type": "string"
          }
        },
        "required": [
          "hash"
        ],
        "type": "object"
      },
      "name": "ambr_verify_hash"
    }
  ]
}

What the leaf hashes

{"body":"d2c69eb2f14358a71381ed3a5e89dd6ac9ea8e44bb44b18ef0e2ce5ab9e09dc5","id":3357942,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793852719241348,"prev":221350,"subject":"f1d2232c-8602-407c-8957-65571cb8250e","subject_kind":"endpoint"}

Proof

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

  1. 0x3157835f45cf45f8954959318c1c16a08ef8d89687f1bf0b874e05f65bf8cfae
  2. 0x079ed514495aee49560964924388f90ffab2f4db4abc3fc86b2d47535b386084
  3. 0x126924f9d027b309d4f658301ec76aa068d90b8669a7c0cc0b9ae6c225340bcc
  4. 0x27eaca09e0e0776c506a5726bfdb32350fd22c3a386ef8f03fde581dafdf138a
  5. 0x6ef96f450ccaef73c5d12ca75624165228e835ddaf75bf3c71ee0a3a4b29327c
  6. 0x5ede20c0c9aa7358d7efdd282c4afdaf80146065e04e98f972c4cd6911915ccb
  7. 0x9d97f42a04ce48de0f63e80aeb3e65cad0109628b438ec5ce59d05e6900fca8b
  8. 0xc9e2701751fd4fd3d13a7dcb95ad83f924f07f8b9d23844387550a2a4f1f0d49
  9. 0x48e12a4be76dbc1b46f6834b33685f71ef6b730f47bd7da577ee07c7b7d5a3e0
  10. 0xdd138a5dad49c986e1f003a6cbb90b34f6424d6090476af764683b8fa41ce28c
  11. 0xe2bfa3de8734dd32722ed61cfd3979688c690290fb520aa14e1f0e90a09bd071
  12. 0x7f98a7b5606346f414c513a98ea8361f4dcf28b98d2f23c42364ca11a710052c
  13. 0x06f35c7371f9c001c3a1c0582469212f9b65af8fcff9ede5c8bf26b1a4f029e8
  14. 0x5aa68e014acefa940541118abf6196de34434d4ac087fb78e5c99db4d1a85a03
  15. 0x213998878db6a423b0c367a68aba39293f9287b39bf1a80904fa9c6975bba987
  16. 0x0009f1567d5c3f52d167d3c95d53c71fb66114fc26e83679b452d6db2f1d0b95
  17. 0x0cdf39687556f127f9de2f03ec7df8e10e613bf9487760cbe3eaaaa02d8d48b4
  18. 0xa9caf228b42660818160afb416ff04cb014f57c4d8ee75ea3452fb76c3d8c645
  19. 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
Day root
0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
Chained
0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
Published
On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94

How to check it · This row as JSON