addrbookFor publishers
← The evidence ledger

Evidence row 566106

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 6e78f527-f9f5-414f-abfa-aa521ff3c78f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c60ac122adc8be3c2fe9227ea0c18b21ed1a77cc81976f6f894fc9de954b1f9b
Leaf
0x84c96bd68bbbfbcb845a56f964c8a22d10a027f010f50e19c718cdac2432cc0d

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "Commit your sealed input as a hash (sealed mode). Nobody — including redeal — can see your input until all parties have committed. After the last commitment the deal opens for reveals immediately.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "commitment": {
            "description": "\"sha256:\" + hex of sha256(JCS(your input JSON) ++ your salt bytes). Compute it locally; the server sees only this hash until everyone has committed.",
            "type": "string"
          },
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Optional: retries with the same key + same arguments replay the original response.",
            "type": [
              "string",
              "null"
            ]
          },
          "invite_token": {
            "description": "The invite token for YOUR party, from create_deal's response.",
            "type": "string"
          }
        },
        "required": [
          "invite_token",
          "deal_id",
          "commitment"
        ],
        "type": "object"
      },
      "name": "commit_input"
    },
    {
      "description": "Compute a commitment string for (input, salt): sha256(JCS(input) ++ salt_bytes), prefixed 'sha256:'. Convenience only — the rule is public and you can compute it yourself.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "description": "Your algorithm input (any JSON value)."
          },
          "salt": {
            "description": "Your hex salt (even length, e.g. 32+ random bytes hex-encoded). Keep it secret until reveal.",
            "type": "string"
          }
        },
        "required": [
          "input",
          "salt"
        ],
        "type": "object"
      },
      "name": "compute_commitment_tool"
    },
    {
      "description": "Create a fairness deal. You are party 0 (initiator). Returns a deal id and one invite token per party — give each counterparty their own token. Sealed mode: everyone commits a hash, then reveals; certificate is issued automatically when the deal computes or goes VOID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "algorithm": {
            "description": "Algorithm id from list_algorithms: \"split.v1\" (fixed 1,000-point budget) | \"random.v1\" | \"shapley.v1\" | \"auction.v1\".",
            "type": "string"
          },
          "algorithm_params": {
            "description": "Algorithm-specific params from list_algorithms. split.v1: {\"items\": [...]}; random.v1: {\"drand_round\": N}; shapley.v1: {\"coalition_values\": {...}}; auction.v1: {\"item\": \"...\", \"unit\": \"GBP\", \"reserve\": N}."
          },
          "api_key": {
            "description": "Your redeal API key (get one free with create_key — no signup form).",
            "type": "string"
          },
          "commit_deadline": {
            "description": "Commit deadline as unix seconds UTC. Missed → deal EXPIRES (no certificate).",
            "format": "int64",
            "type": "integer"
          },
          "external_ref": {
            "description": "Optional: your own identifier for this deal, e.g. \"campaign-4821\" (echoed into the certificate).",
            "type": [
              "string",
              "null"
            ]
          },
          "idempotency_key": {
            "description": "Optional: retries with the same key + same arguments replay the original response.",
            "type": [
              "string",
              "null"
            ]
          },
          "mode": {
            "description": "\"sealed\" (default, commit/reveal) or \"open\" (single round trip, low stakes).",
            "type": [
              "string",
              "null"
            ]
          },
          "party_labels": {
            "description": "One label per party, e.g. [\"alice\", \"bob\"] — or objects {\"label\", \"weight\"?, \"statement_hash\"?} (weight defaults to 1; statement_hash is \"sha256:<hex>\" of a declaration you want bound into the certificate). Party 0 is you (the initiator). Labels go on the public certificate permanently: use nicknames, never real names or emails.",
            "items": true,
            "type": "array"
          },
          "retention": {
            "description": "\"standard\" (inputs retained encrypted) or \"purge\" (destroyed 7 days after certification).",
            "type": [
              "string",
              "null"
            ]
          },
          "reveal_deadline": {
            "description": "Reveal deadline as unix seconds UTC (after commit_deadline). Missed → deal goes VOID and a non-participation certificate names whoever didn't reveal.",
            "format": "int64",
            "type": "integer"
          },
          "supersedes": {
            "description": "Optional: certificate id (c_<16 hex>) this deal's certificate replaces (re-draw after VOID etc.).",
            "type": [
              "string",
              "null"
            ]
          },
          "terms_hash": {
            "description": "Optional: \"sha256:<hex>\" of the deal's terms (echoed into the certificate; we never see the terms).",
            "type": [
              "string",
              "null"
            ]
          },
          "visibility": {
            "description": "Optional: \"public\" (default — anyone can fetch the certificate at its id) or \"parties\" (only you and your invite-token holders). Certificates never contain inputs, only the outcome; choose \"parties\" when the outcome itself is sensitive.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "api_key",
          "algorithm",
          "party_labels",
          "commit_deadline",
          "reveal_deadline"
        ],
        "type": "object"
      },
      "name": "create_deal"
    },
    {
      "description": "Get a free redeal API key. No signup, no email — this is the entire onboarding. The key is shown once; store it. Use it as api_key in create_deal.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "create_key"
    },
    {
      "description": "Fetch the signed fairness certificate for a finished deal (state CERTIFIED). Includes the labelled signature (es256 or ed25519) and transparency-log inclusion proof. Verify it with verify_certificate.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "credential": {
            "description": "Your API key (initiator) or any party's invite token for this deal.",
            "type": "string"
          },
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          }
        },
        "required": [
          "credential",
          "deal_id"
        ],
        "type": "object"
      },
      "name": "get_certificate"
    },
    {
      "description": "Read a deal's public state: protocol state (OPEN/COMMITTING/REVEALING/CERTIFIED/VOID/EXPIRED), who has committed/revealed, deadlines, result, and certificate_id once issued. Inputs of other parties are never exposed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "credential": {
            "description": "Your API key (initiator) or any party's invite token for this deal.",
            "type": "string"
          },
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          }
        },
        "required": [
          "credential",
          "deal_id"
        ],
        "type": "object"
      },
      "name": "get_deal"
    },
    {
      "description": "Finish a random.v1 deal once every party has revealed: redeal fetches the deal's pre-declared drand round from the public League of Entropy beacon (fixed at creation, publicly cross-checkable), computes the draw, and issues the certificate. Call this after the last reveal_input; the deal rests in REVEALING until you do. Idempotent — safe to retry.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "credential": {
            "description": "Your API key (initiator) or any party's invite token for this deal.",
            "type": "string"
          },
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          }
        },
        "required": [
          "credential",
          "deal_id"
        ],
        "type": "object"
      },
      "name": "get_entropy"
    },
    {
      "description": "Fetch a certificate's full JSON (outcome included) by id. Works for public deals (the default). Parties-only deals and unknown ids both return NOT_FOUND. To re-verify the computation itself, use verify_certificate (checks) or the CLI re-runner with the parties' inputs.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cert_id": {
            "description": "The certificate id (c_...). Verification is free and always will be.",
            "type": "string"
          }
        },
        "required": [
          "cert_id"
        ],
        "type": "object"
      },
      "name": "get_public_certificate"
    },
    {
      "description": "List redeal's algorithms (split.v1 fixed-budget fair division, random.v1 verifiable random selection, shapley.v1 Shapley shares, auction.v1 sealed-bid second-price auctions) with their input contracts and the published test vectors (served inline — the same fixtures the engine test suite runs). Read this before creating a deal.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_algorithms"
    },
    {
      "description": "Reveal your committed input. It must hash to your earlier commitment. When the last party reveals, the deal computes and the fairness certificate is issued automatically — fetch it with get_certificate.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Optional: retries with the same key + same arguments replay the original response.",
            "type": [
              "string",
              "null"
            ]
          },
          "input": {
            "description": "Your algorithm input exactly as committed (any JSON value). split.v1: {\"valuations\": {...}} — your valuations must sum to exactly 1000; random.v1: {\"nonce\": \"<hex>\"}; shapley.v1: {\"accept\": true|false}; auction.v1: {\"bid\": <integer>}."
          },
          "invite_token": {
            "description": "The invite token for YOUR party, from create_deal's response.",
            "type": "string"
          },
          "salt": {
            "description": "Your hex salt from commitment time. Omit (or empty) for open-mode deals.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "invite_token",
          "deal_id",
          "input"
        ],
        "type": "object"
      },
      "name": "reveal_input"
    },
    {
      "description": "Validate your algorithm input against the deal's contract BEFORE you commit. A commitment binds the exact input bytes — a contract-violating input (e.g. split.v1 valuations not summing to exactly 1000) can never be corrected afterwards and the deal will VOID at the reveal deadline. Always validate first, then compute_commitment_tool, then commit_input. Read-only: nothing is stored or changed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "deal_id": {
            "description": "The deal id (d_...).",
            "type": "string"
          },
          "input": {
            "description": "The algorithm input you plan to commit (e.g. {\"valuations\": {\"<item_id>\": <points>}} for split.v1 — every party's valuations must sum to exactly 1000). Validated against the deal's algorithm and declared params; nothing is stored."
          },
          "invite_token": {
            "description": "The invite token for YOUR party, from create_deal's response.",
            "type": "string"
          }
        },
        "required": [
          "invite_token",
          "deal_id",
          "input"
        ],
        "type": "object"
      },
      "name": "validate_input"
    },
    {
      "description": "Verify a redeal certificate by id: signature check (current or published legacy key) + transparency-log inclusion check, reported per check. Free, no credential required, always.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cert_id": {
            "description": "The certificate id (c_...). Verification is free and always will be.",
            "type": "string"
          }
        },
        "required": [
          "cert_id"
        ],
        "type": "object"
      },
      "name": "verify_certificate"
    }
  ]
}

