The Liceat transparency log

Every authorization decision, agent identity, and attestation Liceat records is a leaf in one append-only Merkle log. From the signed tree head below — the root, signed by the key at /.well-known/liceat-jwks — anyone can prove a record is in the log and that the log has only ever grown. No blockchain, no gas — the same non-repudiation guarantee that secures the web's certificates (Certificate Transparency), computed here instantly and for free. Verification below runs entirely in your browser.

Signed tree head

log size
agent identities
attestations
root signature
root hash

Verify a record (inclusion proof)

Prove append-only (consistency proof)

Non-equivocation — witness cosignatures

Beyond tamper-evidence: the operator cannot even show two different histories. Independent witnesses co-sign each checkpoint, but only after verifying a consistency proof from the last size they signed — so no honest witness can endorse a fork. Anyone can run one (import { Witness } from 'liceat') and post cosignatures to /transparency/cosign.

loading…
A witness that ever saw two conflicting signed checkpoints holds portable, undeniable proof of misbehaviour. This is the guarantee a plain hash chain cannot give you. Run your own: npx liceat witness --gateway https://liceat.com --watch.

Bitcoin anchor — gasless, permanent, operator-independent

Beyond witnesses: each checkpoint root is timestamped into Bitcoin via OpenTimestamps — no wallet, no gas, no account. Only the 32-byte root hash is submitted, so nothing private ever touches a public chain. Even if this gateway and every witness vanished, anyone holding a checkpoint and its .ots proof can prove to Bitcoin's own timestamp that the root existed. The proofs are standard detached OpenTimestamps files — verify them with any ots verify client, or offline with the SDK (import { verifyOts } from 'liceat').

loading…
This is the "better than a blockchain" property: instant + private + gasless day-to-day, with Bitcoin-grade permanence layered on for free. No chain lock-in; no fees to keep it alive.

Public anchor — the append-only checkpoint history

Every log-signed root is published to an append-only history at /transparency/checkpoints. Mirror it, archive it, diff it: any later attempt to present a different root for a size that already appears here is a self-evident fork. Non-equivocation with no blockchain and no gas — the signed history is the anchor.

loading…

Verify it yourself, anywhere

The proof math is public and ships in the SDK — you never have to trust our server:

import { verifyInclusion, verifyConsistency, leafHash } from 'liceat';
// fetch /transparency/sth and /transparency/inclusion?seq=N, then:
verifyInclusion(seq, treeSize, leafHash(leafData), proof, rootHash); // → true
The signed tree head is Ed25519-signed by the issuer key. A relying party checks (1) the STH signature against the published JWKS and (2) the Merkle proof — identical to verifying an on-chain attestation, without the chain.