Settings

OBSCURA Authorship

Prove you wrote it, without giving it away.

This browser’s Pro key was not accepted: the subscription behind it has ended. Renew or subscribe below.

Authorship onlyUS$2 a month, 7 days free EverythingUS$5 a month, 7 days free

US$2 a month or US$19 a year for Authorship, or US$5 a month or US$48 a year for everything. 7 days free. Stripe takes a card, and nothing is charged if you cancel before they end.

Authorship in the light theme: an essay being written, the record's state along the foot of the window, and the bar with Write, Replay, Record and ShareThe same essay being written, in the dark theme

Authorship at work

Taken from Authorship and its checking page, with the example record the checking page opens: a short essay written over two sessions, with one quotation pasted in and its source in a footnote.

A record checked, and the writing replayed. The example essay is open in Authorship. On Replay, the record is checked: each block follows the one before and the events rebuild the text exactly. The replay is taken back to the first keystroke and played at sixty times, pauses skipped, and the quotation arrives marked as pasted from outside. The essay was written for this example. Recorded in Authorship itself; there is no sound.
The checking page: the verdict and each check that passed, above the replay of the essay with its pasted quotation markedThe same checking page in the dark theme
Checked, free. The verdict and every check behind it, and the writing replayed with the pasted quotation marked.
What the record shows: time span, active time, sessions, characters typed and pasted, and the timelineThe same figures in the dark theme
Facts, not a verdict. How long, how many sessions, what was typed and what was pasted, and when.
The Record screen: timestamps switched on, with exactly what is sent, and the chain's blocks and headThe same Record screen in the dark theme
What is sent, said. Timestamps are off until you turn them on, and the screen says exactly what goes and where.
The Share screen: what goes into the bundle, and the pasted passages that may be withheld, each marked as still in the final text or notThe same Share screen in the dark theme
You choose what goes. Withhold the words of a paste, a link or a footnote; the record still checks, and the page says what that costs.
Everything it does

A tamper-evident record of how your writing came to exist, kept as you write, in a file anyone is free to check. Timestamps from an independent authority if you want them, every paste marked, the writing replayed keystroke run by keystroke run, and nothing uploaded: you decide who gets the file.

Before you start: It records only what is written in it: text pasted from Word or Google Docs arrives, and is shown, as a paste. What else it does not do

Compared with Grammarly Authorship.

In brief

  • A record kept as you write Every run of typing, every deletion, cut, paste, undo and redo, with its time, in the order it happened; keys are kept as runs, so a 5,000-word essay’s record measured 94 KB, 28 KB in the bundle
  • Pastes shown, not hidden Pasted words are kept with the record and marked as pasted; a paragraph you cut and paste back within the same text is recorded as a move, not as text from outside
  • Tamper-evident The record is sealed in blocks, each holding the SHA-256 of the one before and of the document after it, so changing, moving or removing a single event breaks every block after it
  • Timestamps, if you want them Every few minutes, and when you share, a 32-byte fingerprint of the record goes to an independent time-stamping authority and comes back signed; off until you turn it on, and the words never go
  • One file to hand over A .oauthor bundle: the work as Markdown, HTML, PDF and Word, the record, the timestamps and a summary PDF with a timeline, signed by a key that never leaves your browser
  • Free to check, for anyone A teacher, editor or court opens it at /verify-authorship, with no account and no fee, sees every check, replays the writing at the speed they choose, and can print the report
  • The writing process, as facts Each session, the pace of typing and the pauses, and each paragraph of the final text with how it arrived and in how many sittings; never a score
  • Sources and citations Say where pasted words came from, kept in the record as what you said; cite a source in APA, MLA, Chicago or Harvard as a footnote
  • Assignment briefs A teacher issues a brief with a random code, and may give a length and a due date; a work begun from it carries the code, which shows every keystroke in it came after the brief existed, and one brief can have several documents
  • Drawings too A drawing sheet with pen, highlighter, eraser, a stroke eraser and shapes, on layers, with a stylus’s pressure; every stroke and every layer’s change in the same kind of record, and pictures brought in marked as brought in
  • A desk worth writing at An outline with the words under each heading; the type, the colours, the browser’s spelling check, focus and typewriter scrolling; right-to-left text and input methods, recorded as typing; statistics; Word and OpenDocument drafts brought in as imported; export to Word, PDF or Markdown with the record beside it
  • For teachers Briefs from six templates or your own, with a rubric the student sees while writing; on the free checking page, two points of a record compared word by word, the replay worked from the keyboard, a class’s records in one table that sorts and downloads as CSV, facts set out where a figure passes a line said beside it, and your own notes kept in your browser

