Status
Pocket runs on Stellar testnet today, end to end, with real proofs the on-chain verifier accepted. Two upstream things gate mainnet.
Pocket works end to end on Stellar testnet, with real UltraHonk proofs generated on your own machine and accepted by the on-chain verifier. Every claim below is a transaction anyone can look up.
Proven on chain
| What | Transaction | Fee charged |
|---|---|---|
| Auditor key registered, id allocated by the registry | 7465cc88… | 0.0051934 XLM |
| Confidential account registered, proof accepted | 60dff27f… | 0.0312027 XLM |
| Received balance merged into spendable | 792caf07… | 0.0009266 XLM |
| Confidential transfer, amount hidden | 391b5767… | 0.0397523 XLM |
The register transaction is the one that proves the whole pipeline. It ran with no mocks: a spending key derived from a SEP-0053 signer root, a witness built by Pocket's own cryptography, the real Noir circuit solving that witness, a real UltraHonk proof of 14,592 bytes, and the on-chain verifier accepting it.
How to check each of these yourself.
Deployed contracts
Six contracts are live on testnet: two confidential wrappers sharing one verifier and one auditor registry, plus the two Stellar Asset Contracts they wrap.
Every address, with the verification-key hashes.
Mainnet
Pocket is built for mainnet. The mainnet network entry already exists in the wallet's configuration, carrying the network passphrase, Horizon, the native Stellar Asset Contract, Circle's mainnet USDC issuer and the mainnet Aquarius router.
The switch is closed in this build, held by three independent checks: the network setter, the manifest's host permissions, and the empty mainnet deployment list.
Two upstream items gate opening it: the Soroban verifier implements only the non-zero-knowledge proof flavour, and the verifier backend has not been audited.
What has to happen, and in what order.
What is checked before anything ships
Seven release gates run against the artifact a user would install, not against the sources that produced it. They check the toolchain pin, that all six verification keys reproduce from circuit source, that every deployed address resolves on chain, that the pinned verifier fork carries no Rust changes, that the public-input counts match the circuits, that the package carries no source maps or loopback endpoints, and that the browser suite passes against that exact package.
The seven gates, and what each one catches.
Every claim in one place
Networks, assets, audit status, permissions, and what is built: the register carries all of it.