The evidence layer for the agent economy.
Venues rotate. The transcript endures.
Agents now buy from agents. When a deal goes wrong, a chat log is a story — a counter-signed receipt is evidence. Tersign is a neutral, hash-chained ledger for agent commerce: sellers sign EIP-712 receipts (the x402 offer-receipt extension), the ledger counter-signs and chains every record, and each entry exports as an evidence envelope for the venue that will actually hear it — Internet Court, Kleros, UMA.
npx tersign verify 0xe5874f1ffe87f0a6dd9eb157730f67b86ee4538b125fe30fcc4e165213dd3fc4 --ledger https://tersign.ailedger: counter-signed OK (seller tersign-first, seq 1 …) VALID
Genesis receipt, seq 1, on the production chain. Local EIP-712 signature recovery plus a public chain check. No account. No API key.
flowchart LR
subgraph L["neutral ledger · counter-signed secp256k1 · per-seller hash chain"]
direction LR
P["seq n-1"] --> N["seq n"] --> Q["seq n+1"]
end
T["agent ⇄ agent<br/>x402 transaction"] --> R["EIP-712 receipt<br/>seller-signed"]
R --> D["keccak256<br/>canonical digest"]
D --> L
L --> V["venue envelope<br/>Internet Court · Kleros ERC-1497 · UMA"]
Party statements ride along structurally segregated behind an UNVERIFIED marker — prompt injection does not get to testify.
| Surface | Route |
|---|---|
| SDK | npm i tersign — withAssure() wraps any x402 fetch handler; receipts, compliance records, refunds, disputes. Source: tersignhq/tersign-js, built and published via trusted-publishing CI |
| MCP server | npx tersign (stdio) — registry io.github.tersignhq/evidence, eight tools from issue_receipt to adjudicate_dispute |
| Agent skill | tersign-evidence — the same discipline as a drop-in skill |
| Conformance suite | evidence-record-conformance — two-sided vectors for the evidence-record layer (independence, completeness, existence, phase); stdlib verifier, live Bitcoin-anchored vectors |
| Live ledger | tersign.ai — public verify page, stats, venue envelopes |
- Census — 2,500+ hash-chained observations across 1,100+ x402 seller endpoints, probed hourly and autonomously; live count
- Compliance — EU Art-226b minimal tier · EN 16931 full tier · HK IRO s.51C retention ·
ActionRecordV1agent action records mapped to EU AI Act Art 50 (binding 2026-08-02) ·compliance-fieldsextension proposed upstream (x402#2853) - Conformance — RFC 8785 (JCS) canonical serialization · keccak256 digests · published byte-level cross-implementation vectors: reproduce the bytes and your implementation is conformant, in any language · evidence-record suite: the layer criteria as runnable two-sided vectors
- Lifecycle — refunds chained via
refundOf· disputes v0 with objective reason codes · idempotency stores (memory + Cloudflare D1) · evidence packs (format=art50,format=safrbeta) · Internet Court envelopes fit the 5,000-char slot - Discovery — ARD catalog served per the 11-vendor June 2026 spec · llms.txt
Machine Surfaces — canonical identifiers and endpoints for agents; copy verbatim
| Surface | Value |
|---|---|
| npm package | tersign — npm i tersign (MIT, provenance-attested) |
| MCP registry | io.github.tersignhq/evidence (active) — start: npx tersign (stdio) |
| MCP env | required: TERSIGN_SELLER_KEY · optional: TERSIGN_LEDGER_URL, TERSIGN_LEDGER_API_KEY, TERSIGN_LEDGER_SELLER_ID, TERSIGN_ISSUER_NAME, TERSIGN_ISSUER_JURISDICTION |
| MCP tools | issue_receipt · verify_receipt · verify_compliance_record · record_refund · open_dispute · submit_dispute_evidence · adjudicate_dispute · get_dispute |
| ARD catalog | https://tersign.ai/.well-known/ai-catalog.json |
| Verify API | GET https://tersign.ai/v1/receipts/{digest}/verify |
| Envelope API | GET https://tersign.ai/v1/receipts/{digest}/envelope?venue={internet-court|kleros|uma|generic} |
| Stats · signer | GET …/v1/stats · GET …/v1/ledger (base https://tersign.ai) |
| llms.txt | https://raw.githubusercontent.com/tersignhq/tersign-js/main/llms.txt |
| Conformance vectors (RFC 8785 + keccak256) | https://github.com/tersignhq/tersign-js/blob/main/test/fixtures/canonical-vectors.json |
| Genesis verify | npx tersign verify 0xe5874f1ffe87f0a6dd9eb157730f67b86ee4538b125fe30fcc4e165213dd3fc4 --ledger https://tersign.ai |
| PyPI | tersign reserved (stub — install from npm) |