Skip to main content

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:

StatusMeaning
pendingCreated, waiting for holder to respond
claimedHolder has bound their DID to the request
submittedCredentials submitted, verification in progress
verifiedSuccessfully verified
expiredTimed out before completion