Skip to main content
An account represents a person or business in your tenant. Every agent and wallet belongs to one. Here’s how to create and verify one end-to-end.

1. Create the account record

Accounts start at KYC/KYB tier 0 — created but not verified. Low spending caps apply until verification completes.

2. Start verification

Redirect the end-user’s browser to verification.url. They complete the flow (upload docs, take a selfie, etc.); Persona redirects back to your redirect_url on completion.

3. Listen for the verified event

Until you see this event, don’t enable the account for high-value operations — its cap is still tier-0.

4. Optional: on-chain identity

If the account owns agents that transact on-chain:
Mints an on-chain identity tied to the account; child agents inherit the attestation chain.

Sandbox shortcuts

In sandbox:
  • Verification approves instantly without real documents
  • Tier can be set directly: sly.accounts.update(id, { kyc_tier: 2 })
  • No actual Persona calls are made
This lets you exercise your post-verification logic without waiting on a live KYC flow.

Common pitfalls

  • Treating an unverified account as ready. Tier 0 caps are intentionally low. If your product needs higher amounts immediately, gate account creation behind verification.
  • Embedding verification URLs. The verification.url is single-use and time-limited (~30 min). Don’t cache it — generate on demand.
  • Forgetting to store the ID. You’ll need account.id for every downstream operation (agent creation, wallet creation, transfers).

Next