> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veriox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# How It Works

> The Veriox verification flow from visitor to verified session.

Veriox uses **zero-knowledge proofs** to verify age without revealing identity. Here is what happens from the moment a visitor lands on your site.

## The verification flow

<Steps>
  <Step title="Visitor arrives">
    Your Cloudflare Worker checks for a valid Veriox session cookie. If none exists, it injects a small trigger script into the page response.
  </Step>

  <Step title="Popup is presented">
    The trigger script opens the Veriox verification popup, served directly from Veriox infrastructure — not your domain.
  </Step>

  <Step title="Visitor connects their Concordium ID">
    The visitor opens the Concordium mobile wallet and approves a proof request. The wallet generates a cryptographic proof that the visitor meets the age threshold — without disclosing their actual date of birth.
  </Step>

  <Step title="Proof is verified">
    Veriox sends the proof to an isolated verifier service. The verifier checks the cryptographic validity of the proof against the Concordium blockchain and returns a pass or fail result.
  </Step>

  <Step title="Result is anchored on-chain">
    On a passing result, Veriox anchors a hash of the verification on the Concordium blockchain, creating a tamper-evident audit trail you can verify independently. No personal data goes on-chain — only a hash. See [On-Chain Anchoring](/how-it-works/on-chain-anchoring).
  </Step>

  <Step title="Session cookie is issued">
    Your Worker issues a signed session cookie. Subsequent requests carry this cookie and are served normally without triggering the popup again.
  </Step>
</Steps>

## What Veriox sees

| Data                            | Veriox receives it? |
| ------------------------------- | ------------------- |
| Visitor date of birth           | No                  |
| Visitor name or address         | No                  |
| Concordium account address      | No                  |
| Verification result (pass/fail) | Yes                 |
| Timestamp of verification       | Yes                 |
| Domain the verification was for | Yes                 |

The zero-knowledge proof is designed so that the verifier can confirm "this person is over 18" without learning anything else about them. Veriox stores the minimum needed to operate the service and produce your usage reports.

## What you (the merchant) see

In your dashboard you can see verification counts, success rates, and usage over time — no visitor-level data.

<Info>
  Because Veriox never sees personal data, you do not need to update your privacy policy to cover Veriox's verification process.
</Info>
