← The evidence ledger
Evidence row 3694396
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint f1d2232c-8602-407c-8957-65571cb8250e
- Recorded
- Previous row
- #3357942
- Body SHA-256
- b474307711a4bf26f1af0c7355c65fd7586b569b58d9b6242cbca207d36e5ccd
- Leaf
- 0x8399f05da6f476bab1f0103b9ab98ad0f5139a00ae6e344cac79ad1df4ded759
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. Advisory only: Ambr compares what\nyou report with the agreement's terms; it does not authorize, block or see payments, and in_scope\nis not an approval or a guarantee.\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":"b474307711a4bf26f1af0c7355c65fd7586b569b58d9b6242cbca207d36e5ccd","id":3694396,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793948354652928,"prev":3357942,"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 (303443 rows).
- 0x8399e4ddfdd0799560c3a900b746ffb677cb84d1165befe5a7dffad13fc02463
- 0xb88cb663b7ec13edfb38b022a11550ea51285c76d953b40d17005c14b7f3db58
- 0xb9979ca2adffabd899ed6a527204cf1a11a36c81e0ae4422a41b282d3b081a06
- 0x21e76b58344ccf757023b798e847e667a5002095c9a74d1e4915c080b3e6b737
- 0x9d8c9b0f1960af89bd73d493b5f222709c5d43af9fa1bd0273e38378c3683dca
- 0x316ee541927c16be4c4868e4095455a33d3b1a1e774bfe45307febd0d3f447a5
- 0x3c52367cf2bcde08ed0770ee3890993622796b2c129c3dcf49afde39df3939ab
- 0xf46e567a32b80fc31aec42e373eef4f5aba2255219670196bbfd25cc48a742b9
- 0x2c7e9201128c28daefc5d653650b67b18199809666a69d327123ff5c51aad6b8
- 0x00e42ee62b957fb955a73a86213d134e489e4625bbbab6ba9e25e656ba44c313
- 0xbe0f05ba4a27600ae4f20a6431a6a2f373d7e44629f96f0ccc574b0ee741ce2f
- 0xd6c1915e797634e525bf1402ef3e901bdb03d544dcc28aae8ea8770dcc28659f
- 0x4209c39fa0cabd462a9fdb6f1aa333a43e88caba97ae99e1bfb6a491dcb250e9
- 0x1603f9c33c35ccefb72fc33655d873fa8e090c77e8690f54f34f291f55d977a8
- 0x4aa18de7ba70c1384dfa5e9fde2ce72817bb169f51aa0c98d197468e304aabd5
- 0xa020619e8f130eeb03f3c2beaba0422017bd8b95688ddf44db1c31cf0fd40a6a
- 0xe98c6c6b56a21a2fc4c1edfe2563812e690a6a4336d11aef772ac1799d1ee7ca
- 0xd422a75f6c3780ed53eca52b50bf40b8f17dc14cffb804142e44fc9f2672029d
- 0xc0d08d48601d1be90bcfc025e66bcaa0030120d688dd9c919b36c2c4446f4948
- Day root
- 0xb30ccefe7182c6f767e1fcbfb5f64ffd649da831f665f65c5ff39cd40512284f
- Chained
- 0xc383f7ef68d2914082484765aa09e42c12c59a74a096ae64127c562618c506d3
- Published
- On Arc Testnet, block 71111178: 0xfba13cb7ee4ada7f2fee3702a786a2201596be2ffea37dfc281ab4c8e9942fe1