This guide walks through the full onramp flow: deposit fiat into your account, convert it to a stablecoin, and pay it out to a blockchain wallet.
Prerequisites
- An active account with a fiat balance (funded via bank transfer to your account’s funding method)
- A crypto beneficiary registered for the destination wallet
Flow overview
- Fiat lands in your account (e.g., a wire transfer credits your USD balance)
- Create a quote to convert USD to USDC
- Execute the quote — balances update atomically
- Pay out the USDC to a crypto beneficiary
Step 1: Check your balance
Verify that fiat funds have arrived by fetching the account:
Step 2: Register a crypto beneficiary
If you haven’t already, create a crypto beneficiary for the destination wallet:
chainDisplayName and platform are null on create responses. They are populated when you fetch the beneficiary later.
Step 3: Create a quote
Request a quote to convert USD to USDC. You can specify either fromAmount (how much to sell) or toAmount (how much to receive):
The response tells you exactly what you’ll get: 10,000 USD converts to 9,997 USDC after a $3.00 spread fee. The spread object shows the fee amount and which asset it’s denominated in (always the source asset).
Quotes expire after 5 minutes. Execute the quote before expiresAt or create a new one.
Step 4: Execute the quote
Execute the quote to complete the trade. Balances update atomically — USD is debited and USDC is credited in a single operation:
Your account now holds 9,997 USDC.
Step 5: Send crypto payout
Send the USDC to the registered crypto beneficiary:
The response includes the on-chain txHash — you can verify the transaction on a block explorer. Funds are debited immediately and the payout completes in a single request.
Summary
| Step | Endpoint | What happens |
|---|
| Check balance | GET /v1/accounts/{accountId} | Verify fiat has arrived |
| Register beneficiary | POST /v1/beneficiaries/crypto | One-time setup for the destination wallet |
| Create quote | POST /v1/quotes | Lock in an exchange rate for 5 minutes |
| Execute trade | POST /v1/quotes/{quoteId}/execute | Convert fiat to crypto atomically |
| Send payout | POST /v1/transactions/crypto-payouts | Submit on-chain and debit the account |