A public, post-quantum-signed transparency log
Submit artifacts and events. Get tamper-evident, offline-verifiable receipts. Checkpoints signed with ML-DSA-65 (FIPS 204) — quantum-safe today.
Entries
…
leaves in the log
Algorithm
…
Last signed
…
Submit once. Verify forever.
Submit an artifact or event
Hash a file or a JSON event with SHA-512. The hash is appended as a Merkle leaf — the artifact itself never leaves your machine.
Receive a verifiable receipt
The server issues a receipt: artifact hash, leaf index, Merkle inclusion proof, and a signed checkpoint. The receipt is a standalone proof — no server trust required to verify it.
Verify offline, any time
Anyone with the receipt and the artifact can recompute the hash, recheck the Merkle proof, and verify the ML-DSA-65 checkpoint signature without contacting the server.
Verify any receipt
Paste a postq-transparency/v1 receipt, supply the original artifact or its SHA-512 hash. Hash and Merkle checks run entirely in your browser — no server required.
Why this is different from other transparency logs
Post-quantum signed checkpoints
Signed with ML-DSA-65 (FIPS 204, formerly Dilithium). A future quantum adversary cannot forge a checkpoint or back-date an entry.
Append-only consistency proofs
RFC 6962 consistency proofs let any verifier confirm the log has only had entries appended — nothing removed, altered, or reordered.
Independent witnesses
Witnesses cosign checkpoints only after verifying consistency, providing redundant guarantees beyond the log operator.
Not a blockchain
No tokens, no consensus, no gas. It's a single-writer Merkle log with signed checkpoints — the same trust model as Certificate Transparency.
Use postq trans from the terminal
Install the PostQ CLI and use the trans subcommand to submit, verify, and explore the log.
Install
go install github.com/postqdev/postq-transparency/cmd/postq@latestLog info
postq trans infoSubmit a file → receipt
postq trans submit artifact.txtSubmit a JSON event
postq trans submit-json event.jsonLatest signed checkpoint
postq trans checkpointBrowse entries
postq trans list --limit 10Consistency proof
postq trans consistency 1 100Verify offline
postq trans verify artifact.txt receipt.json --onlineBy default the CLI connects to http://localhost:8080. Set PQT_SERVER=https://transparency.postq.dev or pass --server to point at the public instance.
REST API
Base URL: https://postq-transparency.fly.dev · Rate limited to 60 req/min per IP · CORS open
/api/v1/entriesSubmit an artifact (multipart file) or JSON event. Returns a receipt.
/api/v1/entriesList entries. Query: ?start=0&limit=20
/api/v1/entries/{index}Single leaf metadata by index.
/api/v1/checkpointLatest signed checkpoint (root hash, signature, algorithm, public key).
/api/v1/consistencyRFC 6962 consistency proof. Query: ?first=N&second=M
/api/v1/log-infoLog metadata: ID, algorithm, public key, tree size.
/api/v1/verifyVerify a receipt server-side. Body: { receipt, artifact_hash }.
/healthzLiveness check + log ID + tree size.
Receipt format (stable — postq-transparency/v1)
{
"version": "postq-transparency/v1",
"log_id": "log:<hex>",
"artifact_hash": "sha512:<hex>",
"leaf_hash": "sha512:<hex>",
"leaf_index": 0,
"tree_size": 42,
"inclusion_proof": ["<base64>", ...],
"checkpoint": {
"version": "postq-transparency/v1",
"log_id": "log:<hex>",
"tree_size": 42,
"root_hash": "sha512:<hex>",
"timestamp": "2026-06-08T12:00:00Z"
},
"checkpoint_signature": "<base64>",
"signature_algorithm": "ML-DSA-65",
"post_quantum": true,
"public_key": "<base64>"
}