← 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).
- 0x3157835f45cf45f8954959318c1c16a08ef8d89687f1bf0b874e05f65bf8cfae
- 0x079ed514495aee49560964924388f90ffab2f4db4abc3fc86b2d47535b386084
- 0x126924f9d027b309d4f658301ec76aa068d90b8669a7c0cc0b9ae6c225340bcc
- 0x27eaca09e0e0776c506a5726bfdb32350fd22c3a386ef8f03fde581dafdf138a
- 0x6ef96f450ccaef73c5d12ca75624165228e835ddaf75bf3c71ee0a3a4b29327c
- 0x5ede20c0c9aa7358d7efdd282c4afdaf80146065e04e98f972c4cd6911915ccb
- 0x9d97f42a04ce48de0f63e80aeb3e65cad0109628b438ec5ce59d05e6900fca8b
- 0xc9e2701751fd4fd3d13a7dcb95ad83f924f07f8b9d23844387550a2a4f1f0d49
- 0x48e12a4be76dbc1b46f6834b33685f71ef6b730f47bd7da577ee07c7b7d5a3e0
- 0xdd138a5dad49c986e1f003a6cbb90b34f6424d6090476af764683b8fa41ce28c
- 0xe2bfa3de8734dd32722ed61cfd3979688c690290fb520aa14e1f0e90a09bd071
- 0x7f98a7b5606346f414c513a98ea8361f4dcf28b98d2f23c42364ca11a710052c
- 0x06f35c7371f9c001c3a1c0582469212f9b65af8fcff9ede5c8bf26b1a4f029e8
- 0x5aa68e014acefa940541118abf6196de34434d4ac087fb78e5c99db4d1a85a03
- 0x213998878db6a423b0c367a68aba39293f9287b39bf1a80904fa9c6975bba987
- 0x0009f1567d5c3f52d167d3c95d53c71fb66114fc26e83679b452d6db2f1d0b95
- 0x0cdf39687556f127f9de2f03ec7df8e10e613bf9487760cbe3eaaaa02d8d48b4
- 0xa9caf228b42660818160afb416ff04cb014f57c4d8ee75ea3452fb76c3d8c645
- 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
- Day root
- 0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
- Chained
- 0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
- Published
- On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94