Skip to main content
Nine tools manage Veil wallets. A wallet is a blockchain address that holds crypto on a specific chain. Deposits received there can convert to fiat automatically (auto-settle) or stay as crypto until you run an offramp manually.

veil_wallets_list

List your wallets with balances, deposit addresses, and bank account pointers. Auto-provisions default wallets on first access for fully-onboarded users. Inputs None. Outputs
string
required
ok on success, error on failure.
array
Array of wallet records. Each has: id, name, chain, chainName, depositAddress, supportedAssets, balance (map of asset to amount string), createdAt, and bankAccount ({ id, suffixLast4, currency } or null).
object
Aggregate balance across all wallets, keyed by asset.
string
Present when the user has not completed onboarding. Describes the missing step.
string
Error description when status is error.
Example

veil_wallet_create

Create a new wallet on a specific chain. Requires completed KYC and a bank account. Returns an error if a wallet already exists on the requested chain. Inputs
string
required
Blockchain to create the wallet on. One of ethereum, base, polygon, or solana.
string
Optional display name for the wallet.
Outputs
string
required
ok on success, error on failure.
object
The newly created wallet record. Same shape as each item in veil_wallets_list.
string
Error description when status is error. Common values include A wallet already exists on this chain and Complete onboarding first.
Example

veil_wallet_get

Get details for a specific wallet, including deposit address, balance, and the last 10 transactions. To see auto-settle configuration, call veil_rules_list. Inputs
string
required
Wallet ID from veil_wallets_list.
Outputs
string
required
ok on success, error on failure.
object
Full wallet record. Same shape as veil_wallets_list.
array
Last 10 transactions for this wallet. Each has: id, type, status, amountIn, assetIn, amountOut, currencyOut, fee, wireRef, createdAt, settledAt.
string
Error description when status is error.
Example

veil_wallet_set_primary_bank_execute

Start a payout-bank reassignment for a wallet. Sends a one-time confirmation code to the account email. Call veil_wallet_set_primary_bank_confirm with the returned requestId and the code to apply the change. Call veil_bank_accounts_list first to see available bank accounts. Inputs
string
required
Wallet to update.
string
required
Bank account to set as primary. From veil_bank_accounts_list.
Outputs
string
required
ok on success, error on failure.
string
Opaque identifier to pass to veil_wallet_set_primary_bank_confirm.
string
Partially masked email address where the confirmation code was sent.
number
Seconds until the confirmation code expires.
string
Human-readable prompt to display while waiting for the code.
string
Error description when status is error.
Example

veil_wallet_set_primary_bank_confirm

Confirm a payout-bank reassignment using the code sent by veil_wallet_set_primary_bank_execute. Cannot be changed while transactions are in flight. Inputs
string
required
Wallet to update (must match the execute call).
string
required
Bank account to set as primary (must match the execute call).
string
required
The requestId returned by veil_wallet_set_primary_bank_execute.
string
required
The 6-digit confirmation code from the email.
Outputs
string
required
ok on success, error on failure.
object
Updated wallet record with the new bankAccount pointer.
string
Error description when status is error. When the code is incorrect, re-call this tool with the same requestId — the code remains valid until it expires or too many wrong attempts are made.
Example

veil_wallet_set_source_address_execute

Start an auto-settle rule change that routes deposits from a source address to a specific bank account. Sends a one-time confirmation code to the account email. Call veil_wallet_set_source_address_confirm with the requestId and the code to apply the change. Inputs
string
required
Wallet to configure.
string
required
The sending address to watch. Deposits from this address trigger auto-settle.
string
required
Bank account to route payouts to. From veil_bank_accounts_list.
Outputs
string
required
ok on success, error on failure.
string
Opaque identifier to pass to veil_wallet_set_source_address_confirm.
string
Partially masked email address where the confirmation code was sent.
number
Seconds until the confirmation code expires.
string
Human-readable prompt to display while waiting for the code.
string
Error description when status is error.
Example

veil_wallet_set_source_address_confirm

Confirm an auto-settle rule change using the code sent by veil_wallet_set_source_address_execute. On success, returns the active rule and the minimum deposit threshold (if any). Inputs
string
required
Wallet to configure (must match the execute call).
string
required
The source address (must match the execute call).
string
required
The bank account (must match the execute call).
string
required
The requestId returned by veil_wallet_set_source_address_execute.
string
required
The 6-digit confirmation code from the email.
Outputs
string
required
ok on success, error on failure.
object
The active auto-settle rule. Contains walletId, chain, chainName, sourceAddress, createdAt, and bankAccount ({ id, suffixLast4, currency }).
object
The corridor minimum, if one applies. Has fiat (number), fiatCurrency, sourceMin (number), and sourceCurrency. Null if no minimum applies.
string
Error description when status is error. When the code is incorrect, re-call this tool with the same requestId — the code remains valid until it expires or too many wrong attempts are made. If the payment processor is temporarily unavailable, the code is still valid — retry the confirm call.
Example

veil_wallet_disable_auto_settle

Disable the auto-settle rule for a wallet. Future deposits land in the wallet as crypto. In-flight transactions complete normally. The deposit address is preserved. Inputs
string
required
Wallet to disable auto-settle on.
Outputs
string
required
ok on success, error on failure.
object
Null on successful disable.
string
Error description when status is error.
Example

veil_sandbox_faucet_credit

Credit 5 USDC_TEST to a sandbox wallet on Base Sepolia via the Veil faucet. The deposit lands at the wallet’s deposit address in about 30 seconds. Sandbox-only — switch with veil_set_mode if you’re in live mode. Inputs
string
required
Wallet ID from veil_wallets_list. Must be a Base Sepolia wallet in sandbox mode.
Outputs
string
required
credited on success, error on failure.
string
On-chain transaction hash of the faucet broadcast. Present when status is credited.
string
ISO timestamp of when the faucet broadcast the transaction. Present when status is credited.
string
Error description when status is error. Common values:
  • The sandbox faucet only runs in sandbox mode. Use veil_set_mode to switch first. — active mode is live
  • No wallet with that ID. Use veil_wallets_list to see your wallets. — wrong ID or not yours
  • That wallet is not a Base sandbox wallet — the faucet only funds Base sandbox wallets. — wallet is on a different chain or live mode
  • Daily faucet limit reached. Try again tomorrow. — hit the per-day cap (shared with the dashboard and CLI)
  • Another faucet request is in flight for this account. Retry in a moment. — a prior request hasn’t completed
  • Sandbox faucet is temporarily disabled. — faucet is offline for maintenance
  • Faucet transaction failed to broadcast. Try again in a moment. — transient broadcast failure
Example

See also