Five tools cover the full offramp lifecycle. Read the Offramp lifecycle concept page for the sequence overview.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.
veil_offramp_quote
Get a non-binding exchange rate quote for converting crypto to fiat. Call this beforeveil_offramp_execute to show the user what they will receive.
Inputs
Amount of crypto to convert, in whole units (e.g.
50 for 50 USDC).Token to convert. One of
USDC or USDT.Optional. When provided, the tool verifies the wallet holds at least
amount of assetIn before calling the upstream quote service. Fails fast on over-balance requests.Optional. Route the quote to a specific bank account. Omit to use the wallet’s primary bank. Mutually exclusive with
beneficiaryUsername.Optional. Quote a send-to-handle offramp. Pass the
@handle without the @ prefix. Mutually exclusive with bankAccountId.Optional. Obtained from
veil_username_beneficiary_preview’s bindingHint field. Locks the recipient and prevents drift between preview and execute.ok on success, error on failure.Amount of crypto sent.
Token sent (
USDC or USDT).Estimated fiat amount to receive.
Fiat currency (e.g.
EUR, USD).Exchange rate (fiat per crypto unit).
Processing fee in destination currency.
Total fee in destination currency.
The bank account that will receive the funds.
Last four digits of the destination account for confirmation.
Error description when
status is error.beneficiaryUsername instead of a bankAccountId, the response carries the resolved destination from the binding preview — the recipient’s bankAccountId and suffixLast4 reflect their primary bank, not the sender’s.
veil_offramp_execute
Initiate an offramp. Creates a pending transaction and sends a six-digit confirmation code to the user’s email. The code expires in 10 minutes.Call this only after the user has reviewed the quote and explicitly confirmed they want to proceed. The
userConfirmed field must be true.ID of the wallet to debit.
Amount to convert.
Token to convert. One of
USDC or USDT.Must be
true. The assistant will not call this tool without explicit user approval.Optional. Destination bank account. Omit to use the wallet’s primary bank. Mutually exclusive with
beneficiaryUsername.Optional. Send to a
@handle recipient. Mutually exclusive with bankAccountId.Optional. From
veil_username_beneficiary_preview. Locks the recipient.ok on success, error on failure.Transaction ID. Pass to
veil_offramp_confirm.Confirmation request ID. Pass to
veil_offramp_confirm.Amount of crypto being converted.
Token being converted.
Fiat amount to receive.
Fiat currency.
Fee applied.
Rate locked at execute time.
ISO 8601 timestamp when the confirmation code expires.
Masked email where the code was sent (e.g.
y***@example.com).Human-readable instruction for the next step (e.g. prompting the user for the confirmation code).
Error description when
status is error.veil_offramp_confirm
Confirm an offramp by submitting the six-digit code sent to the user’s email. This step is irreversible. InputsFrom
veil_offramp_execute.From
veil_offramp_execute.The six-digit code from the user’s email.
ok on success, error on failure.Full transaction record. See
veil_offramp_get_transaction for the shape.Error description when
status is error. Common values: Invalid confirmation code, Confirmation code has expired, Exchange rate changed.veil_offramp_get_transaction
Get the current status and details of a specific transaction. InputsTransaction ID from
veil_offramp_execute or veil_transactions_list.ok on success, error on failure.Transaction record with fields:
id, type, status (pending / processing / completed / failed), amountIn, assetIn, amountOut, currencyOut, fee, exchangeRate, wireRef, createdAt, settledAt, wallet.name, wallet.chain, bankAccount.bankName, bankAccount.suffixLast4, bankAccount.currency. The bankAccount.* fields are null when the viewer is not the account owner (e.g. on the sender side of a @handle offramp).Error description when
status is error.veil_transactions_list
List offramp and deposit transactions with pagination and filtering. InputsNumber of results per page. Maximum 100. Server applies a default if omitted.
Pagination offset. Server defaults to 0 if omitted.
Optional filter. One of
pending, processing, completed, failed.Optional filter. One of
offramp, deposit.ok on success, error on failure.Array of transaction records. Each has the same shape as
veil_offramp_get_transaction’s transaction field.Total number of matching transactions.
Whether another page is available.
Limit applied to this response.
Offset applied to this response.
Error description when
status is error.See also
- In-chat flow — how these tools fit into a conversation
- Offramp lifecycle — quote → execute → confirm → settle