Start here
Practice on testnet
A walkthrough of every flow in the app with test funds on Robinhood Chain testnet or Tempo Moderato. Nothing here costs real money.
- Networks
- Robinhood Chain testnet, Tempo Moderato
- Cost
- Free test funds
- Time
- About fifteen minutes
What you can do#
By the end of this walkthrough you will have shielded test stablecoins, paid someone privately, run a three-person payroll, made a proof and checked it, unshielded what is left, and saved a backup of your keys. Every step uses test tokens with no value.
Before you start#
- A browser wallet that can add a custom network (most EVM wallets can).
- A fresh account for testing. Keeping test activity away from your everyday address is a good habit, and it is the account the faucet will fund.
- A deployment where the network you pick has its pool configured. If the network shows as planned in the app, it is read-only there; use demo mode to follow along.
1. Add a test network#
Open the app and connect your wallet. If the wallet does not know the network yet, the app offers to add it. To add it by hand, use these values:
| Setting | Robinhood Chain testnet | Tempo Moderato |
|---|---|---|
| Chain id | 46630 | 42431 |
| RPC | https://rpc.testnet.chain.robinhood.com | https://rpc.moderato.tempo.xyz |
| Gas | Test ETH | Paid in USD stablecoins |
| Stablecoins | USDG | pathUSD, AlphaUSD, BetaUSD, OUSD |
2. Get test funds#
Each network runs its own public faucet; find it in the chain's own documentation. On Robinhood Chain testnet you need a little test ETH for gas plus some USDG. On Tempo Moderato there is no gas coin: fees are paid in a USD stablecoin, so one faucet drip of pathUSD covers both. Wait until the balance shows in your wallet before moving on.
3. Shield#
Go to Vault → Shield, pick the stablecoin, enter an amount (start with something like 50) and confirm. Your wallet asks for an approval the first time and then for the deposit. When the deposit confirms, the amount appears as your private balance in the vault.
Open the transaction in the explorer. You will see your address depositing into the pool. That step is public by design; it is everything after it that is not.
4. Pay privately#
Open Vault → Pay. Paste an UMBR address (they start with umbr1q) or choose to create a claim link instead. Add an optional memo and send. The app builds a proof on your device, which takes a few seconds, then submits it. A claim link can be opened by anyone who has it, so share it only with the person it is for; see private payments.
5. Run a small payroll#
On Payroll, paste a list or upload a CSV with an address, an amount and an optional label per line. Ask a friend for their UMBR address, or make two more test accounts so you can see what each receiver sees.
address,amount,label
umbr1qexample4fz8m2ana,12.00,Design review
umbr1qexample9wq1t6ben,8.50,Copy edits
umbr1qexample2hx7c0cal,5.00,TestingReview the total, run it, and watch each line settle. Every line is its own private payment; nobody on the list sees anyone else's line. More in private payroll.
6. Make a proof#
Open Prove. Choose what to prove (for example, that you hold at least 20 USDG), type who it is for, pick an expiry of 1, 7 or 30 days and create it. Copy the link, open /verify in a private window and paste it. You should see the statement, the audience, the expiry and a valid result. From a finished payroll run you can also prove the run total. The proofs page covers all four kinds.
7. Unshield#
Open Vault → Pay → Cash out, choose the asset and amount, and enter a public address to receive it. It can be any address, not only the one you deposited from. Withdrawing to a new address and waiting a while makes it harder to match the withdrawal to your deposit; the privacy model explains why.
8. Back up your keys#
Your private balance can only be read with your UMBR keys. Go to Settings, export the key backup and store it somewhere safe and offline. If you clear your browser data without a backup, the funds stay in the pool but you lose the means to find and spend them. UMBR cannot recover them for you.
A backup is a key
Demo mode#
Add ?demo=1 to any app URL, for example /app/vault?demo=1. You get a pretend funded account and every screen behaves as usual, but nothing is signed and nothing is sent to a chain. It is on by default on localhost; a deployment can allow it elsewhere with the NEXT_PUBLIC_UMBR_DEMO setting. Use it for walkthroughs, screenshots and to try the app when no pool is configured.
Troubleshooting#
| What you see | Likely cause | What to do |
|---|---|---|
| The network is marked planned | No pool is configured for it on this deployment | Pick the other testnet, or use demo mode |
| Wrong network prompt | The wallet is on a different chain | Switch in the wallet, or accept the app's switch request |
| Shield fails on Robinhood Chain testnet | No test ETH for gas | Top up from the faucet and retry |
| Proof generation is slow | First run downloads circuit files; slower devices take longer | Keep the tab open and in front until it finishes |
| Balance looks too low after a payment | Notes not synced yet | Wait for confirmation, then refresh the vault |
| A proof shows as expired | Its expiry has passed | Make a new one with a longer expiry |
| Relayer rejected the transaction | Relayer busy, or fee too low for current conditions | Retry, or submit from your own wallet |
| Private balance is gone after clearing the browser | Local notes and keys were deleted | Restore from your backup in Settings |
Still stuck? Message @umbrtrade on X. Never send your key backup.