AttestLayer AttestLayer

AttestLayer Public Registry

Public append-only transparency log for AttestLayer-issued PASS attestations. Every issued kit is recorded here with a signed checkpoint, Merkle inclusion proof, and timestamp. Read-only and unauthenticated — anyone can verify independently.

For non-technical reviewers

This page is the public log of every verification kit AttestLayer has ever issued. Each entry is signed, timestamped, and included in a Merkle tree so anyone can prove a kit existed at a given time without trusting AttestLayer. You do not need to use this page to verify a kit — the Verify page does that for you.

Current trust model

The registry is live and publicly readable. Checkpoints are currently self-issued by AttestLayer and signed with the registry key (registry.jwks.json). Receipts inside verification kits are signed with a separate issuer key (issuer.jwks.json). External witnessing and external anchoring should only be described when active.

Common Actions

Verify a kit: verify.attestlayer.com — upload kit.zip to verify manifest + receipt (how to verify in 60s)
Fetch JWKS: /v1/jwks/registry.jwks.json — checkpoint-signing public keys (for receipt verification use issuer.jwks.json)
Latest checkpoint: /v1/checkpoints/latest.json — current signed tree head
Inclusion proof: GET /v1/proofs/inclusion?leaf_hash=X — prove a leaf exists in the tree

Registry Status

Public registry online

The public transparency log is live and accepting entries. Checkpoint data will populate here as PASS attestations are issued and logged. Use the sample kit or verification links below to explore the registry structure.

Latest checkpoint JWKS Snapshot History Verification kit Spec

Sample entry

Every PASS attestation produces a log entry like this:

{ "leaf_hash": "cf4fe8a7e4b75f2f5142741443dbebcdc78f2e657847b9a6b73a6ff697035590", "receipt_id": "samplekit00000001", "manifest_sha256": "a7a963af8e2341e6888d2699aeb6c29a48043ef4f299b2dd87a9a607a86fb02d", "issued_at": "2026-06-01T00:00:00Z", "receipt_kid": "8adefa300a1059bc" }

This is the sample kit entry. Real entries follow the same structure.

Need verification kits? See direct purchase plans or partner programs.

# Fetch latest signed checkpoint
curl -s https://registry.attestlayer.com/v1/checkpoints/latest.json | python3 -m json.tool

# Verify inclusion of a leaf
curl -s "https://registry.attestlayer.com/v1/proofs/inclusion?leaf_hash=YOUR_LEAF_HASH"

# Check consistency between two checkpoints
curl -s "https://registry.attestlayer.com/v1/proofs/consistency?from_size=OLDER_SIZE&to_size=NEWER_SIZE"

Core Log

GET /v1/statsRegistry statistics (tree size, dates, checkpoint)
GET /v1/integrityLeafStore integrity report (rolling digest, reconciliation)
GET /v1/snapshotSigned snapshot of checkpointed state (for archival/diligence)
GET /v1/logs/datesAvailable log dates
GET /v1/logs/{date}.ndjsonDaily append log (NDJSON)

Proofs

GET /v1/proofs/inclusion?leaf_hash=XMerkle inclusion proof for a leaf
GET /v1/proofs/consistency?from_size=A&to_size=BConsistency proof between two tree sizes

Checkpoints

GET /v1/checkpoints/latest.jsonLatest signed tree head
GET /v1/checkpointsList recent checkpoints
GET /v1/checkpoints/{hash}.jsonSpecific checkpoint by hash
GET /v1/checkpoints/history.jsonlFull checkpoint history (JSONL, auditor download)
GET /v1/checkpoints/chain-verifyVerify checkpoint chain continuity

Witnesses (self-witnessed; external cosigning planned)

GET /v1/checkpoints/{hash}.witnesses.jsonWitness cosignatures for a checkpoint

Anchors (not yet active)

GET /v1/anchors/External timestamp anchors

Keys / Spec / Tools

GET /v1/jwks/registry.jwks.jsonRegistry checkpoint-signing public keys
GET /v1/jwks/issuer.jwks.jsonIssuer receipt-signing public keys
GET /v1/verify-kit.zipOffline verification kit (checkpoint + JWKS bundle)
GET /v1/specRegistry specification & constants
GET /v1/spec/REG-1.0.mdREG-1.0 specification document
GET /v1/verify/chain/{date}Verify chain integrity for a date

REG-1.0 · SHA-256 + Ed25519 · CT-style Merkle tree · RFC 8785 JCS