Skip to main content

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.

A wallet in Veil is the deposit address where USDC or USDT lands before it converts to fiat. Each wallet is bound to one chain and one payout bank account.

How it shows up in Veil

Veil supports four chains: Ethereum, Base, Polygon, and Solana. You hold at most one wallet per chain per environment mode — so a developer account in production can have a Base wallet, an Ethereum wallet, and so on, each with its own deposit address and balance. After you complete KYC and link a bank account, Veil auto-provisions a wallet on each supported chain so you can start receiving deposits. You can also create wallets manually from the dashboard.

Modes

Every wallet has one of two modes:

Auto

The wallet has a configured source address — a specific wallet that you’ll be sending crypto from. When stablecoins arrive from that address, Veil automatically offramps them to the wallet’s bank account. See Auto-settle.

Manual

No source address is set. Deposits land in the wallet but stay there until you trigger an offramp explicitly. Useful when you don’t know in advance which wallet you’ll send from.
You can switch a wallet from manual to auto (or update its source address) at any time.

Balances

Balances reflect what’s on-chain in real time — a deposit appears as soon as the network confirms it. USDC and USDT are tracked separately per wallet.

Bank account binding

Every wallet has one default bank account. Auto-settle always sends to this account. Manual offramps default to it too, but the dashboard, REST API, and CLI all let you override the destination per-transaction. You can reassign the wallet’s default at any time; if auto-settle is on, future settlements go to the new account. See Bank accounts.

See also