Everything you need to use it, and to build on it.
Open AppIntroduction
01Hood USDB is a privacy-first payments platform on Robinhood Chain, an Ethereum Layer-2 built on Arbitrum technology. You deposit, hold, send, request and withdraw without publishing your financial activity to a block explorer.
- Two assets. USDG — the Global Dollar stablecoin — for dollar-denominated payments, and native ETH for anything routed through the privacy pool.
- A privacy level per action. Public, Partial or Full. You pick per payment, and the level determines the asset, the settlement path and what an observer can see.
- Custody. You connect your own wallet and sign every deposit and withdrawal; we never hold your keys. Your balance itself sits in a pooled reserve Hood USDB operates and is recorded on our ledger, so withdrawals are processed by our backend rather than claimed from a contract. That is a trust assumption, and you should weigh it.
- No accounts, no KYC. Your wallet is your identity. An optional @username makes you payable by name.
- Programmable. Agents can hold scoped API keys with hard spending policies and transact on your behalf.
Getting started
02- 01Connect a walletOpen the dashboard and click Connect. If your wallet does not have Robinhood Chain yet, the app offers to add it.
- 02Sign inYou sign a plain text message containing a one-time nonce. This is a signature, not a transaction — it costs nothing and moves nothing. It proves you control the wallet and opens a session.
- 03Claim a usernameIn Settings, pick an @username of 3–20 characters. Other users can then pay you by name instead of a 0x address, and your address stays off their screen.
- 04Fund the walletYou need ETH on Robinhood Chain for deposits and gas. Bridge in via the canonical Arbitrum bridge or a third-party bridge that supports the chain.
Network reference
03| Property | Value |
|---|---|
| Chain | Robinhood Chain (Arbitrum Orbit L2) |
| Chain ID | 4663 (0x1237) |
| Gas token | ETH |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Explorer | https://robinhoodchain.blockscout.com |
| USDG token | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 |
| HUSDB token | SOON |
Robinhood Chain transactions carry an L1 data-posting component, so wallet gas estimates can move minute to minute with Ethereum mainnet fees. The app handles this for you.
Privacy levels
04Every movement of money happens at one of three levels. The level determines the asset, the settlement path, and what an outside observer can see.
| Level | Asset | What is visible on-chain |
|---|---|---|
| Public | USDG | A normal token transfer, visible like any other. |
| Partial | USDG | Your deposit is visible, but spending happens from the shared pool — amounts and recipients are decoupled from your identity. |
| Full | ETH | Your deposit is routed through the complete pipeline. Your balance lives on the private ledger; transfers to other users have no on-chain footprint at all. |
How full privacy works
A full-privacy deposit is sent to a fresh, one-time holding address generated for that deposit alone. From there the funds are forwarded through a mixing stage in randomized portions and land in a pooled reserve with no on-chain edge back to your depositing wallet. Your spendable balance is then tracked on the private ledger — so when you pay another user, nothing touches the chain and there is nothing for a block explorer to pair.
This is operational privacy against on-chain observers, not cryptographic privacy. FHE-encrypted balances and an on-chain proof system are on the roadmap and are not shipped. Adversaries holding off-chain data are out of scope. We say private, not magic.
Balances and the private ledger
05The dashboard shows two balances: USDG from public and partial deposits, and ETH from full-privacy deposits. The ETH balance is ledger-based — the sum of your deposits, incoming and outgoing transfers and withdrawals, maintained off the public chain.
- Transfers between Hood USDB users settle instantly on the ledger — no gas, no fee, no on-chain trace.
- Withdrawals pay out real on-chain ETH from the pooled reserve, which has no link to your original deposit.
- The eye toggle hides every amount on screen, rendered as ••••, which is what you want when you are screen-sharing.
Deposits
06Full privacy — ETH
- 01Choose Full in the deposit modalThe asset switches to native ETH.
- 02Enter an amountMinimum 0.003 ETH. The app checks your wallet holds the amount plus a gas headroom before asking you to sign.
- 03Sign one plain ETH transferIt goes to your one-time holding address.
- 04The pipeline takes overForwarding, mixing and crediting happen automatically. The modal tracks progress; your balance credits when mixing completes, typically a few minutes.
If any pipeline step fails, funds remain in your deterministic holding address and are recoverable. Deposits fail safe, never silently.
Public and Partial — USDG
USDG deposits route through the deposit contract: approve, then deposit. Partial deposits enter the shared pool; public deposits stay fully visible. Both credit your USDG balance.
Sending payments
07Send from the Payments tab or the Send modal. There are two recipient modes.
- @username. A live lookup confirms the user exists, and warns you if they have not deposited yet, since a recipient needs a balance history to receive ledger credits. The recipient's wallet address is never revealed to you — resolution happens server-side.
- 0x address. Validated as an EVM address. If it belongs to a Hood USDB user they are credited in-app; if not, you are pointed to Withdraw instead, because external payouts are withdrawals.
The asset follows your privacy level: Full sends ETH from your private balance — instant, feeless, no on-chain footprint. Partial and Public send USDG. Every send requires a wallet signature authorising the exact amount and recipient.
Payment requests (x402)
08Payment requests follow the x402 pattern: a payee creates a priced request, shares it, and anyone can settle it. Use them for invoices, for services, or for machine-to-machine pay-per-call.
| Status | Meaning |
|---|---|
pending | Created, awaiting payment. The creator can cancel it. |
settled | Paid. Records who paid and the settlement reference. Final. |
cancelled | Withdrawn by the creator before payment. Final. |
Requests are settle-once. Settlement is atomic, so a request can never be paid twice — concurrent payers past the first receive an explicit already-settled error.
Pay links
09A pay link sends money to someone who does not use Hood USDB yet. You attach an amount to a one-time link and share it over any channel.
- Claiming in-app. The recipient connects a wallet and the amount credits to their balance instantly.
- Claiming on-chain. The recipient pastes an address and receives an on-chain payout instead.
- Safety net. Unclaimed links refund to the sender automatically after seven days.
While a link is outstanding the amount is held in escrow on the ledger, so you cannot double-spend it.
Withdrawals
10Move funds from your private balance back on-chain, from the Withdraw tab or the balance card.
ETH withdrawals
- Paid as native ETH from the pooled reserve — the paying wallet has no on-chain connection to your deposit.
- Fee 1.5%, shown before you confirm. Any positive amount up to your balance.
- Withdrawing to a fresh wallet gives you a clean break: the receiving address has no history linking it to you.
USDG withdrawals
USDG pays out on-chain through the pool contract, with the fee displayed at confirmation.
USDB Terminal
11The Terminal is a conversational interface to your wallet. It answers read-only questions directly — balances, recent activity, token details — and for anything transactional it opens a pre-filled form that you confirm and sign yourself.
- “What is my balance?” reads your USDG and ETH balances.
- “Send 0.001 to @alice” opens the Send form pre-filled. You always sign.
- “Show my last 5 transactions” summarises your history.
- “Create a payment request for 10” opens the request form.
The Terminal never moves money on its own. For autonomous payments under hard limits, use agents.
Agents
12The Agents tab lets you create agents that transact on your behalf, with limits you control. An agent never holds your keys; it holds a scoped API key whose every action is checked against your spending policy server-side and logged.
| Concept | What it is |
|---|---|
| Agent | A named identity you register from the dashboard. Pausable and deletable at any time. |
| API key | The secret the agent authenticates with, shown once at creation. Carries scopes — balance, transfer, withdraw, logs — and an optional expiry. |
| Spending policy | Per-transaction limit, rolling 24-hour daily limit, allowed and blocked recipient lists, and time windows. ETH-denominated, enforced on every call. |
| Passport | An on-chain identity NFT minted on Robinhood Chain at registration, carrying a live trust score from 0 to 100 that grows with verified transaction history. Revocable. |
| Spending log | A full audit trail: every attempt — allowed, blocked, completed, failed — with reasons. |
Agents are ETH-only. They read and move your private ETH balance. Agent-to-user payments are instant ledger transfers; agent withdrawals pay real on-chain ETH.
Agents API
13All agent endpoints authenticate with the agent's API key via the X-Agent-Key header, or Authorization: AgentKey <key>. The key identifies the agent, so no IDs appear in URLs. All amounts are ETH.
curl https://hoodusdp.com/api/agents/budget \
-H "X-Agent-Key: <key>"{
"success": true,
"policy": { "max_per_tx": 0.1, "daily_limit": 0.5, "allowed_tokens": ["ETH"] },
"spent_today": 0.0003,
"daily_remaining": 0.4997,
"eth_balance": 0.0030,
"spendable_now": 0.0030
}curl -X POST https://hoodusdp.com/api/agents/transfer \
-H "X-Agent-Key: <key>" \
-H "Content-Type: application/json" \
-d '{ "to": "@alice", "amount": 0.001, "token": "ETH" }'{ "success": true, "signature": "<settlement ref>", "amount": 0.001 }curl -X POST https://hoodusdp.com/api/agents/pay-request \
-H "X-Agent-Key: <key>" \
-H "Content-Type: application/json" \
-d '{ "request_id": "x402_abc123" }'{
"success": true, "status": "settled",
"amount": 0.0001, "token": "ETH",
"receipt": "<base64url payload>.<signature>",
"receipt_signer": "0x..."
}curl -X POST https://hoodusdp.com/api/agents/withdraw \
-H "X-Agent-Key: <key>" \
-H "Content-Type: application/json" \
-d '{ "to": "0x...", "amount": 0.001, "token": "ETH" }'Errors
| Status | Meaning |
|---|---|
401 | Missing API key. |
403 | Invalid key, missing scope, or blocked by the spending policy — the message says which rule. |
400 | Bad input, a non-ETH asset, insufficient balance, or an unpayable request. |
409 | The payment request was already settled. |
Payment receipts
14Every agent request-payment returns a cryptographically signed receipt — proof of settlement a payee can verify before delivering a service. A receipt is base64url(payload) + "." + signature, signed by the platform receipt signer under EIP-191.
curl -X POST https://hoodusdp.com/api/x402/verify-receipt \
-H "Content-Type: application/json" \
-d '{ "receipt": "<receipt>" }'{ "valid": true, "settlement": "settled", "signer": "0x...",
"payment": { "payment_id": "...", "amount": 0.0001, "token": "ETH" } }import { verifyMessage } from "ethers"
const [payload, signature] = splitAtLastDot(receipt)
const signer = verifyMessage(payload, signature)
// valid if signer === the receipt_signer returned at payment time
const details = JSON.parse(atob(payload)) // amount, token, payment_idAny modification to the payload — even one character — makes verification fail. Verification is public: no API key is required.
Fees
15| Action | Fee |
|---|---|
| Internal transfers — user to user, agent to user | Free |
| Payment requests and pay links | Free to create; settlement follows the 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 |
Holding HUSDB lowers your withdrawal fee. The schedule is served live rather than printed, so the figure you see at confirmation is the figure you pay.
Not shipped yet
16| Surface | What is coming |
|---|---|
| Swap | In-app token swaps on Robinhood Chain, arriving as ecosystem liquidity comes online. |
| Messages | Encrypted user-to-user messaging attached to payments. |
| SMS delivery | Sending a pay link directly to a phone number, rather than sharing it yourself. |
| Embedded wallets | A wallet created on the fly for a first-time recipient. |
| ERC-4337 paymaster | Sponsored gas at scale. |
| USDG yield share | Reserve yield distributed to in-protocol holders. |
| Governance | Voting on fees and privacy parameters. |
| FHE and ZK | Encrypted balances and an on-chain proof system. |
Security notes
17- Sign-in signatures are not transactions. They cost nothing and cannot move funds. Never sign a message you did not initiate.
- Deposits and withdrawals always require your signature for the exact amount shown. Review every prompt in your wallet.
- Agent API keys are shown once. Store them like passwords. If a key leaks, revoke it or pause the agent — enforcement is instant.
- Spending policies are your safety rail. Start agents with small per-transaction and daily limits and raise them as trust grows.
- Privacy language, honestly. Full-privacy activity leaves no on-chain link between your deposit and your spending, and internal transfers leave no on-chain trace at all. As with any privacy system, extreme adversaries holding off-chain data are out of scope. We say private, not magic.