Pay someone who has no wallet. They do not need one.
A one-time link carries the amount. The recipient opens it in any browser, takes the money into an account or straight to an address, and never learns what a seed phrase is.
- Recipient needs
- A browser
- Gas
- Paid by the relayer
- Unclaimed
- Auto-refund at 7 days
- Create + share
- Free
Three steps for you. One tap for them.
Attach an amount
Pick a figure and a privacy level. Hood USDB mints a single-use link. Nothing about the recipient is needed at this point, because at this point there is no recipient.
Share it anywhere
Text it, DM it, email it, print it on a card. The link is the rail; the channel is whatever you already use. It carries an amount and a claim token, and nothing that identifies you.
They claim it
The link opens a page in any browser. They either sign in with a wallet they already have and take the credit in-app, or paste an address and receive the payout on-chain. The relayer covers the gas either way.
Your money is not in limbo while the link is out.
The amount moves into ledger escrow the moment the link is created. It leaves your available balance, so you cannot spend it twice — and it has not left the protocol, so it can come back.
- 01Escrowed against your ledger balance, not sent anywhere
- 02Cannot be double-spent while a link is outstanding
- 03Claimable exactly once — settlement is atomic
- 04Unclaimed after seven days, it returns to you automatically
- 05You can cancel a link yourself before anyone claims it
An @username instead of forty-two characters nobody can check.
Claim a name in Settings and people pay you by it. The resolution happens server-side, so a sender never sees your address — which means the convenience and the privacy are the same feature rather than a trade against each other.
| Reaches | How |
|---|---|
| @username | Live lookup confirms the account exists. Their address is never returned to you. |
| 0x address | Validated as an EVM address. In-app if it is one of ours, a withdrawal if not. |
| A browser | The pay link opens anywhere. No install, no seed phrase, relayer-paid gas. |
| An agent | A scoped key settles the request under a spending policy and returns a receipt. |
Payable by name
Three to twenty characters: letters, numbers, underscores, hyphens. A live lookup confirms the name exists before anything is signed.
Your address stays yours
A sender resolving @you never receives your wallet address. The lookup returns an account, not a destination they could go and read.
Addresses still work
Paste a 0x address and it is validated as an EVM address. If it belongs to a Hood USDB account they are credited in-app; if not, that is a withdrawal, and the app says so.
A priced request, settled exactly once.
Payment requests follow the x402 pattern: a payee names a price, shares it, and anyone can settle it. Use them as invoices, as checkout for a service, or as machine-to-machine pay-per-call — the same object serves a freelancer and an API.
Settlement is atomic, so a request can never be paid twice. Concurrent payers past the first get an explicit conflict rather than a silent duplicate.
| Status | Meaning | Terminal |
|---|---|---|
pending | Created and awaiting payment. The creator can still cancel it. | No |
settled | Paid. Records who paid and the settlement reference, and returns a signed receipt. | Yes |
cancelled | Withdrawn by the creator before anyone paid it. | Yes |
409 | A second payer arrived after settlement. Refused, not duplicated. | — |
{
"valid": true,
"settlement": "settled",
"signer": "0x4Ae…91",
"payment": { "amount": 0.0001, "token": "ETH" }
}Every settlement returns a receipt a payee can check before delivering anything — on our endpoint, or offline with one signature recovery and no API key.
Two numbers. Everything else is relative.
The withdrawal fee and the internal transfer fee are fixed and published. The rest is set from a live schedule, so we describe the shape rather than print a table that would be wrong by the time you read it.
| Action | Fee |
|---|---|
| Transfers between accounts — user to user, agent to user | Free |
| Creating a pay link or a payment request | Free |
| Settling one | Follows the transfer or withdrawal fee of its path |
| ETH withdrawal | 1.5% |
| USDG withdrawal | Shown at confirmation |
| Full-privacy deposit | A small routing fee during mixing, plus network gas |
| Agents API | No extra fee — the same as the underlying action |
People are not the only thing that needs to be paid.
The same request object a freelancer sends as an invoice is what one piece of software presents to another. Agents settle x402 requests under a spending policy, and hand back a receipt.
Agents
