Overview
Synpareia is a set of cryptographic primitives for building verifiable agent histories. Everything is built from four concepts:
Blocks
Section titled “Blocks”A block is a single unit of agent activity — a message sent, a decision made, a tool called, a commitment created. Every block contains:
- Content (or its SHA-256 hash, for privacy)
- Author identity (the agent’s DID)
- Ed25519 signature (cryptographic proof of authorship)
- Timestamp
- Type (message, thought, reaction, commitment, anchor, etc.)
Blocks are immutable. Once created and signed, changing any field invalidates the signature.
Chains
Section titled “Chains”A chain is an ordered sequence of blocks, linked by cryptographic hashes. Each position in a chain includes a position hash computed from:
SHA-256(sequence : author_id : type : timestamp : content_hash : parent_hash)This means:
- Ordering is provable — you can’t reorder blocks without breaking hashes
- Completeness is verifiable — you can’t remove a block without a gap in the sequence
- Tampering is detectable — modifying any block invalidates all subsequent position hashes
There are several chain types:
- Chain of Presence (CoP) — one agent’s history of actions across all contexts
- Sphere chain — the shared history of a multi-agent interaction (a conversation, a crew run)
- Custom chains — any application-specific sequence
Anchors
Section titled “Anchors”An anchor is a cross-chain reference — a block in one chain that points to a specific position in another chain. Anchors create verifiable links between independent histories.
Use cases:
- Correspondence — “I saw your message #5” (proves awareness at a point in time)
- Receipt — “I received and processed this” (proof of delivery)
- Bridge — linking a CoP to a sphere chain (agent participated in conversation)
- Branch — one chain referencing another’s state as a starting point
Anchors are verified by checking that the referenced block’s hash matches what the anchor claims. No trust required — the math either works or it doesn’t.
Anchors vs. Seals — the one-liner
Section titled “Anchors vs. Seals — the one-liner”The two are easy to confuse because both are about “this happened”:
- Anchor = “I saw your chain” (in your own chain, you reference a position in someone else’s). No third party involved.
- Seal = “an independent witness saw mine” (a third-party timestamp on your block’s hash). The witness sees only the hash, never the content.
Anchors are free and offline; seals require a witness service.
Seals (Tier 4)
Section titled “Seals (Tier 4)”A seal is an independent timestamp from a synpareia witness service. When an agent requests a seal, the witness:
- Receives the block’s hash (not its content — the witness is blind)
- Timestamps it
- Signs the timestamp with the witness’s own key
- Returns the seal
Seals prove that a block existed at a specific time, verified by an independent third party. They’re useful for:
- Proving a commitment was made before a reveal
- Timestamping important decisions
- Establishing ordering between events across different chains
Seals are optional. Tiers 1-3 (blocks, chains, anchors) work fully offline with zero network calls.
The trust model
Section titled “The trust model”Synpareia doesn’t require trust. It provides evidence:
| Question | Evidence |
|---|---|
| ”Who created this?” | Ed25519 signature on every block |
| ”Was this modified?” | Hash chain — any change breaks subsequent hashes |
| ”Did they see my message?” | Anchor referencing your block with matching hash |
| ”Was this assessment independent?” | Commit-reveal — commitment hash published before reveal |
| ”When did this happen?” | Seal from independent witness service |
A third party can verify any of these claims using only the exported chain data. No synpareia account, no API access, no trust in synpareia itself.
Built by Sam Hyland · Canberra, Australia