Understanding Privacy Operations
0xio gives you complete control over your financial visibility through three main operations:Encrypt
Move funds from Public → Private
Decrypt
Move funds from Private → Public
Claim
Accept incoming private transfers
Setting Up Your Private Balance
A wallet needs its encryption key registered on chain once before it can hold a private balance. This costs a one-time network fee.- Extension: Home shows a Set up private tag once the wallet can turn on its private balance. Its sheet shows the live one-time fee, and Turn on registers the key.
- Desktop: Home shows a tag once the wallet holds enough OCT for the fee. It opens a review with the live fee; Turn on registers the key after Touch ID or your password. The menu bar panel offers the same.
- Mobile: Home shows a blue Set up private tag. Its sheet shows the one-time fee, and Slide to turn on registers the key after your PIN or biometrics.
Network Proof Rules
Every private operation carries zero-knowledge proofs, and the network decides which proof rules it accepts. Before any private action (setup, encrypt, decrypt, private send, claim, key update or migration), the wallet asks the network for its rules. It reads them again right before signing.- Rules stated: the action goes ahead under those rules.
- Rules not stated: private actions pause with a message that the network did not say which proof rules it takes. Nothing is sent. Public sends keep working.
- Network not reachable: the wallet says it could not reach the network to check its proof rules. Nothing is sent; try again later.
- Rules changed in between: nothing is sent, and you prepare the action again.
Encrypting Funds (Public → Private)
“Shielding” makes your funds invisible to blockchain observers.When to Encrypt
- Before making confidential purchases
- Protecting salary or business payments
- Hiding holdings from public view
- Preparing for private swaps on DEX
- Enhancing overall financial privacy
How to Encrypt
1
Open the Privacy Screen
Go to the Privacy screen (Encrypt / Decrypt / Claim) in your wallet
2
Select Encrypt
Choose the “Encrypt” option
3
Enter Amount
Input the amount to shield from your Public Balance
4
Review Fee
Check the network fee estimate (quoted live from the node in ou)
5
Confirm
Confirm on the review, which shows the amount and the live network fee
6
Wait for Confirmation
A proof-generation overlay shows progress; confirmation follows shortly after
Technical Process
When you encrypt funds:- Local Encryption: Your device performs FHE encryption on the amount
- Transaction Creation: Encrypted payload is prepared
- Signing: You sign the transaction with your private key
- Broadcast: Encrypted transaction sent to network
- Validation: Validators process without seeing the amount
- Confirmation: Funds move to your Private Balance
Privacy Guarantee: The encryption happens entirely on your device before any data touches the internet. Validators never see your plaintext amount.
Costs
Encrypt fees are denominated in operational units (ou) and quoted live from the node, with a floor of 5,000 ou (decrypt and private sends share it). The fee is paid from your public balance, so the amount plus the fee must fit in it. If the fee cannot be read, the operation is blocked with Network fee unavailable instead of using a fixed fee. Encrypt also generates proofs locally, so it takes longer than a plain transfer.Decrypting Funds (Private → Public)
“Unshielding” makes your funds publicly visible again.When to Decrypt
- Sending to exchanges that don’t support FHE
- Interacting with public DeFi protocols
- When faster transaction speed is needed
- Reducing gas costs for routine operations
How to Decrypt
1
Open the Privacy Screen
Go to the Privacy screen and select the Decrypt tab
2
Select Decrypt
Choose the “Decrypt” option
3
Enter Amount
Specify the amount to unshield from your Private Balance (balance validation prevents over-decryption)
4
Review Fee
Check the network fee estimate (in ou)
5
Confirm
Confirm on the review. The network fee is paid from your public balance
6
Confirmation
Funds appear in your Public Balance after confirmation
Claiming Private Transfers
When someone sends you a private (stealth) transfer, you claim it to move the funds into your private balance.Finding Pending Transfers
- Open the Privacy screen and switch to the Claim tab
- Run the stealth scan to query the blockchain (live progress is shown while it scans outputs)
- Detected transfers appear in a list
Claim Process
1
View Pending Transfer
See details of incoming private transfer:
- Sender address
- Estimated amount (if disclosed)
- Timestamp
2
Click Claim
Press “Claim” button next to the transfer
3
Review Fee
A network fee (in ou) covers decryption and the state update
4
Confirm Transaction
Sign the claim transaction
5
Funds Added
After confirmation, funds appear in your Private Balance
Claim Fees
- Denominated in ou and quoted live from the node before you confirm, never below 3,000 ou
- Paid By: Recipient (you)
- Reason: Computational cost of decryption and the on-chain state update
Bulk Claiming
If you have multiple pending transfers, use Claim All to process every detected transfer in one action. The wallet still settles each claim on-chain individually, so a fee applies per claim. On the mobile app, Claim all runs under one review with Pause and Stop.Encryption Key Updates and Held Balances
From time to time the network upgrades its encryption scheme. When that happens:- Key update: the wallet asks you to re-register your encryption key before you can encrypt or decrypt. If you hold a private balance, it can be migrated to the new key in the same transaction. The review shows the live fee.
- Balance on an older key: when the network offers it, Migrate moves a balance held under an older key with a proof about the encrypted balance itself. The wallet picks this route on its own when the network lists it as open.
- Held balance: when the network holds a private balance (for example one sealed under an older scheme that waits for a network migration), Home shows a tag such as Private on hold and the Encrypted row reads On hold. The tag’s sheet shows the reason. Your public balance is unaffected and nothing is lost.
- Refresh first: a private balance can carry only a limited number of encrypted layers. When an operation meets that limit, the mobile app and the desktop menu bar say the balance is refreshed first and show the fee for both transactions under one review. In the desktop window the form shows Refresh key first with the layers as dots of eight; Review refresh opens its own review (layers now and after, the live fee and what runs next), and the operation is reviewed on its own after it.
Faster Proofs with 0xio Desktop
Proofs run on your device. When 0xio Desktop runs on the same computer and is paired with the extension (see Pairing with the Extension), the extension runs its proofs in the desktop app, which is faster than in the browser. The desktop app never receives the key that signs your transactions.Privacy Best Practices
Maximize Privacy
Keep Most Funds in Private Balance
Keep Most Funds in Private Balance
Maintain majority of holdings in encrypted state. Only decrypt what you need for immediate use.
Use Separate Addresses
Use Separate Addresses
Consider using different addresses for public and private activities to reduce correlation.
Encrypt Immediately After Receiving
Encrypt Immediately After Receiving
When receiving public transfers, encrypt them quickly to minimize exposure.
Batch Privacy Operations
Batch Privacy Operations
If making multiple encrypt/decrypt operations, batch them to save on fees.
Balance Management Strategy
Conservative Privacy Model:Monitoring Privacy Operations
Transaction History
View all privacy operations:- See all encrypt/decrypt operations
- Track gas costs over time
- Verify operation success
Troubleshooting
”Insufficient Balance for Encryption”
- Check you have enough Public Balance to cover the amount plus the network fee
- The wallet validates that amount + fee fits your public balance before submitting
”Private Actions Are Paused” or “Unavailable on This Network”
- The network did not state the proof rules it takes, so the wallet sends nothing private
- Public sends still work
- Try again later, or switch to a network that states its rules (see Network Proof Rules)
“Claim Transaction Failed”
- Ensure sufficient OCT to cover the network fee
- Try refreshing pending transfers list
- Transfer may have been auto-claimed
”Decrypt Taking Too Long”
- Network congestion can delay operations
- Check transaction status in History
- Wait longer during peak times
- Consider increasing the fee (ou)