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.

Veil runs two parallel environments behind a single URL. Production handles real KYC, real bank accounts, and real money. Sandbox is wired to a test environment — same surface, no real funds. The mode you’re in decides which environment every read and write touches.

How it shows up in Veil

When you log in to the dashboard, a header toggle switches you between Sandbox and Production. The choice is sticky. Every read and write is scoped to your active mode. Wallets, transactions, bank accounts, KYC status, API keys, and webhooks in sandbox are never the same rows you see in production. An API key minted in sandbox only works in sandbox; a production key only works in production. The same @handle can exist in both modes, owned by different users.

Who can use which mode

  • Individuals live in production only. Sandbox mode is not available to individual accounts — there’s no meaningful sandbox flow when you’re just moving your own funds.
  • Developers sign up in sandbox by default. The sandbox lets you build and test without KYC friction or real money. When you’re ready to launch, you “go live”: complete production KYC, add a production bank account, and switch the mode toggle to Production. See the Production guide.

Switching modes

Only the dashboard can switch modes — API keys are pinned to the mode they were minted in. To switch sandbox → production, you must first complete production KYC; the switch is blocked otherwise.

Common pitfalls

SymptomLikely cause
”My wallets disappeared”You toggled modes. Toggle back.
”My API key returns 401”The key is sandbox; the dashboard or another caller is in production (or vice versa).
”I can’t switch to production”You haven’t completed production KYC yet.
”My handle is taken in production but I have it in sandbox”Handles are per-mode. Claim it in production separately.

See also