How Verification Works
Tokenive uses a three-party model: institution (you), holder (the person being verified), and the Tokenive platform (verification infrastructure).
The Verification Flow
Institution Tokenive Platform Holder Wallet
| | |
|-- Create proof request ----->| |
|<-- { id, qr_data } ---------| |
| | |
| (display QR code to user) | |
| | |
| |<-- Scan QR, share creds -----|
| | |
| |-- Verify via zkTLS --------->|
| |<-- Verification result ------|
| | |
|-- Poll for result ---------->| |
|<-- { status: 'verified' } ---| |
Proof Requests
A proof request specifies what credentials you need. When you create one, you get back:
- A unique request ID for polling
- QR data to display to the holder
- An expiration timestamp
The holder's wallet scans the QR code, selects the matching credentials, and submits them with a DID-bound signature.
zkTLS Verification
Tokenive uses Reclaim Protocol for zkTLS-based proof verification. This means:
- Credentials are verified against their original source
- The holder proves they own the credential without revealing unnecessary data
- Verification is cryptographically sound without trusting the holder's device
Providers
Each claim type (e.g., passport, address proof) is backed by a provider — the verification service that knows how to validate that specific credential type. You can list available providers via client.providers.list().
Statuses
A proof request moves through these statuses:
| Status | Meaning |
|---|---|
pending | Created, waiting for holder to respond |
claimed | Holder has bound their DID to the request |
submitted | Credentials submitted, verification in progress |
verified | Successfully verified |
expired | Timed out before completion |