Why it exists

Students, writers, journalists, translators and designers are now asked to show they did not use AI, often because a detector said they had. Those detectors give a score, not evidence: OpenAI withdrew its own AI text classifier in 2023 because it was not accurate enough, and the companies that sell them say a score should not be the only reason to accuse anyone. Someone wrongly accused has had little to answer with but their word.

The tools that record how a piece was written keep the work, or the record of it, on the company’s own servers and under its account: Grammarly Authorship, GPTZero’s writing replay and a Google Docs version history all work that way, and the company is left as the judge of what the record means. Authorship keeps the record on your device, in a file you own, and anyone can check that file for themselves.

How a record is checked

Nothing about the check depends on trusting Authorship, this site or the author. Anyone can repeat it from the files in the bundle, and the checking page does it in the browser:

  1. The chain. Each block of the record holds the SHA-256 of the block before it. The page hashes every block again; if any event was changed, moved or taken out, the hashes stop matching from that block on.
  2. The document. The page replays every event from an empty page. At the end of each block the rebuilt document must have exactly the fingerprint the block recorded, and the last must be the document in the bundle, byte for byte.
  3. The timestamps. Each token is checked as RFC 3161 says: the authority’s signature, its certificate and the chain of certificates up to a root kept in the page, that each was valid at the time, and that the token is over this record’s fingerprint at that block. A block cannot have been altered after the token over it was made.
  4. The clock. The author’s device dates each event; the authority dates each timestamp. A block dated after the timestamp over it is reported, so a record written later with its clock set back shows itself.
  5. The signature. When the bundle is signed, the page checks the device key’s signature over the list of every file’s SHA-256, and shows the key’s fingerprint, which is the same for every work from the same browser.

Open the example on the checking page to see each check pass, and the replay.

What it proves, and what it does not

A record shows how and when a work came to exist on the device that recorded it, and, where there are timestamps, that nothing in it was altered after each one was made.

It cannot prove that no AI was used. Someone could retype text from another source by hand, and a determined forger could script keystrokes to look like typing. What Authorship does is make faking a long, revised, timestamped record costly, because every pause, deletion and session has to be produced in real time, and give an honest author strong evidence. The checking page shows behaviour as facts (“1,240 characters arrived in one paste at 14:02”) and never as a judgement such as “likely AI”. Authorship has no AI in it and does no AI detection.

Without timestamps, a record is kept on the device alone: its blocks check against each other, but somebody with the whole record could rebuild every hash, so it says nothing about when. The checking page says so.

What is sent, and when

WhenWhat leaves your device
Writing, drawing, replaying, making a bundleNothing. The work and its record are kept in this browser’s private storage.
A timestamp, only if you turn them onThe SHA-256 of the record’s latest block: 32 bytes, from which nothing about the words can be worked out. It goes to /api/tsa on this site, which passes it to DigiCert’s public authority, or Sectigo’s when DigiCert does not answer; the authority sees this site’s server, not you. No account, no name, no title.
Checking a bundle at /verify-authorshipNothing. The page reads the file in the browser and asks nobody anything.

What is in a bundle

FileWhat it is
chain.jsonlThe record: one block a line, each with its events, its time, the SHA-256 of the block before and of the document after it
reveal.jsonThe words of pastes, drops, imports, links, footnotes and undo, each under a salted SHA-256 the chain holds, so any of them can be withheld without breaking the chain
timestamps/RFC 3161 tokens, each over the head of the chain at a block
document/The work in its own Markdown, and as HTML, PDF and Word; a drawing as its strokes and as a PNG
summary.pdfThe figures, the sessions, each paragraph and how it arrived, and a timeline, for reading and printing
report.htmlThe same as a page that opens in any browser with no network, with the final text marked by how each passage arrived; for reading, not the check
manifest.json, manifest.sig, device.jsonEvery file’s SHA-256, and the device key’s signature over that list with its public half, when you sign
brief.oabriefThe assignment brief the work was begun from, when it was

The format is written down in full at the top of oauthor.js, the code the checking page runs, so it can be checked without either.

How big, and how fast

Measured, not estimated, by authorship-core-test.mjs and authorship-test.mjs, which the site’s checks run: a scripted session of 5,010 words typed key by key over two sessions, with slips, deletions, a paste and a paragraph moved, and a key typed into a 5,000-word text in Chrome.

