PersonaBlocks lets you verify customers against a sovereign, reusable identity credential instead of
re-running KYC from scratch for every merchant. A customer verifies once, receives a Verifiable
Identity Certificate (VIC) — an on-chain credential that anchors their verified attributes and status
— and can then be recognized by any merchant on the network without repeating the full flow.
You integrate the same way whether a customer is brand new or already carries a VIC: mint a
verification session, open it, and act on the result.
Every customer reaches PersonaBlocks through one of two rails, and both mint the same kind of VIC:
Wallet (sovereign) — the customer connects a crypto wallet and signs to prove control. They hold
their own keys; PersonaBlocks never custodies them.
Phone (delegated) — the customer verifies with a phone number and one-time code, and a custodial
key is managed on their behalf. This is the low-friction path for customers who don’t run a wallet.
You don’t have to choose for them. A session’s flows array (wallet, phone) offers the rails you
support and the customer picks one.
Drop PersonaBlocks.create() into your frontend to open a hosted verification session — phone as an
embedded iframe, wallet as a popup, with a redirect fallback. All capture UI loads from
PersonaBlocks-controlled origins. See the Web SDK guide.
REST API
Mint and read sessions, list customers, and manage webhook endpoints over a versioned /api/v1
surface authenticated with a secret key. Browse the interactive API reference.
Webhooks
Receive signed, retried event deliveries — session completions and customer status changes — so your
backend reacts to verification outcomes server-to-server. See Webhooks.
Then follow the Quickstart to mint your first session and watch it resolve end to
end, or read the session lifecycle and data minimization
concepts first if you’d rather understand the model before writing code.