C2PA text guide

Can copied text contain a C2PA watermark?

Yes. C2PA 2.4 defines an exact way to carry a Content Credential inside ordinary copied text. It encodes a manifest store as a contiguous block of invisible Unicode variation selectors after a zero-width prefix.

Short answer

This checker can identify and decode the structure of a C2PA text credential, report its version and manifest size, and remove the complete embedded wrapper. It does not yet cryptographically validate the credential's signature or its binding to the visible words.

What the hidden C2PA text watermark looks like

It does not look like a readable label. The standard prefixes the payload with U+FEFF, then maps every byte of a C2PATextManifestWrapper to a Unicode variation selector. The decoded wrapper begins with the exact eight-byte identifier C2PATXT\0, followed by version 1, a four-byte manifest length, and the C2PA manifest store.

PartWhat the checker requires
PrefixOne U+FEFF immediately before the encoded sequence.
Magic bytesThe exact decoded identifier C2PATXT\0.
VersionWrapper version 1, the version defined by C2PA 2.4.
LengthThe declared manifest length must exactly match the remaining encoded bytes.
PlacementA single contiguous variation-selector block; placement away from the end is reported.

Why ordinary emoji do not become false C2PA results

Variation selectors are legitimate Unicode characters and are commonly used to control emoji and text presentation. Their presence alone is not a C2PA credential. The checker only groups them as a C2PA text watermark when the required prefix decodes to the exact C2PA magic bytes and a coherent wrapper header. Other selectors remain review-only characters.

What removal does

For a complete supported wrapper, removal deletes the U+FEFF prefix and the full declared variation-selector payload as one range. The visible words are not rewritten. A corrupted, incomplete, oversized, or unsupported-version wrapper is shown but retained, because deleting only part of it could hide evidence or damage text unexpectedly.

Detection is not cryptographic validation

Structural detection proves that the copied text contains bytes formatted as a C2PA 2.4 text wrapper. Full validation would also parse the manifest, verify its signature and trust chain, and check the c2pa.hash.data binding against NFC-normalized visible text. The official browser SDK used by this release does not currently accept text/plain, so the app reports that validation step as not performed.

Is this the Claude text watermark?

There is no evidence that the two are the same. Anthropic describes its announced Claude watermark as a model-level mark and says technical detector details are forthcoming. C2PA's method is a public, literal Unicode wrapper. This checker labels a result “C2PA text credential,” never “Claude detected.” Statistical systems such as SynthID Text also remain outside this scan.

What about Markdown, YAML, or source code?

C2PA defines a separate human-readable format for structured text. It uses fixed BEGIN C2PA MANIFEST and END C2PA MANIFEST delimiters around a URI or embedded Base64 manifest in a comment or front matter. See how structured C2PA blocks are detected and safely removed.

Primary sources