LiveThe spec is public now at worlds.stellarii.studio/spec/v1, and the verifier ships inside Worlds and passes its full test suite. A standalone, clone-and-run reference repo is still coming — the commands below show what adopting it will look like.
← All standards

WPS v1 · Live · CC BY 4.0 · MIT verifier

Worlds Provenance Sidecar

Restoring accountability to the written word, one paragraph at a time. An open standard for per-paragraph cryptographic provenance. Verifiable offline. No chain. SHA-256 + Ed25519 + an RFC 6962-style Merkle log.

AI made authorship illegible

In a 2026 experiment, novelist Vauhini Vara fed her own books to an AI and asked it to write in her voice. Her closest readers — including a friend of three decades — could not reliably distinguish the imitation from her own prose. Stylistic detection alone is finished.

A few months later, the novel Shy Girl was pulled by its publisher amid AI-writing allegations. The author's defense was that maybe a third party did it — unprovable in either direction. There was no signature, no timestamp, no artifact anyone could point at.

Watermarking AI output is one half of the answer. Watermarking human output — at the paragraph level, signed by the author, verifiable offline — is the other half.

By the numbers

Climate-credible provenance

ApproachEnergy / 1M recordsCO₂e / 1M recordsOffline verify
Bitcoin anchoring~1.5 GWh~900 tNo
Ethereum PoS~10 kWh~6 kgNo
WPS (Merkle log, this spec)~5 kWh~3 kgYes

Anchored on the methodology in Climate-Aware Text Provenance (CoinLaw 2026 Bitcoin energy data; Ethereum.org post-Merge estimates; CT-log throughput benchmarks). Conservative midpoints; full methodology footnoted in the spec.

vs Bitcoin

~300,000×

more energy-efficient than chain-anchored provenance.

vs Ethereum PoS

~2×

more efficient — and no chain, no RPC node, no external dependency.

Per book

< 1 email

A book's worth of provenance verifies in milliseconds — less energy than sending an email.

What the spec looks like

A manuscript exports alongside a manuscript.provenance.json sidecar. Each paragraph is a record. Each record is signed by the author's Ed25519 key, hashed into a Merkle leaf, and bound to the manuscript root by a Worlds audit signature.

{
  "spec_version": "1.0.0-phase-b",
  "manuscript_id": "01HZX...UUID",
  "audit_root": "9f2d...c1a8",
  "audit_signature": "5b7e...a40c",
  "author_keys": [
    {
      "fingerprint_hex": "a7fa...5664",
      "public_key_hex": "3c9b...77d1"
    }
  ],
  "records": [
    {
      "unit_id": "para-001",
      "author_type": "HUMAN-ORIGINAL",
      "model": null,
      "text_hash_hex": "1c4a...0e9d",
      "author_key_fingerprint_hex": "a7fa...5664",
      "parent_unit_id": null,
      "created_at_iso": "2026-05-09T14:23:11.000Z",
      "signature_hex": "51e5...af01",
      "merkle_proof": [ /* ... */ ]
    }
  ]
}

Full schema, canonical encoding rules, and 24 byte-equality test vectors are in the published spec.

How to adopt

You can verify a Worlds-signed manuscript right now at worlds.stellarii.studio — no install required. A standalone reference-verifier repo is coming for anyone who wants to run it locally or embed it in their own tooling; here's what that will look like.

  1. Install the reference verifier. Node 22+ required for Web Crypto Ed25519.
    cd tools/verify-cli
    npm install
  2. Round-trip a fresh demo sidecar against the full eight-step verifier pipeline.
    npm run verify -- --demo
  3. Run the 24-check conformance fixture against your implementation — every intermediate byte is pinned.
    npm run verify -- --vectors ../../docs/spec/v1/test-vectors.json
  4. Verify a real manuscript with the audit key pinned out of band.
    npm run verify -- <manuscript.txt> <sidecar.provenance.json> --audit-key <hex>

How WPS relates to existing standards

  • vs C2PA: C2PA wraps the whole manuscript with publisher-level metadata. WPS signs each paragraph by the named human author. The two compose — C2PA on the export, WPS on the body. A C2PA WG extension for per-paragraph human signing is an open question we're tracking.
  • vs Project Origin: BBC / NYT / CBC / Microsoft sign at the article level, by the publisher. WPS signs at the paragraph level, by the author.
  • vs Nostr: Nostr signs each event as a single atom — a post is one signature. WPS subdivides the post and signs each paragraph independently, so a single document can carry mixed human and AI authorship with paragraph-level granularity.
  • vs SynthID (Google): SynthID watermarks AI output. WPS attests human output. They solve opposite halves of the same problem; both will be needed.

Open implementations welcome

The cryptography is the trust. The reference verifier is one of N validators. Anyone can implement the spec against the canonical fixture and reach the same answer — the conformance procedure is in §13 of the published spec.