Valon never holds your keys, and its program won't move funds without a valid proof from them. Here is how it's tested, where review stands, and what you can check on-chain yourself, right now.
What's done, and what happens before deposit caps are lifted.
Program, circuit and relayer, reviewed by people other than their authors. Every finding was fixed before launch and has a regression test.
Program, circuit, app and servers. All fixes are live; the program fixes were reviewed in the external audit and deployed through the multisig on October 6, 2026.
522 checks across 6 suites, including real zero-knowledge proofs replayed against the on-chain program.
End-to-end runs against a copy of mainnet with the real Jupiter and Jupiter Lend programs: shield, private swap, private lending, exit.
Scope: On-chain program (programs/veil-core). · Read the report
Live since October 4, 2026, with a 2-of-2 multisig as admin and upgrade authority and a preflight that refused launch until every check passed. The launch's per-token caps were lifted after the audit. · Launch post
Every suite runs on each release; tap one to see what it covers. Last run Oct 6, 2026 · build f8fa5c9.
Each guarantee is exercised against the real program with hostile inputs that must be refused. We publish what is guaranteed, not how anyone might try to break it.
A note leaves a one-time marker on-chain when spent; any second attempt is refused by the program.
2 scenarios verifiedEvery public detail of a transaction is recomputed by the program and bound into the proof. Change anything and it no longer verifies.
2 scenarios verifiedRecipients and relayer fees are fixed by your proof. Nobody in between can redirect them.
1 scenario verifiedEach trade or lending position gets its own escrow and signer and must pay out at least the minimum you approved (the app checks the quote against the market price first), or your input comes back as a private note.
7 scenarios verifiedValon’s fee is 0.3% when you shield, trade or withdraw. Private sends between Valon users have no Valon fee. Fees are kept apart from user funds and can only go to Valon’s treasury.
3 scenarios verifiedAdmin powers are narrow, can’t move user funds, and change hands only when the new holder accepts.
7 scenarios verifiedTokens with features that could endanger a shared vault are rejected when a vault is opened.
1 scenario verifiedEmpty transactions are refused and each token’s vault has a cap.
2 scenarios verifiedOutsiders can’t stop your spends or withdrawals by tampering with addresses ahead of time.
2 scenarios verifiedGenerated and encrypted in your browser; proofs are built there too. Relayers and indexers never get your keys or learn which notes are yours. Like any server they see your IP address, and the relayer sees the transactions it submits for you, which are public on-chain anyway.
The admin can pause and set limits, but no instruction lets anyone move notes without the owner's proof.
Swaps and lending run only through allowlisted programs, each confined to its own escrow.
Anyone can run a relayer or an indexer. The app checks the indexer's data against the Merkle root the Valon program itself records on-chain, so it can't be shown a balance that isn't there.
Read straight from the Solana RPC in your browser, not from our servers.
Found something? Please report it privately before telling anyone else, so users stay safe while it's fixed. Write to info@valon.xyz.