Private transfers
Private payments on Robinhood Chain.
Shield ETH and USDG. Pay anyone without putting it on the public record.
Runs on
Public rails, private notes.
- Robinhood ChainArbitrum Orbit L2
- ETHnative asset
- USDGGlobal Dollar
- Uniswap V3in-pool swaps
- Groth16zk proofs
- PoseidonMerkle hashing
Lucky sevens
Three sevens. Zero trace.
The $CLOAKR CA ends in 777. The one number we show in public.
Why privacy
Block explorers never forget.
Share one address and anyone can read your balance, your payroll, your suppliers and every trade you make, for as long as the chain exists. Public is the default. Cloakr makes it a choice.
- Salary · Dana K.0x71c4…9e2a · 09:14-2,400.00 USDG
- Client invoice · #10420x3b9f…a1c0 · 08:52+12,500.00 USDG
- Swap · ETH to USDG0xd04e…77b3 · Yesterday-1.2500 ETH
- Rent · October0x8a22…c5f1 · Oct 1-1,850.00 USDG
- Contractor · R. Ito0x5e10…4d8b · Sep 29-0.4000 ETH
- Private recipient●●●●…●●●● · 09:14Shielded
- Private sender●●●●…●●●● · 08:52Shielded
- Private swap●●●●…●●●● · YesterdayShielded
- Private recipient●●●●…●●●● · Oct 1Shielded
- Private recipient●●●●…●●●● · Sep 29Shielded
A public ledger should prove the money is real, not publish your life.
See how it worksBuilt for the way money actually moves. Pay people from a shielded balance, settle invoices in USDG, send value across borders and run a treasury without narrating every step to the market.
B2B settlement
Settle with suppliers without exposing your order book.
Cross border
Send USDG and ETH anywhere. The amounts stay between the two of you.
Treasury
Rebalance and pay out without tipping off the market.
Payroll
Pay the whole team at once. Nobody learns who earns what.
Compliance
Give an auditor a viewing key instead of your whole history.
SDK
Add private payments to your app with a few calls.
Private transfers
Hidden from the public, proven to the chain.
Every note in a Cloakr pool is a commitment in a Poseidon Merkle tree. To spend one, your browser proves you own it without saying which one it is. The pool checks that proof on chain, records a nullifier and moves the funds.
- Load circuit and inputs18ms
- Compute the witness410ms
- Groth16 prover1.2s
- Relayer submission240ms
- Included in a block0.3s
How it works
Zero knowledge, from deposit to exit.
-
01
Shield
Deposit ETH or USDG. The pool stores a commitment and your wallet encrypts the note to your own key.
-
02
Prove
When you spend, your browser builds a Groth16 proof in one to two seconds. Your keys never leave the page.
-
03
Relay
A relayer submits the transaction and takes its fee from the amount. Your wallet never signs it and pays no gas.
-
04
Withdraw
Funds arrive at any 0x address. A nullifier retires the note without revealing which one it was.
- Supplier payment · Oct 02████████████4,200.00 USDG
- Shielded swap · Oct 04████████████1.5000 ETH
- Payroll batch · Oct 15████████████8,450.00 USDG
- Notes spent██████3 of 7
Compliance
Hidden from the crowd. Readable by your auditor.
A viewing key lets someone you trust see every note in your account and which ones are spent. It cannot move funds, and the public still sees nothing.
For developers
Add privacy to your product. We handle the proofs.
The Cloakr SDK is one ES module served from cloakr.tech. It derives keys from a wallet signature, builds proofs in the browser, finds your notes in the tree and talks to the relayer. You write the product; cloakr.js handles the rest.
Integration notes for your assistant
Import path, method list and doc links in one block, ready to paste into your editor or AI assistant.
A taste of the API
import { Cloakr } from "https://cloakr.tech/sdk/cloakr.js";
// Keys come from one wallet signature, derived in the browser.
const cloakr = await Cloakr.connect(window.ethereum);
// Shielding is free. The new note is encrypted to your key.
await cloakr.shield({ asset: "ETH", amount: "0.5" });
// Private send: proven here, submitted by the relayer.
await cloakr.send({ asset: "USDG", amount: "250", to: recipient });
// Swap inside the pool through Uniswap V3.
await cloakr.swap({ from: "ETH", to: "USDG", amount: "0.1" });
// Leave the pool to any 0x address (0.3% fee).
await cloakr.withdraw({ asset: "ETH", amount: "0.2", to: payout });
const { ETH, USDG } = await cloakr.balances();
FAQ
Common questions.
Short answers about privacy, proofs, keys and fees. The documentation goes deeper.
What does Cloakr actually hide?
Inside a pool, the link between sender and recipient, the amount of each payment and your balance are all hidden. The chain can still see that a deposit, a proof or a withdrawal happened, and how much entered or left the pool at those edges. Payments that stay inside the pool reveal neither party nor amount.
Where is the zero-knowledge proof made?
In your browser. The circuit files load once, then a Groth16 proof takes about one to two seconds on a normal laptop. Your spending key never leaves the page and no server sees your notes.
Who submits my transaction?
A relayer. It receives the finished proof, checks that the fee covers gas and sends it from its own address. The fee comes out of the amount, so your wallet needs no ETH for gas and never shows up as the sender. The pool accepts proofs made against any of its last 100 Merkle roots, so a busy block does not invalidate yours.
What does it cost, and what is the minimum?
Shielding is free. When funds leave the pool there is a 0.3% fee, and the relayer takes a small fee from the amount to cover gas. The smallest deposit is 0.001 ETH or 1 USDG.
Can I pay someone who has never used Cloakr?
Yes, any 0x address works. If the recipient has linked a shielded address (ck1...) in the optional registry, the payment stays inside the pool. If not, it arrives as a withdrawal from the pool: the recipient and amount are public, but nothing ties the payment back to your wallet.
Is Cloakr custodial? Can funds be frozen?
No. Your keys are derived in the browser from a wallet signature and your funds sit in the pool contracts, not with us. The contracts cannot block a withdrawal. The admin can pause new deposits, and that is the only switch there is.
How do viewing keys work?
Your viewing key starts with vk1. It decrypts the notes sent to your account and shows which of them are spent, so whoever holds it can audit your history. It cannot sign anything or move a single unit.
Which assets can I use?
ETH and USDG, the Global Dollar stablecoin, each with its own pool. You can swap between them without leaving the pool: the trade routes through Uniswap V3 and the proof binds it to your note.
Private payments on Robinhood Chain
Ready to make your first private payment?
Start with 0.001 ETH or 1 USDG. No account, no email, no server holding your keys.
Shielding is free · 0.3% on withdrawal · the relayer covers gas