This guide walks you through how to enable onramp orders to external wallets (EOAs or any other smart wallet from a different wallet provider).Documentation Index
Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
Use this file to discover all available pages before exploring further.
Link External Wallet to Crossmint User
Before creating an onramp order to an external wallet, you must link the wallet to a Crossmint user, using the Link External Wallet API:The The
proof field is optional:- If you omit it, you are simply linking the external wallet to the user without proving ownership yet.
- If you pass it, you prove ownership of the wallet in the same request.
verificationChallenge follows the CAIP-122 standard.Create Onramp Order
Create an onramp order using the Create Order API with the linked external wallet address as the recipient.Depending on the transaction value and the user’s past activity, the order may or may not require wallet ownership verification:
- Below threshold: If the transaction value is below 1,000 euros and the user’s past 30-day onramp transaction volume is below 1,000 euros, ownership verification is not required. The order proceeds directly to the kyc/payment phase.
- Above threshold: If either threshold is surpassed, the order status will be
requires-recipient-verificationand the user must sign a message to prove wallet ownership.
Sign Message
If the order requires ownership verification, the user must sign the
preparation.message returned in the order response using their wallet’s private key.Submit Signature
Use the same Link External Wallet API to submit the signature as proof of ownership. Pass the signature in the Once ownership is verified, the response will confirm verification:
proof field:Complete Order
Once the signature is submitted and verified, fetch the order using the Get Order API. The order status should now have proceeded to the next phase:
requires-kyc: The user hasn’t completed KYC yet and will be guided through the KYC flow first.awaiting-payment: The user has completed KYC and can proceed to complete payment.

