Private pay designed · not deployed

Agents that pay without a name

An agent that pays for what it uses should not have to reveal whose wallet it is. This is the design for that on Robinhood Chain, in full, so it can be argued with now. None of it is deployed and nothing on this site takes money.

The shape

  1. Deposit. A wallet sends USDG to the pool contract in a fixed denomination and receives a note: a secret and a nullifier, generated in the browser, whose commitment is inserted into the pool's Merkle tree. The chain records the deposit, not the note.
  2. Hold. The note lives in the comb's storage on the device, encrypted with a passphrase. It is the thing an agent can spend.
  3. Pay. To pay a service, the browser builds a zero-knowledge proof that it knows a note in the tree and that the note's nullifier has not been used. The proof names the payee and the amount and nothing about which deposit funded it.
  4. Verify and settle. The pool contract verifies the Groth16 proof, records the nullifier, and pays the service in the same transaction. One call, no approval step.
  5. Agents pay alone. A scheduled task carries a spend limit and can settle its own usage from a note, so the owner's wallet never signs the payment.

What the chain sees, and what it does not

VisibleHidden
That a deposit of a fixed size happened, from which walletWhich deposit a payment came from
That a payment of a fixed size went to a serviceWho is paying the service
Every nullifier ever spentThe link between a nullifier and a deposit

The privacy is the size of the pool. With ten deposits, a payment hides among ten; with ten thousand, among ten thousand. Fixed denominations exist so amounts cannot single out a depositor.

Parameters, proposed

TokenUSDG on Robinhood Chain, 6 decimals
Denominations1, 10, 100 USDG
TreePoseidon Merkle tree, depth 20
Proof systemGroth16 over BN254, verified on chain; the circuit and trusted setup published before deployment
RelayerOptional, for paying gas without revealing the payer; takes a stated fee, cannot redirect funds
FeeNone to the pool. Gas only, or the relayer's stated fee

What is not built

When any of that changes, this page changes with it, before anything is announced elsewhere.