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.

Four tools manage Veil usernames. A @handle lets others send offramps directly to you without seeing your bank details. See Usernames for the full concept.

veil_username_check

Check whether a handle is available for claiming. Use this before veil_username_claim to avoid a failed attempt. Inputs
username
string
required
Handle to check, without the @ prefix.
Outputs
available
boolean
required
true if the handle is free to claim.
reason
string
Explanation when available is false (e.g. taken, invalid format, reserved).
Example
[calls veil_username_check with username="alice"]
→ available: true

veil_username_claim

Claim a permanent @handle. Handles are 3–30 characters: letters, digits, and underscores only. Requires a recent email verification (a successful veil_verify_otp within the last 10 minutes). If status is step_up_required, ask the user to verify their email and retry. Inputs
username
string
required
Handle to claim, without the @ prefix.
Outputs
status
string
required
claimed on success. taken if the handle was taken. step_up_required if re-verification is needed. error on other failures.
username
string
Canonical form of the claimed handle.
displayUsername
string
Display form including the @ prefix.
claimedAt
string
ISO 8601 timestamp when the handle was claimed.
reason
string
Error description on failure.
Example
[calls veil_username_claim with username="alice"]
→ status: "claimed", username: "alice", displayUsername: "@alice",
  claimedAt: "2026-05-14T12:00:00Z"

veil_username_rename

Rename your @handle. The old handle is released and the new one is claimed atomically. Subject to a cooldown after each rename. Requires a recent email verification. Returns status: step_up_required if re-verification is needed. Inputs
username
string
required
New handle to claim, without the @ prefix.
Outputs
status
string
required
renamed on success. taken if the new handle is taken. cooldown if the rename cooldown is active. step_up_required if re-verification is needed. error on other failures.
username
string
New canonical handle.
displayUsername
string
New display handle.
previousUsername
string
The handle that was replaced.
claimedAt
string
When the new handle was claimed.
cooldownExpiresAt
string
When the cooldown expires. Present when status is cooldown.
reason
string
Error description on failure.
Example
[calls veil_username_rename with username="bob"]
→ status: "renamed", username: "bob", displayUsername: "@bob", previousUsername: "alice"

veil_username_beneficiary_preview

Resolve a @handle to a recipient’s bank account and check if they are ready to receive offramps. Call this before quoting or executing a send-to-handle offramp. When status is ready, the response includes a bindingHint containing a short-lived binding token. Pass that token to veil_offramp_quote and veil_offramp_execute as bindingToken to lock in the recipient and prevent drift between preview and execute. Inputs
handle
string
required
Recipient’s handle, with or without the @ prefix.
Outputs
status
string
required
ready when the recipient can receive offramps. not_ready if they haven’t completed onboarding. cooldown if their bank account is on a security hold. not_found if the handle doesn’t exist. self if you look up your own handle. error on other failures.
displayUsername
string
The recipient’s display handle.
cooldownExpiresAt
string
When the security hold ends. Present when status is cooldown.
bindingHint
string
Instruction that includes the binding token value. Present when status is ready. Pass the token to veil_offramp_quote and veil_offramp_execute as bindingToken.
reason
string
Error or explanatory message on non-ready statuses.
Example
[calls veil_username_beneficiary_preview with handle="alice"]
→ status: "ready", displayUsername: "@alice",
  bindingHint: "Use bindingToken=\"eyJ...\" in veil_offramp_quote and veil_offramp_execute..."

See also

  • Usernames — handle routing and the recipient model
  • Offramp tools — using beneficiaryUsername and bindingToken in quotes and executes