Axis 19 · custody · published policy
Custody disclosure
Board cards are signed by the GitHub Actions publisher on Cloudflare Pages. The signing key does not live on a laptop, in MetaMask, or in this chat. Identity for the public board is did:web:csoai.org#board-attestation-1. One writer law: only the publisher workflow writes the board, the root, or cards — every other lane, human or agent, produces unsigned artifacts and pull requests. The NO_LAPTOP_SIGN tag exists so an unsigned card can never masquerade as signed.
Public key disclosure
| Key id | Algorithm | Signs |
|---|---|---|
| did:web:csoai.org#board-attestation-1 | Ed25519 | Public-root envelope (/root.json) |
| did:web:csoai.org#card-attestation-1 | Ed25519 | Measurement cards (card-v0 sig_ed25519; shape-A chain cards, Aug 2026) |
| did:web:csoai.org#site-release-1 | Ed25519 | Site release attestation |
| did:web:csoai.org#estate-chain-1 | Ed25519 | Estate chain links |
| did:web:csoai.org#gspc-board-22axis-2026 | Ed25519 (3-party) | 22-axis board configuration attestation |
Full public key material (JWK): /.well-known/did.json · key-discovery document: /.well-known/scitt-keys (we_operate_a_ts: false — discovery only, never a transparency-service claim).
Rotation & retirement
Keys rotate by DID-document update. Signatures name their key id, so historical artefacts stay verifiable against the key that signed them. A key id absent from did.json after a disclosed rotation is retired — never silently compromised. Rotations are disclosed in the public corrections ledger.
What enforces this page
A custody statement nobody checks is marketing. Ours is wired to machines:
- Halt-on-split. The publisher refuses to publish when the committed tree and the computed tree disagree.
- Public-root watcher. After every publish, three hosts' copies are byte-compared; drift turns the run red.
- Health inventory. Hourly probe of root freshness, endpoint health, witness presence; failure opens a tracked issue.
- Corrections ledger. Our own failed attestations stay visible — published, not buried (/api/corrections).
What we do not hold
This page is a custody statement, not a SOC 2 report, not a certification, and not a claim that a ceremony has been independently audited. No HSM claim either. If those ever change, this section changes — with a dated entry in the corrections ledger, not a quiet edit.
- Signing: GHA publisher only.
- No board writes from MCP. MCP stays read-only.
- Verify a card at /gspc-verify.