When Is Proof of Ownership Required?
Proof of ownership is triggered based on transaction volume thresholds:
These thresholds apply to users verified outside the United States who onramp to external wallets. A Crossmint-managed wallet does not require additional verification when its
owner is the user; a wallet without an owner or owned by someone else is treated as external.
To link the user’s identity to an external wallet, Crossmint asks the user to sign a challenge with the recipient wallet and submit the signature in the proof field. This flow works the same across chains and for all wallet types, including externally owned accounts (EOAs) and smart contract wallets.
How It Works
1
Link External Wallet
Before creating an onramp order to an external wallet, link the wallet to a Crossmint user (created automatically if one does not yet exist for the locator) using the Link External Wallet API:The API responds with a verification challenge in the CAIP-122 format. The standard defines the challenge message and does not limit which wallets can complete verification:
2
Create Order
Create the onramp order as usual. If verification is required, the order response will have status
requires-recipient-verification:3
Sign the Message
Have the user sign the
preparation.message with the recipient wallet:4
Submit Signature
Submit the signature as proof of ownership using the same Link External Wallet API:Once verified, the response confirms ownership:
5
Complete Order
After ownership is verified, fetch the order using the Get Order API. The status will advance to:
requires-kyc— the user has not completed KYC yet.awaiting-payment— the user can proceed to payment.
Pre-Verifying Ownership
You can verify wallet ownership at the time of linking (before any order is created) by including theproof field in the initial Link External Wallet call. This avoids requiring verification during the checkout flow.
Related Resources
- Onramp to Non-Crossmint Wallets — full guide for non-Crossmint wallet onramp integration
- React Quickstart (External Wallets tab) — quickstart with external wallet support

