AINumbers.co

Documentation

Binding format

The anchors.json file downloaded from the Anchor page contains a single top-level key anchor_bindings, which is an array of entries. Each entry corresponds to one timestamp authority.

RFC 3161 binding (one entry):

{
  "type": "rfc3161-tst",
  "anchored_hash": "sha256:<64 hex chars>",
  "log_origin": "http://timestamp.digicert.com",
  "proof": "<base64 DER TimeStampToken>",
  "policy_oid": "2.16.840.1.114412.7.1",
  "serial": "<hex>",
  "gen_time": "2026-07-02T22:00:00.000Z",
  "signer_cert_chain_b64": ["<base64 DER leaf cert>", "..."]
}

OpenTimestamps binding (one entry):

{
  "type": "opentimestamps",
  "anchored_hash": "sha256:<64 hex chars>",
  "log_origin": "bitcoin",
  "proof": "<base64 .ots bytes>"
}

When an OpenChainGraph artifact is anchored, the same entries appear in the anchor_bindings array at the top level of the re-emitted artifact. The execution_hash and all other fields are untouched (anchor data sits outside the hash scope per OCG section 20).

Verify with openssl

Extract the DER from an anchors.json binding and verify it independently of this site:

# Extract proof DER (requires python3 or similar base64 tool)
python3 -c "
import json, base64
b = json.load(open('anchors.json'))['anchor_bindings'][0]
open('tst.der','wb').write(base64.b64decode(b['proof']))
"

# Verify (adjust -CAfile to the relevant pinned root)
openssl ts -verify \
  -digest <sha256-hex> \
  -in tst.der \
  -CAfile digicert-trusted-root-g4.pem

The -digest value is the anchored_hash field with the sha256: prefix removed. Root PEM files are in the repo.

Timestamp authorities

The Anchor page offers six choices:

AuthorityHow it reaches the TSANotes
Sigstore TSA Browser-direct (CORS open) OpenSSF public-good; accepts JSON as well as DER
DigiCert Relay at /relay/digicert Commercial CA; AATL root; no use restrictions
Sectigo Relay at /relay/sectigo Commercial CA; relay enforces 15-second pacing
FreeTSA Relay at /relay/freetsa Community TSA (one person in Bavaria); pair with a CA for reliability
GitHub TSA Browser-direct (CORS open) HSM-backed; undocumented for third-party use
OpenTimestamps Browser-direct to OTS calendars Bitcoin-anchored; proof is pending for several hours after stamping

The relay is a stateless Cloudflare Worker that pipes DER bytes verbatim. It parses nothing, stores nothing, and logs no request bodies. Rate limit: 4 requests per minute per IP.

Pinned roots

Sigstore and GitHub roots are not in OS trust stores, so this site pins them. The Verify page uses these same pinned roots for offline-capable verification. The roots are committed in public/vendor/roots/ and documented in ROOTS.md. CI warns 90 days before any pinned cert expires.

OpenChainGraph support

Drop an OCG artifact on the Anchor page and the tool:

  1. Reads the execution_hash field (no re-hash of the raw file).
  2. Optionally verifies the execution hash against the artifact body (section 4 recompute).
  3. Anchors the execution hash at the selected timestamp authorities.
  4. Offers a download of the artifact with anchor_bindings appended per OCG v0.7 section 20.

The Verify page runs all three OCG verification paths on dropped artifacts: section 4 (execution hash), section 16 (eddsa-jcs-2022 signature), and section 18 (Groth16-BN254 compute proof), all client-side using the vendored OCG verifier library.

Security model

Post Oak Labs is not a timestamp authority and never stores your hash. The relay Worker forwards bytes verbatim; the authorities listed in your receipt are the issuers of the evidence.

Content Security Policy: script-src 'self', connect-src exact allowlist, require-trusted-types-for 'script'. No analytics, no third-party scripts, no CDNs.

Source code and vendored libraries are published at github.com/PostOakLabs/anchor-suite.