La documentación se publica en inglés.

DocumentationTrust

What this does not yet prove

The honest limit: you can confirm we signed a checkpoint and that the published history is consistent — you cannot yet confirm we did not sign a different one.

What a stranger can establish today

With no account, no key, no cooperation from us and no permission, anybody can do all of this:

  1. Fetch the newest checkpoint statement from an unauthenticated endpoint.
  2. Fetch the full set of keys that ever signed one, from an unauthenticated endpoint.
  3. Verify the ES256 signature themselves, in a library of their choosing, with no code of ours involved.
  4. Walk sequence, previousCombinedRoot, previousFingerprint and periodStart/periodEnd backwards to sequence 1 and confirm the published history has no gaps, no forks and no missing time.

That is genuinely more than most systems offer, and it is not nothing: a single altered event changes a leaf, which changes a stream root, which changes the combined root, which changes the fingerprint, which breaks the signature. The tamper-evidence within a published history is real.

What they cannot establish

The specific thing you cannot do today is establish that UnifyID did not, at some point, produce a different sequence of statements and publish those. Not because the cryptography is weak — because nobody outside UnifyID holds a copy to compare against, and a signature verifies equally well whichever history it was made over.

The integrity verifier's own documentation says it plainly: a checkpoint forged with a stolen or re-used key passes checks 1 to 8 and fails check 9. Check 9 is the chain, and until launch the chain is not there. What is left is checks 1 to 8, which is what this section documents and all it claims.

That is exactly the gap anchoring exists to close, and it is not running yet: it starts on Base mainnet at launch. See Anchoring, which is badged Not yet available for that reason.

The property that does exist, and how you get it

Independence does not have to come from a chain. It comes from somebody outside holding a copy. A chain is a convenient stranger who holds one for you and cannot be leaned on; you can be that stranger for yourself today, at the cost of a cron job.

  1. 1

    Take the key set first

    GET /.well-known/unifyid-checkpoint-keys.json, stored the day you start. Every later comparison is against your copy, not against whatever the endpoint returns that day.

  2. 2

    Poll for new statements

    GET /v1/public/transparency/checkpoints/latest on a schedule. Cheap, cacheable, and no credential.

  3. 3

    Back-fill once

    Page backwards with before and nextBefore to sequence 1 and keep the lot. A sealed statement is immutable, so this is a one-time cost.

  4. 4

    Verify on arrival, not on demand

    Run the signature check when you store it. A statement that fails on the way in is the signal; one that fails three months later tells you much less about when.

  5. 5

    Compare, and keep the evidence

    Re-fetch a sequence you already hold from time to time and diff it against your copy. Keep both if they ever differ. The evidence is the pair, and neither half is any use alone.

The cost is a few kilobytes an hour. The property you buy is that UnifyID cannot rewrite a period you were watching without your copy and ours disagreeing in public.

How to describe this accurately

If you are writing about UnifyID's transparency log — in a security review, a questionnaire, or your own documentation.

True todayNot true today
UnifyID publishes signed checkpoints anyone can verifyUnifyID's log is anchored, or verifiable on a chain
The published history is internally consistent and gap-free, and you can confirm that yourselfA third party independently attests to the history
A changed record breaks the proof chain from the leaf to the signatureRecords are immutable because a chain says so
Archived checkpoints make a later contradiction provableA contradiction is already provable without you archiving anything
Anchoring is built and tested, and starts on Base mainnet at launchAnchoring is live today, on a mainnet or a testnet

The right-hand column is not a list of future features to describe in the present tense. If you need one of those properties today, this is not the section that gives it to you, and saying otherwise in a document somebody relies on is the failure mode this page exists to prevent.

What this does not do

  • This page is badged `Available` because the limitation is true today. The badge describes the accuracy of the page, not the state of the feature it describes.
  • A signature check on a freshly fetched pair proves less than it looks. Statement and key came from the same place at the same moment. The archive is what turns a check into evidence.
  • Nobody runs a witness or a monitor outside UnifyID today. The internal nightly job rebuilds every tree and re-checks every statement, and that is UnifyID auditing UnifyID — useful, and not independent.
  • None of this is a reason to discount the log. Tamper-evidence within a published history is a real property with real teeth. It is simply a smaller claim than the one people assume, and the smaller claim is the one to make.

Verified against API commit 234dba22 on 2026-10-18. The routes, scopes, checklist, events and limits on these pages are read from that export, not typed.