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.

Six 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
status
string
required
ok on success, error on failure.
wallets
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).
totalBalance
object
Aggregate balance across all wallets, keyed by asset.
stage
string
Present when the user has not completed onboarding. Describes the missing step.
reason
string
Error description when status is error.
Example
[calls veil_wallets_list]
→ status: "ok", wallets: [{
    id: "wal_xyz", name: "Base wallet", chain: "base", chainName: "Base",
    depositAddress: "0xabc…123", supportedAssets: ["USDC", "USDT"],
    balance: { USDC: "120.00", USDT: "0.00" },
    bankAccount: { id: "ba_abc", suffixLast4: "1234", currency: "EUR" }
  }], totalBalance: { USDC: "120.00" }

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
chain
string
required
Blockchain to create the wallet on. One of ethereum, base, polygon, or solana.
name
string
Optional display name for the wallet.
Outputs
status
string
required
ok on success, error on failure.
wallet
object
The newly created wallet record. Same shape as each item in veil_wallets_list.
reason
string
Error description when status is error. Common values include A wallet already exists on this chain and Complete onboarding first.
Example
[calls veil_wallet_create with chain="base"]
→ status: "ok", wallet: { id: "wal_new", chain: "base", depositAddress: "0xdef…456", balance: {} }

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
walletId
string
required
Wallet ID from veil_wallets_list.
Outputs
status
string
required
ok on success, error on failure.
wallet
object
Full wallet record. Same shape as veil_wallets_list.
recentTransactions
array
Last 10 transactions for this wallet. Each has: id, type, status, amountIn, assetIn, amountOut, currencyOut, fee, wireRef, createdAt, settledAt.
reason
string
Error description when status is error.
Example
[calls veil_wallet_get with walletId="wal_xyz"]
→ status: "ok", wallet: { balance: { USDC: "120.00" }, depositAddress: "0xabc…123" },
  recentTransactions: [{ id: "txn_123", status: "completed", amountOut: "46.23" }]

veil_wallet_set_primary_bank

Reassign a wallet’s default payout bank account. The deposit address and any auto-settle rule are preserved. Call veil_bank_accounts_list first to see available bank accounts. Cannot be changed while transactions are in flight. Inputs
walletId
string
required
Wallet to update.
bankAccountId
string
required
Bank account to set as primary. From veil_bank_accounts_list.
Outputs
status
string
required
ok on success, error on failure.
wallet
object
Updated wallet record with the new bankAccount pointer.
reason
string
Error description when status is error.
Example
[calls veil_wallet_set_primary_bank with walletId="wal_xyz", bankAccountId="ba_def"]
→ status: "ok", wallet.bankAccount: { id: "ba_def", suffixLast4: "5678", currency: "USD" }

veil_wallet_set_source_address

Enable or update the auto-settle rule for a wallet. Deposits arriving from the specified source address will automatically convert to fiat. On success, minimum may be returned — the smallest deposit that triggers auto-conversion. Deposits below the minimum land in the wallet normally but don’t auto-convert. Inputs
walletId
string
required
Wallet to configure.
sourceAddress
string
required
The sending address to watch. Deposits from this address trigger auto-settle.
bankAccountId
string
Optional. Route the rule to a specific bank account. Omit to keep the wallet’s current payout bank.
Outputs
status
string
required
ok on success, error on failure.
rule
object
The active auto-settle rule. Contains walletId, chain, chainName, sourceAddress, createdAt, bankAccount ({ id, suffixLast4, currency }), and optionally minimum.
minimum
object
The corridor minimum, if one applies. Has fiat (number), fiatCurrency, sourceMin (number), and sourceCurrency. Null if no minimum applies.
reason
string
Error description when status is error.
Example
[calls veil_wallet_set_source_address with walletId="wal_xyz", sourceAddress="0xabc…123"]
→ status: "ok", rule: {
    walletId: "wal_xyz", chain: "base", chainName: "Base",
    sourceAddress: "0xabc…123", createdAt: "2026-05-14T12:00:00Z",
    bankAccount: { id: "ba_abc", suffixLast4: "1234", currency: "EUR" }
  },
  minimum: { fiat: 27.74, fiatCurrency: "EUR", sourceMin: 30, sourceCurrency: "USDC" }

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
walletId
string
required
Wallet to disable auto-settle on.
Outputs
status
string
required
ok on success, error on failure.
rule
object
Null on successful disable.
reason
string
Error description when status is error.
Example
[calls veil_wallet_disable_auto_settle with walletId="wal_xyz"]
→ status: "ok", rule: null

See also

  • Wallets — what wallets are and how balances work
  • Auto-settle — the automatic conversion model
  • Rules tools — inspect active auto-settle rules