diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b3850c..4403b6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ Product release notes: [docs.proofable.me/changelog](https://docs.proofable.me/c - **Two checks you can run on the published records.** `public/evidence/checks/tamper-check.mjs` forges each signed record ten ways and confirms every copy is rejected offline; `reuse-check.mjs` times reading and verifying a finished result with no account. - **A fresh run of the eight authority cases on the live service.** All eight passed on the revision production was serving, with 17 signed records. Requests that should not have been allowed were refused before any job ran; the case that needs approval waited for it and then ran; and a valid request ran alongside the refusals to show the check can pass. The records need no account to read or verify, and the run lives at `public/evidence/aaif/authority-at-dispatch/2026-10-24-served/`. - **Jobs run on credits on every plan.** [Jobs](/jobs) says what a run costs and lists the job tools a connection carries, and the team-agents and reproduce guides no longer say jobs need Pro. +- **The receipt signer is bound on-chain.** `public/evidence/registry` shows how to read the signing account for agent 1135859 from the ERC-8004 registry (`getMetadata`, key `x_proofable.receiptSigner`). - **The evidence kits install `@proofable/sdk` 0.1.10.** The reproduction kit, the forged-record checks and the October 8 packet verify CAIP-380 envelopes that omit `walletAddress`, and `aad.mjs verify --expect-signer` requires the receipt signer you read out of band. Each authority-at-dispatch packet says what it establishes and what it does not. - **Agent id format is in the schemas.** `agentId` in `agent-identity` and `agent-delegation` is 1 to 128 letters, digits, hyphens or underscores, the same id the agent page uses. diff --git a/public/evidence/registry/README.md b/public/evidence/registry/README.md index 17b8f74..bc96ebd 100644 --- a/public/evidence/registry/README.md +++ b/public/evidence/registry/README.md @@ -42,12 +42,27 @@ not a URL quoted in prose. Both records in the published authority evidence are signed by the account named in `x_proofable.receiptSigner`: `0xa41494e1e5f9e5eaf786961e6ef84cd1a3071eec`, EIP-191 over the CAIP-380 verification message. Recovering that account from a record's bytes shows the record was signed by it. -Attribution of that account to Proofable is what the binding above records. + +The registry binds that account to the agent on-chain. The agent's owner (the Safe above) wrote it with +`setMetadata` in tx `0xe3c783072848a66c247f0f6a6b6bb4c84afded3f9453758c8e3df116f6054a24`, Base block +`53386669` (2026-11-01). Read it from chain state: + +```js +const reg = new ethers.Contract('0x8004A169FB4a3325136EB29fA0ceB6D2e539a432', + ['function getMetadata(uint256,string) view returns (bytes)'], + new ethers.JsonRpcProvider('https://mainnet.base.org')); +ethers.toUtf8String(await reg.getMetadata(1135859n, 'x_proofable.receiptSigner')); +// {"schema":"proofable.service-key/v1",...,"receiptSigner":"0xa41494e1e5f9e5eaf786961e6ef84cd1a3071eec", +// "scheme":"eip191-caip380","validFrom":"2026-11-01","registrationSha256":"f297f8fb…"} +``` + +`ownerOf` gives the Safe, `getMetadata` gives the key, and the signature recovers to that key. +`registrationSha256` is the SHA-256 of `agent-registration.json` in this folder. ## What this does not cover -- No key validity window or rotation history is published. The account named above is the signing - account, and this document carries no expiry or rotation record. +- The binding carries a `validFrom` and no expiry. A rotation writes the same key again, so the + registry's `MetadataSet` events are the rotation log. - This snapshot is a point in time. The live document at the URL is authoritative and can change; hash the bytes you actually read before quoting them. - A valid signature shows which account signed a statement. It does not show that the statement is diff --git a/public/evidence/registry/SHA256SUMS b/public/evidence/registry/SHA256SUMS index 9320c28..ca39f3f 100644 --- a/public/evidence/registry/SHA256SUMS +++ b/public/evidence/registry/SHA256SUMS @@ -1,2 +1,2 @@ -bfa35912750b7102a873440a082b985d62a94b638e3a3aa7984c0741cd4e6690 *README.md +02a3ffc0e72bba3497bba381ce37edb5a722498041755fe204dd3118d2be8cc7 *README.md f297f8fbff06de768fe1a2ee3ecb0a00518ecbb34c4517d607d598c04f3b45c7 *agent-registration.json