Supported chains and tokens
| Chain | Network Name | Supported assets |
|---|---|---|
| Ethereum | Ethereum | ETH and ERC-20 tokens |
| Arbitrum | Arbitrum | ETH and ERC-20 tokens |
| Polygon | Polygon | MATIC and ERC-20 tokens |
| BNB Chain | BNBChain | BNB and BEP-20 tokens |
The specific ERC-20 tokens available depend on which tokens have been added to RAILGUN’s allowlist. Tokens that have not been allowlisted cannot be shielded.
How it works
Connect your EVM wallet
Click Connect wallet in the Shielded Send panel. Any EVM browser wallet (MetaMask, Rabby, etc.) works. Select the chain you want to use.On first connect, your wallet signs two messages to derive your RAILGUN keys — a viewing key and a spending key. These signatures never leave your browser and cost no gas.
Wait for engine bootstrap
RAILGUN’s ZK engine loads once per session. It scans the blockchain for your private balances using your viewing key. This typically takes 15–60 seconds on first load. Subsequent sessions are faster.
Do not close the tab during the initial sync. If you do, the next session will re-scan from the last checkpoint.
Review your balances
Once synced, the panel shows two balances:
- Public balance — the tokens in your connected wallet address
- RAILGUN private balance — your shielded tokens, broken down by token
Shield funds
To move tokens into your private balance, click Shield. Enter the amount and token, then confirm the transaction in your wallet. This submits a public transaction to the RAILGUN contract depositing your tokens.After the transaction confirms on-chain, the RAILGUN engine scans the new block and credits your private balance. Depending on network congestion, this may show as Pending for a few minutes.
Send privately or unshield
With a private balance, you can:
- Private send — transfer tokens to any recipient address privately. RAILGUN generates a ZK proof, then submits the proof transaction. The recipient receives tokens with no on-chain link to your wallet.
- Unshield — withdraw tokens from your private balance back to a public address. This is also a ZK-proven transaction.
Private Proof of Innocence (POI)
RAILGUN includes a Private Proof of Innocence (POI) system that lets you prove your shielded funds did not originate from sanctioned addresses — without revealing anything else about your transaction history. If POI is required for your balance, the panel shows a POI status indicator. AValid status means your balance is fully spendable. A Pending status means POI aggregators are still processing your transactions; spending may be restricted until POI resolves.
You can open the POI diagnostics panel to inspect POI status per transaction and manually trigger a POI refresh.
Advanced tools
Resync
Resync
Triggers an incremental re-scan of RAILGUN transactions from the last checkpoint. Use this if your balance appears out of date after a recent shield or receive.
Deep resync
Deep resync
Clears the local scan checkpoint and re-scans all RAILGUN transactions from genesis. This is slower (several minutes) but resolves any persistent balance discrepancies. Your keys and private balance are not affected.
Anchor-TX recovery
Anchor-TX recovery
If your browser’s IndexedDB state was corrupted or cleared, the anchor-TX recovery tool lets you re-import a specific transaction hash as a sync anchor so RAILGUN does not need to scan from block 0.
Emergency unshield
Emergency unshield
If standard ZK proof generation fails, the emergency unshield tool bypasses normal proof generation and attempts a direct contract call to recover funds. Use only as a last resort.
Full state reset
Full state reset
Clears all RAILGUN engine state from IndexedDB. After a reset, the engine re-bootstraps from scratch on next open. Your on-chain shielded funds are unaffected.
Frequently asked questions
Why does ZK proof generation take so long?
Why does ZK proof generation take so long?
Generating a Groth16 ZK proof involves heavy cryptographic computation. On most modern laptops, this takes 10–30 seconds. Mobiles may be slower.
Can I use a hardware wallet?
Can I use a hardware wallet?
RAILGUN key derivation requires signing specific messages from your wallet. Most hardware wallet integrations (Ledger via MetaMask) support this, but some signing flows may require additional confirmation steps on the device.