What the app's messages mean, and what to do about them.
Getting in
| You see | What it means | What to do |
|---|---|---|
| No Solana wallet was detected in this browser. | No Wallet Standard wallet is installed or enabled. | Install one, reload, or use a burner on a test cluster. |
| Cancelled in the wallet. | The signature or transaction was rejected in the wallet popup. | Try again and approve. |
| No pool on this cluster | The zkSVM program is not deployed on the cluster the app is using. | Check the cluster chip in the top-left, and switch to a cluster where the pool is live. |
| The pool is not initialized | The program exists; its tree and vault do not yet. | Press Initialize the pool. It is permissionless and happens once per deployment. |
Syncing
| You see | What it means | What to do |
|---|---|---|
| Reading the chain… for a long time | First sync on this device, or a busy pool. The app reads every note. | Wait. Later visits resume from the cache. |
| A payment you expect is missing | Your copy of the pool is a few seconds behind. | Press Resync. |
| Balance shows 0 after switching cluster | Each cluster and deployment has its own pool. | Switch back, or shield on this one. |
Sending and unshielding
| Message | What it means | What to do |
|---|---|---|
| The most this can move is … SOL. | A send spends two notes at most, an unshield one. | Merge your notes, then retry. |
| One transfer spends at most two notes… | Same limit, found while choosing notes. | Send the suggested amount to your own shielded address first. |
| That is neither a shielded address nor a Solana address. | The recipient did not parse. | Paste it again; shielded addresses start with zks. |
| Unshielding pays a Solana address. | You entered a zks… address on the Unshield tab. | Use Send for shielded recipients. |
| That address is new: it must receive at least … SOL to exist. | A new Solana account needs a minimum balance. | Withdraw at least that much. |
| The pool moved on while the proof was being built. Try again. | Many notes were added between building your proof and landing it. | Press the button again. |
| The staking rate moved while this was in flight. Try again. | Jito's rate changes once an epoch, and an earning shield names an exact amount. | Press Shield again. Nothing was spent. |
| That note has already been spent. | The same note was used by an earlier transaction — often a double click. | Let the app resync; your balance is correct. |
Claiming
| Message | What to do |
|---|---|
| That is not a claim code. | Copy the whole code, starting at zkclaim. |
| No note in the pool matches this code for your address. | Connect the address that was paid. If the payment is very recent, Resync first. |
| That note is gone: it was claimed already, or it went back to its sender. | Nothing to do — ask the sender if it was returnable. |
Proving
| Message | What to do |
|---|---|
| A proof speaks for one note, and your largest holds … SOL. | Merge until one note covers the amount. |
| Say what this is for. | Fill in For: the wording is part of the proof. |
| Made for something else. | The proof is real, but was made under different wording. Ask for one with yours. |
| Not in this pool. | The receipt refers to a note this pool does not hold. Check the cluster, then Resync. |
| The proof is about a different recipient than the receipt names. | The receipt was altered. Do not rely on it. |
Performance
- The first proof is slow. Proving keys are downloaded once — 16 MB for sends, about 8 MB each for the others — and cached by the browser.
- Proving takes a few seconds and a few hundred megabytes of memory. Desktop browsers handle it comfortably; older phones may struggle.
- Keep the tab in front while a proof is building. Browsers slow down background tabs.
Still stuck? The FAQ covers the questions that are not error messages.