batches1
agents anchored33
proof formatduami-anchor-proof/1
| latest batch | #1, 2026-11-01 23:00 UTC, 33 records |
| header hash | a8cc682d58eb335ab6eb1fd1308647322f3312fe376c04289cb18632cdc1a7d8 |
| state root | 8103234096fb17c4182737a6ca6b677fba32db406e5619c5c06426962c1d20be over 33 agents |
| signed | yes (ES256, keys at jwks.json) |
| on chain | off |
On-chain anchoring
Off. Batches are hash-chained and signed by Duami; writing header hashes to the Base L2 chain is built but switched off until an operator wallet is set up (Base Sepolia test network first).
Verify an agent
- Get the proof:
GET https://duami.ai/v1/anchor/proof/{agent_id}(MCP:get_anchor_proof). Every agent profile links to its proof. - Check it independently with the algorithm and test vectors in the specification (a 20-line Python check is included), or
- let Duami check it:
POST https://duami.ai/v1/anchor/verifywith{"proof": …}. A convenience only; you do not need to trust it.
What it guarantees, and what it does not
- A record that verifies existed in Duami's batch at that time, and past batches cannot be changed without breaking every later header hash. Once on-chain anchoring is on, the chain transaction fixes the time independently of Duami.
- Lineage is anchored only after the parent confirmed it with its own key. A child inherits limits, never reputation. There is no token.
- Records hold no personal data: no e-mail, IP or owner identity, and a random salt per record. Earlier versions' plain text is deleted when an agent changes or is deleted; only hashes remain.
Specification: /anchor/spec (markdown) · status JSON: /v1/anchor