What’s hidden, what’s not
The bet you place ends up on Solana as an account called a position. Here’s what’s on it.| On your position | Visible to others? |
|---|---|
| Your wallet address | Yes |
| Your stake amount | Yes |
| The odds you locked in | Yes |
| Your chosen side (YES, NO, or which option) | No - encrypted |
| The result, once the market settles | Yes |
The simple idea
Every bet you place uses a small piece of cryptography that works like this:- Your browser makes a one-time key. It’s just 32 random bytes. You’ll never see it; the app generates and stores it for you.
- It mixes that key with a key the off-chain network published. The result is a shared secret - a number both sides can compute independently. Nobody watching Solana ever sees it.
- The shared secret scrambles your side. Your YES or NO becomes 32 bytes of noise.
- The noise goes to Solana. Your wallet, stake, and the noise are all visible. The original YES or NO is not.
This is the same kind of cryptography that protects WireGuard, Signal, and HTTPS. It’s standard, well-studied, and battle-tested.
What happens when you click “Bet”
The actual flow, end to end:- You click Bet in the app.
- Your browser generates a fresh keypair and computes the shared secret.
- It uses the shared secret to scramble your side into 32 bytes.
- Your wallet signs a transaction that sends the scrambled bytes, your stake, and your public key (the harmless half of your keypair) to Solana.
- The transaction confirms in about a second.
- The Arcium off-chain network processes your bet in about ten more seconds (it updates the public odds on the market, but still can’t see your side).
- Your position appears in your Positions tab.
Where the secret lives
The secret - your half of the keypair - is stored in your browser’s local storage. The app uses it for two things:- Showing you your own bet. When you open Positions, the app reads the secret out of local storage and uses it to decrypt the side it stored on chain. That’s why you can see your own YES or NO.
- That’s it. Nothing else needs it.
Why losing your secret doesn’t lose your money
This is the most common confusion, and it’s worth stating clearly:- You don’t need the secret to claim a payout. The off-chain network can already see what side you bet on (it has its own half of the keypair) and writes the result to the market itself. Your claim just asks the program to pay out - the program already knows whether you won.
- You only need the secret to read your own side in the UI. Without it, the app shows “encrypted” instead of “YES” or “NO,” but everything else works.
What Cyphers does not protect
It’s worth being honest about the limits.- Your wallet is public. Anyone scanning Solana can list all your positions.
- Your stake is public. The amount you bet shows up in plain text on chain.
- That you bet on a particular market is public. Cyphers hides what you bet on, not that you bet at all.
- Timing is public. Block timestamps show roughly when you placed each bet.
What’s next
- Market lifecycle - what happens after the market closes.
- Market types - the two kinds of markets and how their odds work.
- FAQ - common questions about privacy and recovery.
