← The evidence ledger
Evidence row 3955561
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 4c387910-78a6-4b03-8abf-f594d44e9f7d
- Recorded
- Previous row
- #579167
- Body SHA-256
- 7b728c9e55c5abe82600f4d555055f1743424eda6a4a640fa20e3518eeaea12c
- Leaf
- 0xf8c1c937b948004af30e350f52bdbcf1c1efecafba3afc239f4921439682c8f6
What was observed
{
"count": 13,
"tools": [
{
"description": "Accepts a signed preflight proposal with explicit buyer authorization and creates exactly ONE authenticated SAAX commitment. Revalidates the proposal (trusted provider key, profile version, expiry, combination, manifest digest), verifies the BUYER'S SIGNATURE over the exact proposal digest and terms digest, durably accepts once (single-writer store), and returns the operation + commitment. Creates NO payment authorization, custody funding, service execution, or release. A buyer acceptance is NOT a payment authorization or evaluator release verdict. Errors are typed DSC_* codes. Idempotent: same idempotencyKey + same request returns the same operation; same key + different request -> DSC_NONCE_CONFLICT; a single-use proposal cannot be re-accepted under a new key -> DSC_PROPOSAL_REUSED.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"acceptance": {
"additionalProperties": {},
"description": "The buyer acceptance contract (schemaVersion acceptance-v1, action accept_commitment, domain saax:acceptance:v1, signed by the buyer)",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"idempotencyKey": {
"description": "Caller-scoped idempotency key (>= 8 chars)",
"minLength": 8,
"type": "string"
},
"proposal": {
"additionalProperties": {},
"description": "The signed proposal returned by prepare_commitment (full object incl. signature)",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"proposal",
"acceptance",
"idempotencyKey"
],
"type": "object"
},
"name": "accept_commitment"
},
{
"description": "Creates a governed commitment between a buyer and a seller and persists it to the SAAX commitment store. The commitment is settlement-rail-neutral: settlementRail is metadata only (x402, mpp, ap2, acp, or unspecified) and is NEVER a prerequisite. Returns the new commitment id (saax_<hash>), createdAt, status, and the settlementRail. Call this BEFORE any payment flow to establish the governed commitment record. Once created, use get_commitment to read the manifest.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"acceptanceCriteria": {
"description": "Objective acceptance criteria for fulfillment",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"buyerId": {
"description": "The buyer's identity: 0x-address or agent id",
"type": "string"
},
"evidenceRequirements": {
"description": "Evidence the seller must supply",
"items": {
"type": "string"
},
"type": "array"
},
"recoveryPolicy": {
"description": "Recovery policy on failure",
"properties": {
"compensationPercent": {
"type": "string"
},
"maxRetries": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"refundOnFailure": {
"type": "boolean"
}
},
"required": [
"refundOnFailure"
],
"type": "object"
},
"sellerId": {
"description": "The seller's identity: 0x-address or agent id",
"type": "string"
},
"settlementRail": {
"default": "unspecified",
"description": "The settlement rail as metadata. Never a prerequisite; 'unspecified' is valid.",
"enum": [
"x402",
"mpp",
"ap2",
"acp",
"unspecified"
],
"type": "string"
},
"terms": {
"description": "The commercial terms: deliverable, price, deadline",
"properties": {
"deadline": {
"description": "ISO-8601 deadline for fulfillment",
"type": "string"
},
"deliverable": {
"description": "The deliverable / capability description",
"type": "string"
},
"price": {
"properties": {
"amount": {
"description": "Price amount as a decimal string, e.g. '0.10'",
"type": "string"
},
"currency": {
"description": "Currency symbol, e.g. USDC",
"type": "string"
},
"decimals": {
"description": "Asset decimals (USDC = 6)",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"amount",
"currency",
"decimals"
],
"type": "object"
}
},
"required": [
"deliverable",
"price",
"deadline"
],
"type": "object"
}
},
"required": [
"buyerId",
"sellerId",
"terms",
"acceptanceCriteria"
],
"type": "object"
},
"name": "create_commitment"
},
{
"description": "Validates an authority proof against a commitment. Requires an active SAAX Premium subscription. For evidence verification, use get_evidence_verification.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"commitment": {
"description": "The commitment or requested action the proof must authorize"
},
"proof": {
"description": "The AuthorityProof object (proofType, issuer, subject, scope, validFrom, validUntil, signature, verificationScheme, verificationMaterial)"
},
"subscriptionEmail": {
"description": "The subscription email (must have an active SAAX Premium subscription)",
"type": "string"
}
},
"required": [
"subscriptionEmail",
"proof",
"commitment"
],
"type": "object"
},
"name": "get_authority_validation"
},
{
"description": "Returns the full commitment object for a given commitment ID — including terms, state, manifest hash, and evidence references. Call this when an agent needs the complete commitment record. For status-only polling, use get_commitment_status. For listing all commitments for a subscriber, use list_commitments.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"commitmentId": {
"description": "The commitment id (0x-prefixed or agent-id style) to look up",
"type": "string"
}
},
"required": [
"commitmentId"
],
"type": "object"
},
"name": "get_commitment"
},
{
"description": "Returns only the current lifecycle state for a given commitment ID, plus the recommended next action for the calling agent. Call this before retrying any commitment that timed out — an unknown outcome is a status check, not another POST. The next_action field tells the agent whether to retry, poll, or stop. For the full commitment record, use get_commitment.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"commitmentId": {
"description": "The commitment id to poll for its lifecycle state",
"type": "string"
}
},
"required": [
"commitmentId"
],
"type": "object"
},
"name": "get_commitment_status"
},
{
"description": "Verifies external evidence against a commitment's acceptance criteria. Requires an active SAAX Premium subscription. For authority proof validation, use get_authority_validation.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"commitment": {
"description": "The commitment object the evidence binds to"
},
"criterion": {
"description": "The verification policy / acceptance criterion"
},
"evidence": {
"description": "The evidence object (evidenceId, evidenceType, issuer, subject, payload, payloadHash, signature, verificationScheme, commitmentId, acceptanceCriterionId, ...)"
},
"subscriptionEmail": {
"description": "The subscription email (must have an active SAAX Premium subscription)",
"type": "string"
}
},
"required": [
"subscriptionEmail",
"evidence",
"commitment",
"criterion"
],
"type": "object"
},
"name": "get_evidence_verification"
},
{
"description": "Returns the SAAX Protocol version, available capability count, and the URL to the specification. Call this when an agent needs a one-time overview of the protocol. For pricing, use get_routing_fee. For the full capability list, use list_capabilities. For a liveness check, use ping.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_protocol_info"
},
{
"description": "Returns the current routing fee schedule. Call this before initiating a routing request to determine the expected cost. For capability discovery, use list_capabilities. For protocol overview, use get_protocol_info.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_routing_fee"
},
{
"description": "Returns the capabilities currently indexed by the SAAX Router, with supplier counts per capability. Call this to discover what can be routed. For pricing of a specific capability, use get_routing_fee. For protocol overview, use get_protocol_info.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_capabilities"
},
{
"description": "Returns all commitments associated with a subscription email. Requires an active SAAX Premium subscription. Call this to retrieve commitment history for a subscriber. For a single commitment by ID, use get_commitment. For status-only checks, use get_commitment_status.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"subscriptionEmail": {
"description": "The subscription email (must have an active SAAX Premium subscription)",
"type": "string"
}
},
"required": [
"subscriptionEmail"
],
"type": "object"
},
"name": "list_commitments"
},
{
"description": "Returns a lightweight liveness response. Call this to verify the endpoint is reachable. Do not use for discovery, capability listing, or pricing — use get_protocol_info, list_capabilities, or get_routing_fee instead.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "ping"
},
{
"description": "Prepares a free, NONBINDING signed proposal (preflight) for a desired SAAX capability. Validates capability, schema/version/digest, units, and the exact supported network/asset/rail/mode combination; returns a provider-signed proposal binding the request digest and normalized terms. Creates NO agreement, payment, custody deposit, service execution, resource reservation, or spending authority. A provider signature is NOT buyer acceptance. No preflight fee. Errors are typed DSC_* codes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"capability": {
"description": "Desired capability",
"properties": {
"id": {
"description": "Provider capability id",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"clientNonce": {
"description": "Caller-chosen nonce (echoed; replay idempotency)",
"minLength": 8,
"type": "string"
},
"constraints": {
"description": "Optional constraints",
"properties": {
"deadline": {
"description": "ISO-8601 deadline",
"type": "string"
},
"maxAmount": {
"description": "Integer-string max amount",
"type": "string"
}
},
"type": "object"
},
"financialProfile": {
"description": "Financial axes",
"properties": {
"asset": {
"description": "CAIP-19 asset id",
"type": "string"
},
"mode": {
"description": "Payment mode",
"type": "string"
},
"network": {
"description": "CAIP-2 network id (e.g. eip155:8453)",
"type": "string"
},
"rail": {
"description": "Rail: x402, mpp, ap2, acp, ach, card, internal-ledger, unknown",
"type": "string"
}
},
"required": [
"network",
"asset",
"rail",
"mode"
],
"type": "object"
},
"intendedParties": {
"description": "Intended parties",
"properties": {
"buyer": {
"description": "0x buyer address",
"type": "string"
},
"seller": {
"description": "0x seller address",
"type": "string"
}
},
"type": "object"
},
"issuedAt": {
"description": "ISO-8601 client timestamp",
"type": "string"
},
"profileVersion": {
"description": "SAAX Discovery profile version (e.g. 1.0.0)",
"type": "string"
},
"schema": {
"description": "Expected commitment schema",
"properties": {
"digest": {
"description": "sha256:<64 hex> schema digest",
"type": "string"
},
"id": {
"description": "Schema id (e.g. https://saax-protocol.com/schemas/commitment-manifest/v1)",
"type": "string"
},
"version": {
"description": "Schema version",
"type": "string"
}
},
"required": [
"id",
"version",
"digest"
],
"type": "object"
},
"units": {
"description": "Amount + unit",
"properties": {
"amount": {
"description": "Integer-string settlement amount in the declared unit",
"type": "string"
},
"unit": {
"description": "Explicit unit (e.g. micro-units of settlement asset)",
"type": "string"
}
},
"required": [
"amount",
"unit"
],
"type": "object"
}
},
"required": [
"profileVersion",
"capability",
"schema",
"units",
"financialProfile",
"clientNonce",
"issuedAt"
],
"type": "object"
},
"name": "prepare_commitment"
},
{
"description": "Submits a capability request and returns ranked supplier matches. Commitment creation with payment runs through the HTTP POST /route endpoint, not this tool. Use list_capabilities first to discover available capabilities. For commitment lookup after routing, use get_commitment.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"budget": {
"description": "Maximum budget in USDC the buyer will pay",
"type": "number"
},
"capability": {
"description": "The capability demanded, e.g. 'security scan'",
"type": "string"
},
"deadline": {
"description": "Deadline in seconds from now for delivery",
"type": "number"
}
},
"required": [
"capability"
],
"type": "object"
},
"name": "route_request"
}
]
}What the leaf hashes
{"body":"7b728c9e55c5abe82600f4d555055f1743424eda6a4a640fa20e3518eeaea12c","id":3955561,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1794069161200318,"prev":579167,"subject":"4c387910-78a6-4b03-8abf-f594d44e9f7d","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (195826 rows).
- 0xf8c13117688ab0aeb8d2ec45b4cffeb9a5f8c48c9f0a4d31623f2d26cbf0442a
- 0x8f77f916d0538aba979a38a2f4ca114daefd30a91a32915c54112a667605e115
- 0xdc79b5ca363137cb41dd4cd77c30f4e7e2c2960e9d6c9cb3d04908bd012d8ab5
- 0x8b573ae6ce3a804fdc1e966277343bc537a4ca69e3d989610093e271f38b16ef
- 0x65673e8232f3647673d7e508477847428ee2c83aaa3fa087a60ea387f623f8eb
- 0x38afae455b24cd61638c95e9bb4d4646f40c0ad6955bbf101c8a0a40e713598b
- 0x9761a5f44e9284ab937206dce6d1c941c77b5fcdd8f7c2e333020806606f51e2
- 0xff04c130b1766bc45b57d83fb0acfd934061d0d3ba0a8319ec4d54d3082cf5ae
- 0xd0a0e488ccef62463779510ee2892a08575531121ddf5a475fdadaed6624c6c2
- 0xc8531cb8b6081557d2b82a1747638da9cd45a3719515c14d978948bdb8ee8781
- 0x7cb068608ce356c56b952991bf7213d131920a5a6364972fa78af58bf37822cd
- 0x56e817096df4de4739e74dab9761047ab97b2c55fdad1ba48d7081a0779ea668
- 0xf890041dab1a6045b3a87d27ce06c7bb38a0ea4dc1deb01cfdbb7c23a11ad1b1
- 0x2f1bda65dd8929924c1dad6e9e29ab36a1b8cb4eed65c97434b87bf8d5cca017
- 0xb6dc07358d0932b83c713d4c82df6764849db6e58ee1c7cbc06d03f381a6b36b
- 0xbb3be27e5da5ccad91ce4674c6eac53275c0832f3885b89533d2be65d38f2fc6
- 0x9ea7c2ecc6985da4b761b0f9096b7858b3ac8e3e47717c3840537fb2ff31c6df
- Day root
- 0x17da9e85e1b138541355d33543ff34e3503cd3a49d37728fb53643e2a0416a2d
- Chained
- 0xed34bd4af17282643de8cb9591c84d0aa1b39e1e9ae9864941e543f5a15718cb
- Published
- On Arc Testnet, block 71280839: 0xc3f6784179e0ca32236ba89472473e882a81d03fcc5ce27ca58ded2e01e112aa