Architecture Decision Records¶
The design decisions behind the Accord. Each ADR captures the context, options considered, and consequences of a locked architectural choice.
ADRs are immutable once deployed. A superseded decision gets a new ADR that references the old one.
Index¶
| # | Title | Status |
|---|---|---|
| 0001 | Schelling-point Accord replaces hired-judge committee | Accepted |
| 0002 | Per-Subaccord staking token, no Accord token in v1 | Accepted |
| 0003 | Draw — Merkle Snapshot, off-chain sortition, distinct Jurors | Accepted |
| 0004 | Party-agnostic; appeal is permissionless | Accepted |
| 0005 | Subaccord authority — pubkey-gated, 48h timelock | Accepted |
| 0006 | Evidence — on-chain hash, trusted re-encryption operator | Accepted |
| 0007 | Upgrade authority — Squads multisig, then post-audit freeze | Accepted |
| 0008 | Snapshot trust hardening — anchor-slot pattern, fraud predicates, sortition | Accepted |
| 0009 | Stake-weighted verifiable sortition — MST, committed VRF | Accepted |
| 0010 | @accord/sdk — Codama codegen + Solana Kit + custom facade |
Accepted |
| 0011 | Evidence Operator Daemon — off-chain decrypt-re-encryption service | Accepted |
| 0012 | On-chain stake accumulator replaces the optimistic snapshot (resolves Bad 4 + Bad 5) | Proposed |
| 0013 | Evidence data format — manifest.yaml Merkle root, salted option labels | Accepted |
How to read them¶
- New to the project: start with 0001 (why Schelling-point), then 0003 (how the draw works), then 0008
- 0009 (how the snapshot trust model was hardened).
- Integrating: 0001 + 0004 (party-agnostic) + 0005 (Subaccord authority) are the most relevant to your integration surface.
- Auditing: 0008 + 0009 are the security-critical ADRs (snapshot fraud proofs, sortition enforcement, VRF integration). 0012 supersedes the snapshot layer of 0003/0008/0009 (retains the anchor-slot leaf witness): an on-chain accumulator makes the root canonical, dissolving the data-availability and sum-authentication gaps.
Authoring a new ADR¶
- Number = next sequential (e.g., 0010).
- Follow the format:
# Title→ decision statement →## Considered Options→## Consequences. - Move to
apps/docs/docs/adr/viagit mv(or create in place). - Add to the table above.
- Reference related ADRs and beans.