Wallet and custody
How the USDC wallet and USD and EUR account balances are held. Last updated: 27 October 2026
Last updated: 27 October 2026
This page describes custody as it is implemented today — the wallet and USD and EUR accounts. Person-to-person (P2P) USDC trades and their escrow are no longer offered as of 27 October 2026. Section 2 remains for trades opened before that date. The shop order is WhatsApp or Protecta, not this wallet. It is part of the Terms of Use. Identity checks are in AML, KYC, and verification.
It is written from the current product and contracts, not from a roadmap. Where a piece is still being finalized, this page says so.
What is live vs still being finalized
| Piece | Status today |
|---|---|
| Personal wallet: receive and send USDC on Base | Live |
| Privy smart wallet created at sign-in (Google, Apple, or email) | Live |
| Optional WalletConnect / external EOA session | Live |
| P2P ads and orders (USDC ↔ DOP, EUR, USD, CHF) | No longer offered as of 27 October 2026 |
| Per-trade on-chain USDC escrow on Base | No longer offered as of 27 October 2026 |
| P2P trade chat and dispute desk | No longer offered as of 27 October 2026 |
| Shop page and WhatsApp order | Live. That payment is not the wallet. |
| Business-wallet bank cash-out request | Live as a request. Nodo is the counterparty. Payout execution is manual / still being finalized — not an automated off-ramp. |
| Seed phrase or private-key export | Not offered |
| Transfers to another Nodo user by @alias | Not live |
| USD and EUR accounts in the holder’s name, with the balance held by Bridge | Live (see section 6) |
| Conversion between USD, EUR, and USDC, and sends to U.S. (ACH) and SEPA bank accounts | Live |
1. The wallet is not a Nodo deposit account
Signing in to Nodo can create a smart wallet on Base through Privy. You can also connect an external wallet (WalletConnect) in a separate session.
- Nodo does not hold your private keys and does not operate a pooled “Nodo balance” of user crypto.
- Nodo does not initiate on-chain transfers for you. You (or your wallet provider) sign sends, escrow locks, releases, cancels, and disputes.
- Keys are tied to your login with Privy. That is not a seed phrase you export from Nodo, and it is not Nodo custody of the coins.
- The wallet is USDC on Base. Other tokens or networks sent to the address will not show up as a supported balance.
Nodo’s backend stores the linked address, indexes USDC (and USDT) activity on Base for the in-app history, and verifies payment transactions it is asked to confirm. That is bookkeeping against a public chain, not taking the funds.
The Personal and Business labels in the wallet are an in-app switch. There is no separate on-chain “merchant vault” operated by Nodo.
2. P2P: non-custodial, per-trade, on-chain escrow
P2P is no longer offered as of 27 October 2026. The rest of this section describes trades opened before that date. It was a marketplace for buying and selling USDC on Base against local-currency bank or remittance rails (DOP, EUR, USD, CHF).
What Nodo does not hold
For a normal trade, Nodo does not take the USDC into a company wallet. The seller locks the full trade amount into a dedicated escrow contract created for that trade (an immutable EIP-1167 clone from Nodo’s factory on Base). When the trade completes, the contract pays the buyer (minus the protocol fee) or returns the USDC to the seller.
That is the regulatory posture this product is built on: Nodo matches the trade, hosts chat, and records state. The crypto leg is on-chain. Nodo is not holding the pot.
What the escrow actually is
The escrow is role-based and fully on-chain for the USDC. It is not a multisig wallet. Three on-chain roles exist on each clone:
| Role | Who | What they can do |
|---|---|---|
| Seller | The party who locks USDC | Create the escrow, release to the buyer, or cancel before the buyer marks paid |
| Buyer | The party who pays fiat off-chain | Mark paid, dispute, or force a dispute after the release window |
| Arbiter | A designated Nodo address | resolve only after a dispute is open — send the pot to the buyer or refund the seller |
Nodo’s servers do not sign those transactions and do not store the arbiter key in the API. Users sign with their wallet. If a dispute is opened, a Nodo arbiter reviews the case and submits an already-signed resolve transaction; until then the USDC stays in that trade’s contract.
Factory configuration (fee, windows, pause) is controlled by a Gnosis Safe. The Safe cannot sweep open escrows. Each open pot stays in its own immutable clone.
On-chain vs off-chain
| Leg | Where it happens |
|---|---|
| USDC lock, mark-paid attestation, release, cancel, dispute, resolve | On-chain, Base, USDC |
| Bank or remittance payment of the fiat | Off-chain, between the two parties. Nodo does not run those rails and does not verify the bank credit on-chain. |
Default windows at deploy: about one hour to mark paid after lock, 24 hours after mark-paid for the seller to release. After the release deadline the buyer can force a dispute; there is no silent auto-release. Successful release to the buyer takes a 0.5% protocol fee on-chain to Nodo’s fee recipient. A refund to the seller takes no fee.
Minimum trade size was 1 USDC. Ads could set their own min/max in fiat. Creating or taking a trade required a signed-in account, an @alias, and a linked wallet. See AML, KYC, and verification for what was not required.
3. The shop does not charge in the wallet
A shop order goes out on WhatsApp, or through Protecta if the buyer asks. Neither one is a USDC charge at a register.
USDC lives in the wallet. On a P2P trade opened before 27 October 2026, it may still sit in that trade’s escrow. Nodo does not hold those coins.
4. Merchant cash-out
This path is not the same as sending USDC from a personal wallet, and it is not the P2P module.
What is live. On the business wallet, the owner can request a DOP payout to a Dominican bank account (the form lists Popular, Banreservas, BHD, Scotiabank, Promerica). They enter holder name, account type, account number, and amount.
Who the counterparty is. The product treats Nodo as the party that credits DOP once a transfer confirms. There is no third-party off-ramp partner wired into the current implementation.
What is still being finalized. Submitting the form is a request. Automated payout, status webhooks, and a settlement SLA are not live. Operations complete (or decline) the cash-out by hand. Do not read the request screen as an instant bank rail.
How this differs from a personal wallet. Personal wallets send and receive USDC on-chain to any Base address. They do not get this bank cash-out form. Cash-out is an optional fiat conversion with Nodo, not a withdrawal from a Nodo-custodied balance.
Verification. Marketplace “verified merchant” is a separate application (see AML, KYC, and verification). The cash-out form is shown on the business wallet and is not automatically gated on that badge today. Nodo may still ask for more business information before completing a payout, and may refuse a request.
5. What you should assume about risk
- On-chain transfers and escrow locks are final once confirmed, subject only to the contract’s own rules (release, cancel, arbiter resolve).
- Fiat you send in a P2P trade is sent to another user, not to Nodo. Proof lives in chat and in your bank, not in the escrow.
- Addresses and amounts on Base are public.
- Nodo can pause new escrow creation and can refuse or suspend accounts under the Terms. That does not let Nodo seize USDC sitting in an open clone.
6. USD and EUR accounts
This is how they work:
- Who holds the balance. Each account’s balance is held by Bridge, Nodo’s accounts partner, in the verified holder’s name. Nodo does not hold that balance in its own bank accounts.
- How it is represented. Bridge keeps the dollar balance as USDC and the euro balance as EURC, in a wallet on Base assigned to each holder. That wallet is not the user’s Privy wallet, and it only moves on Nodo’s instruction when the holder approves.
- What Nodo does. Nodo is the platform: it shows balances and activity, stores destination bank accounts, and sends Bridge the send and conversion instructions the holder approves with Face ID or a passkey.
- What it is not. The balance is not a bank deposit with Nodo or Bridge and does not earn interest.
- Sends. Dollars go to U.S. accounts by ACH; euros go to SEPA accounts. Bank sends cannot be reversed once executed.
Identity controls and account limits are in AML, KYC, and verification.
The binding contract is the Terms of Use. Data we store around these flows is in the Privacy Policy.