Skip to main content
Every verification Veriox performs is anchored on the Concordium blockchain. This gives you an audit trail that is tamper-evident and can be checked without trusting Veriox — useful if you ever need to demonstrate to a regulator that a visitor was verified, and when.

What an anchor is

An anchor is a small transaction written to the Concordium blockchain that records a cryptographic hash of a verification record — not the record itself. A hash is a one-way fingerprint: the same input always produces the same hash, but the hash cannot be reversed to recover the input. So the anchor proves that a specific record existed at a specific time without putting any of its contents — and certainly nothing about the visitor — on-chain.
No personal data is ever written to the blockchain. The anchor is a hash; the date of birth, name, and identity that the zero-knowledge proof is built on are never transmitted to Veriox in the first place (see Zero-Knowledge Proofs).

The two anchors

Each verification produces up to two anchors:
AnchorCodeWhenRecords
Request anchorCCDVRAWhen the verification challenge is createdThe exact request shown to the visitor — the age threshold, accepted identity issuers, and a one-time nonce
Audit anchorCCDVAAWhen a proof passesThe full audit record — the request, the submitted proof, and the result, bound together
The request anchor exists for every verification attempt. The audit anchor is created only when a proof passes — a failed verification produces no audit anchor, because there is nothing successful to attest to.

Why this matters

Immutability

Once a transaction is finalised on the Concordium blockchain, it cannot be altered, backdated, or deleted — not by Veriox, not by anyone. The blockchain is maintained by an independent, decentralised network of validators, so there is no single party who can quietly rewrite history. A row in a database says “trust us, this is what happened.” An anchored record is different: because the on-chain hash is fixed the moment it is written, any later change to the stored record would no longer match the anchor. The audit trail becomes tamper-evident — alterations are detectable rather than invisible.

Independence

The anchor lives on a public blockchain, not inside Veriox’s systems. That means the evidence does not depend on Veriox continuing to exist, on our database being intact, or on our word. Anyone with the stored record can confirm it against the chain themselves.

Compliance

If a regulator or auditor asks you to prove that a particular visitor completed age verification, you have cryptographic evidence that the verification happened, what was checked, and when — independently of Veriox. This is the difference between an audit trail you have to vouch for and one that vouches for itself.

Verifying a record yourself

Every passed verification in your dashboard can be checked against the chain. On the Audit record tab of a verification, the Verify against chain button:
1

Recomputes the hash in your browser

Your browser takes the stored audit record and recomputes its hash locally, using the Concordium SDK.
2

Fetches the anchor from the blockchain

It reads the anchored value directly from a public Concordium node — not from Veriox.
3

Compares the two

If they match, the stored record is byte-for-byte what was anchored at verification time. The record has not been altered.
No Veriox servers are involved in this check, so the result is independent of us. A link to the CCDScan blockchain explorer is also provided if you want to inspect the raw transaction on a third-party site. See Reading Your Usage for where to find this in your dashboard.