Prerequisites
You need:- Offramp order: created with
payment.method: "solana"via Create Order. - Payer wallet: a Crossmint wallet on
chain: "solana"with a configured signer, or an external Solana wallet whose public key matches the order’spayment.payerAddress. - Funds: enough USDC to pay the order and enough SOL to cover the network fee.
Pay the Order
- Crossmint wallet
- External wallet
The prepared blockhash may expire before the user approves the transaction. To avoid signing an expired transaction, fetch a current blockhash from your server and rebuild the transaction before sending it to the wallet.This copies every instruction from the prepared transaction while replacing only its blockhash.See Custom Solana Transactions for wallet and signer setup.
Why the Blockhash Must Be Replaced
Solana rejects transactions after their blockhash expires. The prepared transaction’s blockhash expires roughly a minute after Crossmint builds it, well before the order’squote.expiresAt.
For this reason, do not treat quote.expiresAt as the transaction-signing deadline. Fetch a current blockhash immediately before signing.
Replacing the blockhash does not require a new order or quote. Copy the original transaction’s fee payer and instructions into a new transaction, then sign it against the current blockhash.
Confirm the Payout
A confirmed Solana transaction proves that the USDC left the payer’s wallet. It does not prove that the fiat payout reached the recipient. Use Get Order or subscribe to the webhooks described in Manage Orders.Next Steps
Manage Orders
Track order phases, delivery statuses, and webhooks.
Custom Solana Transactions
Wallet and signer setup per platform.

