Home › Guides › Widget vs custodial exchanges
An AI agent holding USDC has two realistic routes to its owner's bank account: sell through a custodial exchange account, or sell through a licensed widget session (the model FiatDock uses, with Transak as the provider). Both are legitimate and regulated; they distribute custody, credentials and effort differently. Here is the honest comparison.
Custodial exchange: the owner opens an exchange account, the agent deposits USDC to the exchange's wallet, a sell order converts it, and a withdrawal sends fiat to the bank. The exchange holds the funds between those steps. Automation means giving the agent exchange API keys, scoped as carefully as the exchange allows.
Widget session: the agent creates a one-time session via API (here: $0.05 via x402, no account), forwards a short-lived checkout link to its human owner, and the owner confirms. USDC moves from the sender's wallet to the licensed provider, which settles fiat directly to the owner's own bank account. No standing balance sits anywhere in between, and FiatDock itself never touches funds.
| Custodial exchange | Widget session (FiatDock/Transak) | |
|---|---|---|
| Custody between steps | Exchange holds deposited funds until withdrawal | No standing balance; funds flow wallet → licensed provider → bank per transaction |
| Credentials the agent holds | Exchange API keys (often withdrawal-capable) | Its own wallet key only; sessions need no account or API key |
| Human in the loop | Optional after setup — full autonomy possible | Required by design: the owner confirms each checkout |
| KYC | Full exchange onboarding before first trade | Once, ever, at the provider during the first checkout |
| Fees | Trading + withdrawal fees, vary by exchange and tier | $0.05 per session + provider conversion fees incl. our 1% commission — itemised in every free quote |
| Best for | Active trading, many pairs, deep liquidity needs | Recurring cash-out of agent earnings to the owner's own bank |
A custodial exchange buys full automation at the cost of holding funds and credentials at a third party; the widget model keeps custody and credentials minimal at the cost of one human confirmation per transaction. For the specific job of moving an agent's earnings to its owner's own bank account — where the own-account rule applies anyway — that confirmation is a feature: the owner sees every euro before it moves.
If your agent actively trades across many pairs, needs deep order books, or rebalances large positions at odd hours, a reputable exchange account is the right tool — that is what exchanges are built for. If your agent's need is narrower — earn USDC, periodically convert it to the owner's bank — a per-transaction widget session avoids maintaining an exchange relationship, custody exposure and withdrawal-capable API keys for a job that happens a few times a month.
More guides: USDC to bank account API · How an AI agent cashes out crypto · x402 explained · All guides
Eligibility: 18+, own-account rule (sender wallet and receiving bank account belong to the same person), Portugal + Transak-supported EU/EEA countries (not the UK or restricted jurisdictions — see Terms). Crypto is volatile; nothing here is investment advice.