For judges
How to verify our claims
Sixty seconds, no trust required. Run three commands, visit three URLs, check one hex string, and follow the explorer links to the verified on-chain runs.
Three commands
terminal# 1 · prove + verify a proof against the committed key, off any browser
pnpm api # start services on http://127.0.0.1:3000
pnpm api:smoke # exercises /accredit, /prove, /verify end to end
# 2 · confirm Poseidon parity (off-chain == circuit == on-chain host)
pnpm gate:a
# 3 · run the full self-serve loop on testnet
pnpm selfserve:smokeThree URLs
No wallet required for any of these:
/prove run a real Groth16 proof in your browser (~1 s)
/verify/<tx-or-commitment> independently verify any subscription
/docs/host-functions the Gate A parity witness, verbatimOne hex string to check
Poseidon parity, three identical outputs
For the input pair "1", "2", the off-chain library, the Circom witness, and the Soroban host all return:
115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a
Byte-identical across all three. No contract contains userland Poseidon or BN254 arithmetic.
Explorer links, verified on-chain runs
Gate A, Poseidon parity (forced host invocation)94e5d8…e4d5Gate B, native BN254 Groth16 verification593c25…0ee1Real subscription with exact balance assertionsc0ed39…aa51Same-nullifier replay, finalized FAILED, code 59713c9…7a36Leaf-only self-serve accreditationb8394e…28fdFresh-address subscriptiona3950d…a0dd