# The Symplasm protocol
Version 1, published 2026-11-06. The protocol is everything a third party implements against. It is free and versioned. A change ships as a new protocol version with its own entry in `CHANGELOG.md` and never inside a product release. The product at symplasm.com is one implementation of it.
## Parts
- **The contract standard.** `data/protocol/contracts.json` holds every play's contract as data, with its floor, its judgment rubric, its outcome layer, and the self-attack instruction.
- **The floor.** `data/protocol/floor-commitments.json` holds each machine task's public cases and the hash and count of its held-out cases. A held-out set publishes in full when it rotates out on its stated date. Anyone can then hash it against the commitment and rerun every past verdict. `scripts/judge-cli.py` is the reference verifier, runnable by anyone.
- **The verifier interface.** A verifier receives the floor task, the submission, the intake, and the rubric. It returns pass or fail, its named failing checks, and its confidence. `src/verification/verifiers.ts` defines it. A registered verifier has an identity, an owner, a model operator, a tier, a calibration score, and a stake. Calibration scores are public.
- **The graph.** `KERNEL.md` holds the twelve laws, every node type with the envelope, every edge type, the scheduler's four parts, and the gate's rule per node type.
- **The MCP tool surface.** `tools.json` lists every tool with its input schema. It is generated from the live server.
- **The attribution method.** `attribution.md` defines how credit for an outcome is split across runs.
- **The record format.** An export is `symplasm-record-v1`, holding a workspace's fact history, goals, runs, outputs, suggestions, actions, and edges. Importing it restores the facts with their provenance.
- **The exhaust format.** Every gate decision logs its kind, node type, node id, principal, whether it was admitted, its failed checks, the state snapshot it was made in, and later the node that followed it.
- **The ledger rules.** Every ledger transaction balances to zero against the mint account. Units mint only on verified work and burn when a run consumes them. Only the mint account goes negative, outside credit lines a sponsor funds. The full rules are in the ledger-model decision doc.
- **The unit.** One unit is the compute of a published reference task on a published open-weights reference model. Other models convert by the ratio of their published prices, recorded by two parties. The full definition is in the unit-and-pricing decision doc.
## Changes
`CHANGELOG.md` records every protocol version.
tools.json