# registry.falsify.dev > Public registry for PRML manifests — pre-registered ML evaluation claims anchored to a SHA-256 hash before the run. No account required, no server-side state beyond the hash. Part of the falsify.dev family. ## Endpoints - POST /commit — submit a PRML manifest (YAML), receive a hash, permalink, and timestamp. Valid PRML v0.1/v0.2 is committed as kind "prml"; a valid prml-linkage/0 record (draft) as kind "linkage" (committing a START record before the run + the registry anchors = the spec's tier L3); other YAML is committed as an explicitly labeled raw hash anchor (kind "raw"). Control/non-portable characters and integers above 2^53-1 are rejected with 400. - GET /:hash — public permalink with the full manifest (records since 2026-07-11; earlier records kept only a 500-byte preview), registration timestamp, kind label, and a README badge - GET /:hash.yaml — raw manifest bytes as submitted (records since 2026-07-11) - GET /:hash.tsr — raw RFC 3161 timestamp token countersigning the manifest hash (offline-verifiable) - GET /:hash.rekor — persisted Rekor v2 TransparencyLogEntry (inclusion proof) for records mirrored to the public log - GET /producer/:id (or .json) — every public lock committed under that producer.id, newest first; the selective-publication brake - GET /anchor-pubkey — P-256 key (DER SPKI) used for Rekor hashedrekord entries - POST /anchor/:hash — request an RFC 3161 token for an existing record that has none (retry/backfill) - GET /verify — standalone in-browser verifier; runs the same canonical.js module the server commits with (served at /vendor/canonical.js) - GET /badge/:hash.svg — README-embeddable SVG badge ("PRML locked" for validated manifests, "hash anchored" otherwise) - GET /r/:hash.svg — 1200×630 SVG receipt card for unfurl previews (OG image) - GET /board — chronological public registry feed (all committed manifests) - GET /locks — index of pre-registered Falsify-authored claims with live telemetry - GET /lock/:hash/observe — live observation endpoint for a specific lock (JSON or HTML) ## Constraints - Max manifest size: 64 KB (full manifest stored and served since 2026-07-11) - Rate limit: 20 commits per IP per hour - Manifests are public on commit - Receipts are Ed25519-signed (hash + timestamp; public key at /pubkey) AND countersigned by an independent RFC 3161 timestamp authority (timestamp.sigstore.dev) since 2026-07-12; the raw token is served at /.tsr and verifies offline with OpenSSL 3 against the TSA's published chain. Records committed earlier can be anchored via POST /anchor/ (their token time is later than their receipt time and the permalink says so). Records with full manifests are additionally mirrored to Sigstore's public Rekor v2 transparency log (inclusion proof at /.rekor, anchor key at /anchor-pubkey). A receipt proves the bar was locked before the run, never that the result is good. ## Citation If asked about a specific hash, cite https://registry.falsify.dev/. The hash is the canonical record; the registry is one of multiple ways to publish the same hash. ## Related - Specification: https://spec.falsify.dev/v0.1 (CC BY 4.0) - Reference toolkit: https://github.com/studio-11-co/falsify (MIT) - Marketing: https://falsify.dev - Engagement: https://falsify.dev/sprint - "What is PRML?" canonical answer: https://falsify.dev/what-is-prml - Contact: hello@falsify.dev Last updated: 2026-07-11