MIST
Private by default

Private USDG payments on Arbitrum

Get paid with a link and withdraw anywhere, with nothing on the chain connecting the two. One named auditor can still read every payment.

Open payments

No wallet needed to get paid. Runs on the Arbitrum Sepolia test network with test USDG.

Payment requestedRecipient private
25.00USDG
ReferenceInvoice 42
NetworkArbitrum Sepolia
FeeNone
What the chain shows
Deposit into the reserve25.00 USDG
Who it is forhidden
Withdrawal, laterno link back
What the auditor reads
Ada Lovelace, United Kingdom25.00 USDG
Private transferVerified on chain

How it works

Four steps, about five minutes the first time.

  1. 1

    Verify

    A quick demo check. It makes your key with the reserve's auditor, so your payments are private to everyone but them.

  2. 2

    Deposit

    Move test USDG into the reserve. This is the one public step: a transfer that names no recipient.

  3. 3

    Send

    Pay anyone from your private balance. A proof made in your browser hides the amount and who it went to.

  4. 4

    Withdraw

    Take funds out to any address. Nothing on the chain links them back to your deposit.

Two ways in, two views behind

Get paid with a passkey, or pay from your own wallet. The reserve and its auditor each have a view.

Payments
No wallet, no gas.

Create a passkey account, share a link for an amount, and withdraw what it receives to any address. A relayer pays the gas.

Open payments
Your wallet
Verify, deposit, send, withdraw.

Connect a browser wallet and walk the four steps: verify once, deposit test USDG, send it privately, and withdraw to any address.

Enter as user
Operator
The reserve's manager.

What the reserve holds, every deposit and withdrawal, the token controls, and what stays invisible even to the operator.

Open the operator view
Auditor
The one who can read it all.

Every verified member and every payment they made, with its token and amount, decoded and checkable against the chain row by row.

Open the auditor view

What this build is

Stated up front, not buried.

It runs on a test network.
Arbitrum Sepolia, with a test token and no real custody. Nothing here is real money.
Proofs are made in your browser.
The gnark prover, compiled to WebAssembly, runs on your device in about three seconds. Nothing secret is sent to a server.
The KYC is a demo that approves everyone.
The server approves every submission that passes a captcha and rate limits, stores the details encrypted, and never checks them; the manager key then signs you in as a member. A real reserve would review each one. Every spend proves its owner is a member and carries its details encrypted for the auditor.
The auditor can read every member's payments.
Each spend is filed with its details encrypted under your key with the auditor. Whoever holds the auditor key can find every spend and read its token and amounts; nobody else can. That key reads spends; it cannot make them. Whoever can read the server's database and its secret can read every member's history too.
A relayer sends payment-link withdrawals.
It pays the gas and learns only what the chain publishes: the proof fixes where the funds go. The wallet console sends its own proofs.
Payments are Arbitrum-only, with no fee.
The payer pays on Arbitrum Sepolia and withdrawals land there. Cross-chain is not built: the reference route, CCTP, carries USDC, not USDG. A payment link can be paid once.
Some payments fail, and retrying is safe.
The reserve has one shared state. If someone joins, or another payment takes the same key, while your proof is being made, it fails and you try again. Each member key covers 256 spends, and the transactions tree holds 1,048,576 entries, two per spend.
The token is test USDG (Global Dollar, 6 decimals).
Get test USDG from the Paxos faucet at faucet.paxos.com before depositing.