Skip to main content
Encypher Logo

Plain text and data content provenance

A signed C2PA manifestC2PA manifest: The signed label itself: a small package inside a file that records who signed it, what they declared and how to check it. sits inside the text itself, in characters readers do not see. It shows who signed the file and whether it changed, and anyone can check it free.

A file holds a signed label in four layers: who signed it, what they declared including AI use, a fingerprint of the content, and a signature that seals them together.
The label sits inside the file. It names the signer, carries what they declared, fingerprints the content, and is sealed by a signature.
Formats
4 formats that carry the label the same way.
Where the label sits
Inside the text itself, in characters readers do not see.
Standard
C2PAC2PA: The Coalition for Content Provenance and Authenticity: the group that publishes the open standard for content labels., the open standard for content labels.
Made for
Articles and posts, Data exports, Spreadsheet tables, APIAPI: Application programming interface: a way for one program to ask another to do a job, such as sign a file. responses

What Encypher supports for plain text and data files

  • SignSupported

    Encypher signs all 4 formats on this page, under C2PA 2.4.

  • CheckSupported

    Free in the browser checker, with no account.

  • Formal conformanceNot yet

    None is in our formal conformance record. That record is a narrower test than signing and checking.

How to check plain text and data files

Four of the five answers a provenance check can give: Verified, Modified after signing, Issuer not recognized, and No provenance found. The fifth is Could not verify.
A check reports who signed and whether the content changed. It never says whether the content is true.
  1. Open the free checker.

    It runs in your browser. No account needed.

    Open the checker
  2. Paste the text or add the file.

    Drop it in or pick it from your device.

  3. Read the result.

    It shows who signed and what they declared, such as AI use. It also shows if the file changed.

The 4 formats this guide covers

Each one carries the label the same way. Each is named with its media typeMIME type: The standard name for a file format, such as image/jpeg or audio/wav, that software uses to decide how to read a file..

plain text and data files: what Encypher supports, live from our API.
FormatFile endingSignCheckMedia type
Plain text.txtYesYestext/plain
CSV.csvYesYestext/csv
TSV.tsvYesYestext/tab-separated-values
JSON.jsonYesYesapplication/json

Where the label sits in plain text and data files

Plain text, CSV, TSV and JSON have no place for notes or comments. So the label rides in the characters, as in any copied paragraph.

Readers see only the words of a paragraph: The town pool opens Monday at noon. Lifeguards are on duty until 6 p.m. A faint gold stitch under the lines stands for the signed label carried unseen inside the words. A checker reads it back: signed by Town Daily, made with AI: no, unchanged since signing.
The signed label travels inside the words without changing how they look. Anyone can check who signed, what they declared about AI, and whether the text changed.

Plain text, CSV and TSV tables and JSON data carry the label inside the text itself, so it copies with the words and values.

What keeps the label on plain text and data files

Signed text copied into most apps and sites keeps its label; some apps strip the invisible characters and the check then finds no label; editing the words breaks the seal and the check shows the change.
Copy and paste keeps the label in most apps. Some apps strip it, and any edit shows up when the text is checked.
  • Copying the text as it is keeps the label.
  • Some apps strip hidden characters. Then the check finds no label.
  • A tool that rewrites the file, such as a spreadsheet saving a new CSV, writes new characters without the label. Sign the file you publish.

For engineers

Show the technical detail
Embedding
C2PA unstructured text embedding (C2PA 2.4 Section A.8). The declared media type is recorded in the claim as dc:format.
Signing versions
C2PA 2.4, per format in the live matrix
Verification
Any version. The checker reads any C2PA manifest it can parse, and the report names the version it checked against.
How each of the 4 formats signs through the API.
FormatMedia typeSign with
Plain texttext/plainPOST /api/v1/sign
CSVtext/csvPOST /api/v1/sign
TSVtext/tab-separated-valuesPOST /api/v1/sign
JSONapplication/jsonPOST /api/v1/sign
# The signed text comes back in data.document.signed_text.
curl -X POST https://api.encypher.com/api/v1/sign \
  -H "Authorization: Bearer $ENCYPHER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"text": "<file contents>", "options": {"content_mime_type": "text/plain"}}'

Support rows come from the live API capability matrix. Full reference: C2PA media types.

Create. Mark. Endure.

Sign your first plain text and data file free. Checking stays free for everyone.