Create a private, dated proof of your screenplay's existence - without sending it out.
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. The Screenplay Registry hashes your draft on your own machine and anchors only the 32-byte fingerprint to Bitcoin, through OpenTimestamps. The script never goes with it.
You keep your script along with the two small files it produces: the manifest and the timestamp proof. Anyone with these files can verify your screenplay existed by a certain date.
Three deterministic steps. One portable proof.
Your script 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. Every step runs in your own browser and is reproducible from open-source code and published test vectors. You get back a small manifest file (the envelope) and a self-contained .proof.ots file — both small enough to email. Only the 32-byte digest ever leaves your machine; the script itself does not. The browser takes Fountain or plain text today; PDF screenplays convert to text with the screenreg extract CLI command, and in-browser PDF support is coming soon.
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 connection to the initial contributors can reproduce verification offline — using the manifest, the .proof.ots file, and a Bitcoin node. No server, no account, and no permission from us is ever required.
The base layer works today.
The protocol is designed in layers. The base layer is a free Bitcoin timestamp. Two more layers are specified but not live yet: a public index and an optional on-chain record. Both would be opt-in, and neither would change or replace the Bitcoin proof you already hold.
Bitcoin timestamp
A 32-byte fingerprint of your draft, submitted to OpenTimestamps in about a minute; the Bitcoin confirmation follows within a few hours. The script stays on your machine, and nothing is published unless you ask.
Public index
The public index is designed but not live yet. If you opt in, it would list a title and name, never the script. Each record's proof would still be its own Bitcoin timestamp, independent of any list we keep.
Design: spec §10 · registry index
Optional on-chain record
The on-chain record is designed but not live yet. It would be optional, public, and gasless to you. It would not prove authorship, and it would not replace registering with the Copyright Office.
Design: spec §9 · on-chain anchor
Follow the repository to track work on the public index and on-chain record. The Bitcoin timestamp already works today.
Same draft. Different guarantees.
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's base layer is a third option that costs nothing and runs in your browser. It is 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 submitted to OpenTimestamps in about a minute, with Bitcoin confirmation a few hours later. The 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.
The questions writers actually ask.
Short, honest answers. For the long version, see the full FAQ and the threat model.
Does my screenplay ever leave my computer?
No. Your draft is read and fingerprinted on your own machine — in your browser, or with the command-line tool if you prefer — and only a 32-byte fingerprint, not a single line of the script, is ever sent out to be timestamped. There is no upload, no account, and no copy of your screenplay on any server. There is nothing here for anyone to leak, subpoena, or train an AI on.
What does the proof actually prove?
That a draft with a specific fingerprint existed no later than a specific date — priority in time. Once the fingerprint is confirmed on Bitcoin (a few hours after you create it), no one — including us — can backdate or alter it, and anyone can verify it independently, forever, without trusting us.
What does it not prove?
It does not prove who wrote the script — a timestamp shows that bytes existed at a time, not who authored them. And it is not a substitute for registering with the U.S. Copyright Office, which is what lets you sue for infringement. Use this alongside the Copyright Office, not instead of it.
To prove it later, do I have to reveal my script?
To prove that the fingerprint is a particular screenplay, yes — you show that screenplay. But you choose when, and to whom. Until then, the only thing that has ever left your machine is an opaque 32-byte fingerprint, which reveals nothing about the content. And when you do reveal it, the math proves it is the exact, unaltered draft that existed on the recorded date — it cannot be a different or edited version.
How is this different from the WGA or the Copyright Office?
The WGA keeps a copy of your script on file for five years (about $25). The Copyright Office is the statutory registration you need before you can sue, and you upload the script to it (about $45, with a processing wait). This is a third, free option that runs in your browser in seconds and keeps the script on your machine. It complements the other two; it doesn't replace them.
Is it really free? Do I need Bitcoin or a wallet?
Free, with no account, no payment, no token, and no wallet. Bitcoin is only the public ledger the timestamp is anchored to, through OpenTimestamps — there is no fee, no coin to buy, and no wallet popup. You never have to think about Bitcoin at all.
Why does the confirmed proof take a few hours?
OpenTimestamps gives you a pending proof almost immediately, then folds your fingerprint together with many others into a single summary that is committed to a Bitcoin block — usually within a few hours. Once that block is mined and the proof is upgraded, it stands on its own, permanently. The wait is Bitcoin's, not ours.
What happens to my proof if this website disappears?
Once your proof is confirmed on Bitcoin, it no longer depends on us at all. It verifies against the Bitcoin blockchain using open-source code — no server and no company required — so anyone can check it even if this site is long gone. That permanence is the whole point.
What can I register, and from where?
Today, drop a Fountain or plain-text screenplay into the browser. PDF screenplays convert to text with the screenreg extract command-line tool for now, and in-browser PDF support is coming soon. The command-line tool offers the same proof with more options for people who want them.
Any screenwriting app can add this, without asking us.
Writers never touch a command line; the base layer above is a browser page. This part is for people building screenwriting tools. The reference implementation is TypeScript, MIT-licensed, dependency-light, and has no exotic cryptography. Desktop apps, web apps, and indie Fountain editors can add a "register this draft" action by spawning the CLI, or by running the same logic in the browser through the shared modules behind /create/.
# 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 \ --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, section by section.
- → 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)
- → Section 09 · Optional on-chain anchor (specified · not live)
- → Section 10 · Public registry index (specified · not live)
- → docs/threat-model.md · Threat model & non-goals