An open, free-to-adopt specification for aggregate, regulator-ready audit exports over R+2 receipts. SHA-256 Merkle commitment + Ed25519 signature + optional on-chain anchor. MIT-licensed.
🌐 Full spec: https://dcslabs.ai/standard/r3
🔗 Built on: R+2 Open Provenance Standard
📦 Verifier tooling: R+3 commands ship inside @trdnetwork/r2-verify (r3-bundle, r3-inclusion, r3-anchor)
R+2 makes every individual AI-agent action signable. But auditors and regulators do not consume single events — they consume periods. A compliance officer asks: "Show me everything Agent X did in Q1, with proof the record is complete and intact."
R+3 answers that. It takes a set of R+2 receipts over a time window and produces a single audit bundle:
- a SHA-256 Merkle root committing to every receipt in the window,
- a monotonic sequence number and predecessor hash chaining the bundle to its predecessor,
- an Ed25519 signature by the issuing principal,
- an optional on-chain anchor — one transaction whose calldata carries the Merkle root, making the bundle independently verifiable forever.
Where R+2 makes every action provable, R+3 makes every audit period provable.
The R+3 reference bundle (reference/bundle-anchored*.json) was anchored on
both Base networks. The anchor is a 0-value self-transaction whose calldata
(0x5233… = "R3" tag + 32-byte Merkle root) carries the commitment.
| Network | Chain ID | Anchor transaction | Block |
|---|---|---|---|
| Base Sepolia (testnet) | 84532 | 0x8ef5e385…92746533 |
41,814,917 |
| Base mainnet | 8453 | 0xab89f1bd…1c7fc26e |
46,304,888 |
Both anchors commit the same Merkle root
0xe7da8052d2151a7187ff8f7757d2e993b1a963cb70d20d10085df4d7a2896273. Open
either explorer link, read the transaction calldata, and confirm the root
yourself.
cd reference
npm install
npm test # reference bundle: build → verify → tamper → chain
npx tsx verifier/verify-bundle.ts bundle-anchored.json # testnet-anchored bundle
npx tsx verifier/verify-bundle.ts bundle-anchored-mainnet.json # mainnet-anchored bundleverify-bundle runs five checks: signature, Merkle root, receipt chain,
content hash, and on-chain anchor resolution.
See reference/ANCHOR_RUNBOOK.md for the full
procedure (Base Sepolia and Base mainnet).
r3-standard/
├── reference/
│ ├── builder/ # build an R+3 bundle from R+2 receipts
│ ├── verifier/ # verify a bundle (signature + Merkle + chain + anchor)
│ ├── anchor/ # submit / resolve the on-chain anchor
│ ├── lib/ # Merkle tree + canonical hashing
│ ├── test/ # reference test suite
│ ├── example-bundle.json # worked example
│ ├── bundle-anchored.json # Base Sepolia-anchored reference bundle
│ ├── bundle-anchored-mainnet.json # Base mainnet-anchored reference bundle
│ └── ANCHOR_RUNBOOK.md # how to anchor on testnet / mainnet
├── CONTRIBUTING.md
├── SECURITY.md
├── CODE_OF_CONDUCT.md
└── LICENSE
The canonical specification text lives on the website (https://dcslabs.ai/standard/r3). This repository holds the reference implementation and the verified on-chain anchor records.
R+3 is strictly an aggregation/export layer on top of R+2. It introduces no new signing scheme for individual actions and no new identity model — R+2 receipts are the source data; R+3 bundles are the signed, regulator-ready output. An R+3 bundle commits to its receipts by Merkle root; the receipts remain individually verifiable under R+2.
The specification and reference implementation are released under the MIT License. DCS AI Technologies L.L.C holds no patents covering R+3 and has filed none.
- Editorial: standards@dcslabs.ai
- Security: security@dcslabs.ai
- Source-of-truth spec: https://dcslabs.ai/standard/r3
— DCS AI Technologies L.L.C, Dubai