What the leaf hashes

{"body":"c60ac122adc8be3c2fe9227ea0c18b21ed1a77cc81976f6f894fc9de954b1f9b","id":566106,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138365423331,"prev":null,"subject":"6e78f527-f9f5-414f-abfa-aa521ff3c78f","subject_kind":"endpoint"}

Proof

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

  1. 0x84c8e44334ef7251f00c997cfa81dd92640da4b7e69f6446be13f954c3962b8b
  2. 0x30ff3352e8b32e783f4b6c355230d3078e5877c1e6f80fc9d06e9d6272ff92d0
  3. 0xe26ea1e78c6a0168a0baaf0e17f7219be35c7c7b7a572d36517207d140077849
  4. 0x0b62cd2f384b2521f076b90961a99082f0943b27050d8b30ad6616ba6c0ebb7b
  5. 0xba670d353499831258558881290e18eecc8f3d3682d0bf33fa321e3e7baa2461
  6. 0x6e41b3dd8a8da20c1655dbc80d1c414acf3d40704ee281d101bbc2dd4e9738a5
  7. 0x556d0a88832d5ef9cdb1f226dedf5a2b1f44ae772daf885ee4d4364cce61f27f
  8. 0xa0e0a50160df9c7c7a488d3f467b1721f27c7ebc046935deecdb999dcffbbd76
  9. 0xd6818ed34f8640f1cde35b2508fb74de773e5c140ad2d7fd4e3a49d9b6dba653
  10. 0x4dfa5367319512a91b443abf8bb6aae56edeb75a5934d2d6e335582f367220c2
  11. 0xad994cee2d6f21e3bdb657e22472462ec0aaf283ebff1e0bba45d6f624c7e640
  12. 0xfe1f74bbe32292598f931fa103e4afbd12a8e628c1b49eb8ec0da417a917061f
  13. 0x07d414626f116f3edc6ddb34183ed02538c3a805fec6db00f9d764f8fd595d04
  14. 0x4964f0806efde5ed25f60da2b45d78cd2e0f07d67e64aad2822f6016ad973c47
  15. 0x3c500ec3d3edf0c74b87a6ca8fcd77656bfbe03db3d478bd0c184d0c88839c6b
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON