Status: PREPARING — scoped self-review package ready; external audit not yet commissioned.
Do not claim: “Audited,” “production crypto,” or “trusted L1.”
Frozen with: THREAT-MODEL.md v1.1 · evidence dates via CI scripts below.
| Surface | Path | Why |
|---|---|---|
| Hash-OTS + leaf single-use | src/lib/pixel/crypto.ts, chain.ts (usedOtsLeaves) |
Spend / PoLS forgery if broken |
| ML-DSA-65 scheme surface | src/lib/pixel/scheme.ts (signPixel / verifyPixel) |
Default wallet / node birth |
| Frozen quantum vectors | src/lib/pixel/vectors/quantum-v1.json |
Drift / regression |
| Tip accept path | acceptBlock in src/lib/pixel/chain.ts (docs historically said acceptPixel) |
Peer can poison tip |
| ULA EVM twin | contracts/ULAVerifier.sol, src/lib/pixel/ula-evm.ts |
Foreign receipt forgery |
| ULA ML-DSA off-chain + gate | src/lib/pixel/ula-mldsa.ts, contracts/ULAOffchainMldsaGate.sol |
PQ birth ↔ foreign receipt story |
| Bridge custody inversion | bridge-custody.ts |
Foreign verify ≠ vault release |
transport-kem.ts)ULA-MLDSA.md)bun run test:crypto
bun run test:ots-reuse
bun run test:mldsa
bun run test:vectors
bun run test:ula
bun run test:ula-mldsa
bun run test:bridge-custody
bun run test:light
bun run test:audit-scope
bun run test:forge # needs foundry
ULAVerifier.IS_STUB == false (keccak-OTS twin)verifyLight remains fail-closed“Audited components (scoped).” Until then the honest line is:
Scoped audit package prepared; external review pending.
@noble/post-quantum integration (domain separation, key persistence, OTS cursor) over re-auditing NIST algorithms from scratch.acceptBlock + OTS reuse set + electable-bound PoLS are consensus-critical.