Your AI agent earns USDC?
Move it to a bank account.

FiatDock's cash-out engine is the financial bridge built for agents, not humans: instant quotes, off-ramp and on-ramp sessions in one API call, automatic payment over the x402 protocol, and ready-made MCP tools. Funds never pass through us — conversion happens at a licensed provider. This is how marketplace sellers turn earnings into euros.

Read the docs Get a live quote
🔒 100% non-custodial⚡ x402 — pay per call 🤖 MCP-ready🏦 SEPA, cards & 40+ methods
For developers — MCP in one line
npx fiatdock-mcp
Free live quote — no auth, no key
curl "https://fiatdock.com/v1/quote?side=SELL&cryptoAmount=50"

How it works — off-ramp in 4 steps

1

The agent asks for a quote

GET /v1/quote — free. It sees the rate, every fee, and the exact bank-bound amount before committing to anything.

2

It creates a sell session

POST /v1/offramp/session — pays $0.05 USDC automatically via x402 and receives a checkout link.

3

The owner completes it

They open the secure checkout link, the agent's USDC is sent, and the licensed provider settles fiat to the owner's own bank account. KYC happens once, ever, on first use.

4

Instant notification

On completion the agent receives an HMAC-signed push to its callbackUrl — or polls the API.

And the reverse — fund your agent in 4 steps

1

The agent asks for a quote

GET /v1/quote?side=BUY — free. It sees exactly how much USDC arrives for the amount, all fees included.

2

It creates a buy session

POST /v1/onramp/session with the fiat amount and its wallet address — pays $0.05 via x402, receives the checkout link.

3

The owner pays

Card, bank transfer, Apple/Google Pay — 40+ methods. The agent's wallet address is locked and cannot be changed or redirected.

4

USDC lands in the agent's wallet

The licensed provider sends the funds on-chain straight to the agent's wallet, confirmed by a signed HMAC notification.

# Full cycle: fund your agent, then move what it earned to your bank
await ramp.onramp({ fiatAmount: 100, walletAddress: agentWallet });  // fiat -> USDC
// ... the agent works and earns ...
await ramp.offramp({ cryptoAmount: 150 });                           // USDC -> your bank

Built for agents to love

Fully machine-discoverable

A JSON manifest at the root, llms.txt, and OpenAPI 3.1 — your agent understands the whole service from one request, no human documentation needed.

Errors that fix themselves

Every 4xx response carries a hint field with the exact correction — the agent repairs its request and retries on its own.

MCP tools

get_quote, create_offramp_session, create_onramp_session, get_order_status — with automatic x402 payment from the agent's wallet.

A 3-line SDK

A ready JavaScript client with waitForCompletion, plus LangChain and Claude Agent SDK examples.

import { FiatDock } from "fiatdock";
const ramp = new FiatDock({ baseUrl, account });         // viem account
await ramp.quote({ side: "SELL", cryptoAmount: 50 });    // free
const { checkoutUrl } = await ramp.offramp({ cryptoAmount: 50,
  customerId: "agent-1", callbackUrl: "https://my-agent/cb" });

Transparent pricing

ItemFeeNotes
Paid API call (session creation)$0.05 USDCVia x402 — paid automatically, no accounts or cards
Service commission per transaction1%Included in the conversion fees, fully itemised in every quote
Quotes, order status, discoveryFreequote, orders, discovery — within fair-use limits

Security & non-custody

Your funds never touch our servers: USDC moves from the agent's wallet straight to the licensed provider, and fiat from the provider straight to your bank. We are a technology layer only — no balances, no fund custody, no customer wallet keys.

Licensed provider

KYC/AML, compliance and bank settlement are handled by Transak — licensed and regulated entities. Restrictions reflect the coverage of our licensed payment provider — see the Terms for the current list.

Defence in depth

Signature verification on every webhook, DNS-checked SSRF protection, rate limiting, strict security headers, and instant breach alerts.

Signed notifications

Every callback carries an HMAC-SHA256 signature — your agent verifies the push really came from us.