Wallet Verification
Prove that a user controls a crypto wallet by having them sign a message. No funds move and no transaction is sent.
Wallet Verification lets you confirm that a user controls a wallet address before you rely on it. Your backend creates a verification, the user opens a verification page, connects their wallet, and signs a plain-text message. Wallet Verification checks the signature and stores an attestation that you can read and re-check yourself.
The user only signs a message. No funds move, no transaction is sent, and the user pays no gas.
Who is Wallet Verification for?
- Payout platforms and PSPs that need to confirm a beneficiary controls the destination wallet before sending a payout or approving a withdrawal.
- Platforms verifying their own customers that want proof of ownership for the wallets customers link during onboarding or re-verification.
- Regulated institutions that need proof of control over self-hosted wallets for Travel Rule checks.
How does Wallet Verification work?
- Your backend creates a verification with your own
reference_idand apurpose. The response includes a one-timeurl. - You send the user that
urlas a link, a redirect, or an embedded iframe. - The user opens the verification page, connects a wallet, and signs a message that names your business and the purpose.
- Wallet Verification checks the signature and stores an attestation.
- Your backend polls the verification until it reaches a terminal state, then reads the attestation.
Wallet Verification does not send webhooks. Poll GET /verifications/{id} to get the result.
Get started
Quickstart
Create your first verification and read the result.
Dashboard & API keys
Request access, manage API keys, customize the page, and review activity.
User experience
What your users see, supported wallets, return URLs, and embedding.
Results & attestations
States, the attestation, how to re-check a signature, and the signed message.
The API reference is coming soon.