WhatMeasured
Keys typed, and the events they became27,067 keys, 1,493 events
The record of 5,010 words (chain.jsonl)94 KB, in 168 blocks
The same, compressed in the bundle28 KB
A key in a 5,000-word text, read back and recorded3.7 milliseconds (median)
Replaying the record to rebuild the text, and checking every blockByte for byte, all 168 blocks

Withholding a passage

The words of every paste, drop, import, link and footnote are kept beside the record under a salted fingerprint, not inside it. Before you share, you can withhold any of them: notes pasted in and later deleted, a private source, a link. The chain still checks, every timestamp still checks, and the record still shows when the passage arrived and how long it was. What cannot be checked is the document itself between the moment those words arrived and the moment they were gone, because rebuilding it needs them; the checking page says exactly which blocks that covers. Withholding words that are still in the final text hides nothing, and Share says so beside each one.

For teachers and editors

Checking is free and always will be: /verify-authorship is a viewer, like a PDF reader, and cannot make a record. Choose the .oauthor file a student or writer gave you; the page checks it and replays it, and nothing leaves your computer.

With Authorship you can also issue an assignment brief: its words, your name, and a code of 128 random bits, timestamped as it is made if you like. A student who begins from the brief carries its code into the first block of their record. Since nobody could have known the code before the brief was made, every event in the record came after the brief; the checking page shows the brief and its time. It is a file you hand out however you hand things out: nothing is published anywhere.

Code and vector drawings

In OBSCURA Umbra, choose Record how this was written in a project’s menu. From then on every edit to every file is recorded, by the same recorder and signed by the same device key: runs of typing, deletions, the editor’s own changes such as formatting, each paste with where it came from (outside the project, or copied from which of its files), each file added, renamed or deleted, and each run with the SHA-256 of the project as it was run and whether it finished or failed. A change made outside the editor, by git or another program, is recorded as that. Save the authorship record writes a .oauthor bundle with the code inside it, to hand in with the work.

The checking page replays it file by file, compares two points one file at a time, and lists every run. A class’s bundles chosen together sit in the same table, with facts for code set against stated lines: how much of the code added was typed, the largest single paste, lines written for the time at work, and how much of the final code was there at the first run. It is free to check, as every record is.

In OBSCURA Vector, File, Record how this was drawn does the same for a drawing: each operation in its history, each undo and redo, each SVG pasted from another program and each picture placed. The checking page replays it as pictures, the drawing’s SVG at each point, and sets two points side by side.

What it cannot do yet

Said now, so that nobody pays to find out.

  • Code is recorded in Umbra, and vector drawings in Vector. Code written in another editor and brought in arrives as a file from outside, and is shown as one. Vector records each operation in its history, so a drag is one step, not the path of the pointer. Neither bundle has timestamps yet, and nothing in them can be withheld.
  • It records only what is written in it. Work written in Word or Google Docs and pasted in arrives as a paste, and is shown as one. A draft can be imported, and is marked as imported.
  • No tables, pictures or comments in a text. Headings, paragraphs, lists, quotations, bold, italic, links and footnotes. Pictures go in a drawing.
  • The Photo Editor is not recorded. The drawing sheet is Authorship’s own, with layers of its own. Recording every operation of the Photo Editor faithfully is a larger piece of work.
  • No grading, and no AI detection. A rubric is shown, never applied. The checking page sets out counts and times past lines it names; it does not score a record or say whether AI was used.
  • No Content Credentials (C2PA) yet. Writing them correctly needs a signing certificate on a trust list and a vetted library to write them; until both are in place Authorship does not write them rather than write them badly.
  • Revocation is not checked. The checking page asks nobody anything, so it cannot ask an authority whether its certificate was later revoked. It checks the certificates were valid when the token was made.
  • One device per work. A work is kept in the browser it was begun in. A bundle can be made at any time and kept anywhere.

Questions people ask

Authorship

OBSCURA AuthorshipOpening the works kept on this computer…

Link

Add a footnote

Cite a source

It goes in as a footnote where the caret is, and the record keeps it as a footnote made. Footnotes are plain text, so titles are not set in italics.

Where it came from

Kept in the record with the time you said it. Whoever checks the record sees it as what you said: it is not checked.

A goal for the length

Shown along the foot of the page as you write. It is kept with the work in this browser, not in the record.

Statistics

Export

As

The bundle is the one Share makes, with every passage’s words in it. To withhold any, make the bundle from Share.

Rename the layer

The new name is kept in the record, with the time.

Keyboard shortcuts