New User (Direct)
Users who visit Proof directly to verify their identity and link wallets.Flow
-
User visits Proof directly
- User navigates to the Proof application
- Landing page explains the verification process
-
Authenticates with email
- User enters their email address
- Proof sends a one-time code
- User enters the code to authenticate
-
Completes identity verification
- User uploads a government-issued ID
- User completes a liveness check (selfie matching)
- Verification processes (may take time)
- User sees status: pending, verified, or failed
-
Links one or more wallets
- User connects a Solana wallet
- User signs a message to prove ownership
- Proof verifies the signature and links the wallet
- User can optionally add a label
-
Manages linked wallets over time
- User can view all linked wallets
- User can add new wallets
- User can update wallet labels
- User can remove wallets
Sequence Diagram
New User (From Partner App)
Users redirected to Proof from a partner application that requires verification.Flow
-
User initiates action in partner app
- User attempts an action requiring verification
- Partner app detects user is not verified
-
Partner app redirects to Proof
- Partner app generates a deep link with:
- Wallet address to link
- Pre-signed ownership proof (signature)
- Return URL for post-verification redirect
- User is redirected to Proof
- Partner app generates a deep link with:
-
User authenticates
- User enters their email address
- Proof sends a one-time code
- User enters the code to authenticate
-
User completes identity verification
- User uploads a government-issued ID
- User completes a liveness check
- Verification processes
-
Wallet is automatically linked
- Proof verifies the pre-signed ownership proof
- Wallet is linked without additional user action
-
User is redirected back to partner app
- Proof redirects to the provided return URL
- Partner app can now query verification status
Sequence Diagram
Returning User
Users who have already completed verification and return to Proof.Flow
-
User visits Proof or is redirected from partner app
- User navigates directly to Proof, or
- Partner app redirects user to Proof
-
Authenticates with email
- User enters their email address
- Proof sends a one-time code
- User enters the code to authenticate
-
Skips verification (already complete)
- Proof recognizes the user is already verified
- No additional verification required
-
Manages wallets or is redirected back
- If direct visit: User can manage wallets
- If from partner: User is redirected back with existing wallet linked, or can link a new wallet
Sequence Diagram
Verification States
Throughout these journeys, users may encounter different verification states:| State | Description | Next Action |
|---|---|---|
unverified | User has not started verification | Begin verification |
pending | Verification is processing | Wait for completion |
verified | Verification successful | Link wallets or use services |
failed | Verification unsuccessful | Contact support or retry |
Related Pages
- Partner Integration — How to redirect users and query verification status
- Proof API Reference — API endpoints for all operations