sanctum-chain — evidence ledgerledger | Partial | Seven tables with an append-only trigger on the event table, a Merkle leaf store, signed tree heads and anchor records, on PostgreSQL behind a typed API. Verified against a real Postgres 18 instance: 356 tests pass, append-only triggers fire, and total supply is conserved on every path. Signed-tree-head signing fails closed when the YubiKey is absent, which means a cloud deployment produces no signatures at all rather than weak ones — correct, and a deployment constraint worth stating. The hardening sits on an unmerged branch, so the default branch still carries the older behaviour. | Cygnus ConvergencePython · 30 source files · deposited 2026 |
Anchoring and proof of existenceanchor | Live | Deployed and exercised on Sanctum PEN, chain 65953. YSTPAnchor is at 0x606f5b677234d5d912ac8fcda4db3bccb1611515, carrying 3,653 runtime bytes — the deployed code length matches the compiled size exactly — and it verifies the YubiKey P-256 signature on-chain through the P256VERIFY precompile standardised in RIP-7212 and EIP-7951, so authority rests in the signature and not in the sending account. The precompile was probed on the live chain before deployment and returns empty on invalid input, which is the specified behaviour. The authority key is registered: P-256 on YubiKey serial 37290121, PIV slot 8E, transaction status 0x1 in block 72,737, and getKey reads back active. The contract confirms SANCTUM_PEN as 65953, agreeing with the 1.3.6.1.4.1.65953 arc. Read-back rather than receipt: owner, SANCTUM_PEN and getKey were all queried after the fact. What is still not true is external checkability — the RPC does not answer from outside the perimeter, so a reader cannot repeat these calls. Anchor cadence stays once per 24 hours by design: anchoring costs roughly 66 ms against 0.50 ms for a rekey, a 177-fold ratio that argues for infrequent anchors and frequent rekeys. | No deposited work names this line |
Open timestamp receiptsots | Not built | No receipt serialisation exists anywhere in the codebase; the format is named in two README files and nowhere else. Compatibility with standard clients is not claimed and will not be claimed until a receipt produced here verifies in one. | No deposited work names this line |
SCN — settlement and tokenomicsscn | Partial | Mint, vesting, burn, governance voting and treasury modules are implemented and covered by the suite. The two defects previously published here — conflicting 002 migrations, and contract execution committing partial state — are both fixed and regression-tested on a branch that has not been merged. The on-chain unit is deployed: SanctumCoinX at 0xfedd5a48895eca9d7ad1a637ee7db2d8d4266d52 on chain 65953, an 8-decimal ERC-20 with a one-billion cap and a YubiKey-gated bridge-in, 5,391 runtime bytes on chain against 5,391 compiled. It reads back symbol SCNX, 8 decimals, and its anchor bound to the deployed YSTPAnchor. The off-chain mint schedule, vesting and treasury modules that meter it remain on an unmerged branch, which is why this is partial rather than live. | No deposited work names this line |
Deterministic contract executioncontracts | Partial | Interpreter, gas accounting and the state model are implemented, and the execution path has been rewritten to run inside one Postgres transaction: the contract row and every reachable balance row are locked in sorted order, the engine runs copy-on-write, and on failure no state and no contract-driven ledger movement commits while the payer still pays for gas consumed. Nine defects were fixed, one critical — a threshold condition that did not deduplicate signatures by address, letting a single signer satisfy an N-of-M rule by replaying one signature. 58 regression tests plus 30 against real Postgres. All of it is still on an unmerged branch, which is the gap: the on-chain suite this meters is deployed on chain 65953, the interpreter that meters it is not merged. | No deposited work names this line |
Attested collectiblescollectibles | Partial | Collections, tokens, transfers and marketplace listings exist in schema and routes, and the on-chain pair is deployed: SanctumComposites at 0x11620f6a2f092d062ef8efed6cec0736237a52f3, an ERC-721 with ERC-2981 royalties and immutable provenance, 7,518 runtime bytes, reading back symbol SCOMP; and SanctumMarketplace at 0x7f277208a180dce0bc89d86d5e9ba55831ef6604, 5,203 bytes, with paymentToken bound to the deployed SCNX and a protocol fee of 250 basis points against a contract cap of 1,000. What keeps this partial is not the code: no collection has been issued, and the treasury, validator and staker sinks all still point at the deployer address, so the split is nominal until they are separated. | No deposited work names this line |
Chain as a servicecaas | Partial | Tenant provisioning, per-tenant usage accounting, the fee schedule and the three tiers are implemented. The tenant dashboard single sign-on is forgeable as written: the token is verified against an environment variable that defaults to the empty string, which lets anyone mint a valid session for any tenant. That must be fixed before a tenant is onboarded. | No deposited work names this line |
Validator set and reputationvalidators | Partial | Validator set, reputation scoring and block records are implemented. The set is not distributed: it runs as a single operator today, which means the reputation model is instrumentation rather than consensus. | No deposited work names this line |
Machine-payable verificationx402 | Not built | The commercial design is settled — bill the successful verification, keep the client permissively licensed — and the payment rails exist externally. Nothing is wired up on the Sanctum side. | No deposited work names this line |