This page walks through a complete Veil offramp from inside a chat. Each step names the tool the assistant calls and shows what to expect. The OTP confirmation step in this flow applies to every programmatic offramp surface, not only MCP — CLI and direct API use the same confirm gate. The dashboard uses session re-verification instead. See Offramp lifecycle for the full picture.Documentation Index
Fetch the complete documentation index at: https://docs.useveil.co/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- The Veil MCP connector is added and authorized in your client (see Connect)
- Your Veil account has completed KYC and has a bank account added
- Your wallet holds USDC or USDT
Running an offramp
Check session
The assistant calls
veil_get_session_status to see whether you are already logged in. If status is authenticated, skip to the account status step. If unauthenticated, continue to the next step.Request an OTP
The assistant calls
veil_request_otp with your email. Veil sends a six-digit code to that address.Verify the OTP
When you share the code, the assistant calls
veil_verify_otp. On success, your session is active and the assistant has your user profile.Check account status
The assistant calls If
veil_get_account_status. This tells it whether KYC is approved and a bank account is present. If stage is ready, skip to the wallet step.stage is needs_kyc, the assistant calls veil_kyc_start and shares a link for you to open in a browser. After you complete the form, it polls veil_kyc_check_status until status is approved.If stage is needs_bank_account, the assistant calls veil_bank_account_get_form_url and shares a link. You fill in your bank details in the browser, then return to the chat.List wallets
The assistant calls
veil_wallets_list to find your wallets and their USDC/USDT balances.Get a quote
The assistant calls
veil_offramp_quote with the amount, asset, wallet, and destination bank. The quote is non-binding — you can adjust the amount and re-quote as many times as you like.Execute the offramp
After you confirm the quote, the assistant calls
veil_offramp_execute. This creates a pending transaction and sends a six-digit confirmation code to your email.The assistant requires
userConfirmed=true before calling veil_offramp_execute. It will not proceed without your explicit approval.Confirm with the code
Share the six-digit code from your email. The assistant calls
veil_offramp_confirm. This step is irreversible — once confirmed, the crypto is converted and the fiat is sent to your bank.Sending to a Veil user by @handle
If the recipient has a Veil username, you can send directly to their@handle. The assistant calls veil_username_beneficiary_preview first to confirm the recipient is ready, then passes the binding token to veil_offramp_quote and veil_offramp_execute.
Switching modes
To switch between sandbox and live, ask the assistant to switch or callveil_set_mode explicitly:
See also
- Tool reference — all 28 tools with full input/output documentation
- Offramp lifecycle — the full lifecycle across all surfaces