Create a private, dated proof that your screenplay existed — before you share it.
The Screenplay Registry is a free, open-source script registry for writers. It creates a cryptographic record of your exact draft while keeping the script on your computer.
screenreg fingerprints your Fountain file locally, timestamps that fingerprint through OpenTimestamps, and gives you a small proof file you can keep forever. Anyone with the original file and proof can verify the record later.
Three deterministic steps. One portable proof.
The Fountain manuscript is canonicalized into normalized bytes; those bytes are hashed with SHA-256 into a 32-byte digest; the digest is committed to a Bitcoin block via OpenTimestamps. Each step runs locally and is reproducible from open-source code and published test vectors. A small .manifest.json (the envelope) and a self-contained .proof.ots file are returned — both small enough to email.
UTF-8 NFC, LF line endings, BOM stripped. Cosmetic edits don't change the digest. A Merkle scene-tree is computed so you can later prove a single scene without exposing the rest of the script.
SHA-256 over the canonical bytes produces a 32-byte digest. The digest is the only thing that ever leaves your machine.
The digest is submitted to OpenTimestamps calendars, which aggregate it with thousands of others into a Merkle root that is committed to Bitcoin. No fee, no wallet, no Bitcoin in sight.
Identical inputs always produce an identical digest. A counterparty, a defendant's counsel, an academic auditor, or a future maintainer with no relationship to the present steward can reproduce verification offline — using the .manifest.json, the .proof.ots file, and a Bitcoin node.
Same record. Different bill.
You already have two places to deposit a screenplay for a dated record: the Writers Guild and the U.S. Copyright Office. Each gives you a different artifact at a different price. The Registry is a third option that costs nothing and runs on your laptop — not a replacement for the other two, but something you can do alongside them in the time it takes to read this sentence.
Guild deposit
A copy of the script kept in a guild filing cabinet. Convenient but expires after five years.
Statutory filing
The legally-meaningful registration. Required to sue for infringement. Processing time per the Office's published status page is up to four months for electronic filings; you upload the script.
Cryptographic timestamp
A 32-byte fingerprint anchored to Bitcoin in about a minute. Script stays on your machine. Use this with the Copyright Office, not instead of it.
Explicit non-goals.
The Registry's value depends on honest scope. We are pedantic about what the protocol does and does not do so that lawyers, journalists, and writers can rely on the artifact without misrepresenting it.
If you ship a screenwriting app, you can add this in a weekend.
The reference CLI is in TypeScript, MIT-licensed, dependency-light, and free of cryptographic novelty. Highland, Slugline, WriterDuet, FadeIn, an indie Fountain editor — any of you can drop in a "register this draft" menu item in roughly the time it took to add Export to PDF. The simplest integration spawns the CLI as a subprocess; a typed SDK ships in v0.1.1 once the wire surface settles.
# minimal embed — register the current draft from any tool # (works wherever you can spawn a subprocess: Electron, Tauri, native bridge, etc.) $ screenreg register draft.fountain \ --training-mining notAllowed \ --identity \ --envelope-out drafts/v3.manifest.json \ --ots-out drafts/v3.proof.ots # produces: # drafts/v3.manifest.json — the envelope (commitment + metadata) # drafts/v3.proof.ots — the OpenTimestamps Bitcoin proof # drafts/v3.private-key.pem — Ed25519 signing key (chmod 600) $ screenreg verify draft.fountain drafts/v3.manifest.json drafts/v3.proof.ots # ✓ VERIFIED — claim hash matches and a Bitcoin attestation is present
Steward today. Council tomorrow.
The protocol is presently maintained by its initial contributors. The roadmap calls for transition to an independent technical council with representation from working screenwriters, integrators, legal practitioners, and protocol engineers (triggered by three external integrators OR six months, whichever comes first). The spec, test vectors, and reference implementation are licensed such that any party may fork and continue the work without our permission and without our cooperation. That is the point.
The full spec, in seven sections.
- → Section 01 · Normalization
- → Section 02 · Envelope & Claim record (RFC 8785 canonicalization)
- → Section 03 · Scene + paragraph Merkle trees
- → Section 04 · Encrypted manifest fields (AES-256-GCM)
- → Section 05 · Similarity commitment layer
- → Section 06 · Comparison disclosure bundle
- → Section 07 · Time-locked encrypted fields (Drand)
- → docs/threat-model.md · Threat model & non-goals