There is no hidden text

Artificial intelligence
Language models
Watermarking
Interactive
An interactive visual essay about how statistical watermarks can hide in the choices a language model makes.
Author

Kavit Tolia

Published

August 16, 2026

A watermark sounds like something added to a piece of text.

A hidden character. A tag. Some invisible metadata tucked between the words.

But statistical text watermarking can work without adding any of those things.

The text can look completely ordinary.

So where is the watermark?

Not in a secret character. In the pattern of choices that produced the text.

Anthropic recently announced that future Claude models will carry a statistical watermark.

Claude is the example that motivated this essay, but the idea is broader. Statistical watermarking can be applied to other language models too.

The interesting part is not simply that the text is marked.

It is how.

A language model is constantly making choices

A language model writes one token at a time.

At each step, there is usually not one uniquely correct continuation. Several words may fit.

Consider a deliberately simple example:

The weather today was cold and …

The exact probabilities above are only illustrative.

The important point is the shape of the problem: some continuations are plausible, some are very unlikely, and several plausible choices may say essentially the same thing.

A watermark does not need to force the model to choose nonsense like sugary.

It can operate in the low-stakes choices between reasonable alternatives.

The watermark lives in the randomness

Normally, a sampling procedure turns those next-token probabilities into one actual choice.

For the toy example below, imagine there are two equally sensible groups of words. A secret rule determines which group is favoured at each step.

The reader never sees that rule.

The highlighted choices are a toy illustration, not Anthropic’s implementation. Real schemes such as SynthID-Text are more sophisticated. The useful intuition is that the generation process can structure many ordinary sampling decisions so that they leave a detectable statistical pattern.

Nothing strange has to appear in any single sentence.

That is what makes the idea easy to miss.

One choice proves almost nothing

Suppose you knew the watermarking rule and inspected one word.

Even if that word happened to agree with the rule, it would tell you almost nothing.

An unwatermarked model could have made exactly the same choice by chance.

But now imagine seeing many such choices.

A useful way to quantify the evidence is to ask:

If there were no watermark, how surprising would this many agreements be?

In this toy example, an unwatermarked sequence would agree with the hidden rule about half the time.

If we observe \(k\) agreements across \(n\) choices, we can calculate:

\[ z = \frac{k - 0.5n}{\sqrt{0.25n}} \]

A larger positive \(z\)-score means the observed sequence is increasingly difficult to explain as random 50:50 agreement.

But there is an important subtlety.

The observed evidence does not have to increase every time we add another word.

The next choice might disagree with the watermarking rule.

So the evidence can wobble.

What matters is the overall trend.

The solid line is the evidence from this particular toy sequence.

The dashed line is the expected trend if choices agree with the watermarking rule 72% of the time.

The solid line can move backwards.

The dashed line does not.

This distinction matters because statistical evidence is noisy.

More text gives the detector more information, but it does not guarantee that every additional token increases the score.

The expected signal grows roughly with the square root of the number of usable choices:

\[ z_{\mathrm{expected}} \propto \sqrt{n} \]

So longer passages generally provide stronger evidence, but the relationship is not simply “twice as much text means twice as much evidence”.

This is the central idea:

The watermark does not need to be visible in any one word. Evidence emerges across many choices.

The detector sees something different from the reader

A reader sees prose.

A detector with the right key can ask a different question:

Is this sequence of choices unusually consistent with the watermarking rule?

This is different from trying to recognise “AI style”.

A generic AI detector might look for linguistic patterns associated with language models.

A watermark detector instead tests for a deliberately planted statistical signal produced by a particular generation procedure.

The text is public. The key does not have to be.

This creates a slightly strange situation.

The watermarked text can be completely public.

Anyone can copy it.

Anyone can inspect every character.

But that does not mean everyone can verify the watermark.

That distinction is easy to overlook.

The watermark is present in text that everyone can see, but reliable verification can still depend on access to a private key, detector, or verification service.

For Claude, Anthropic controls the watermarking mechanism and the corresponding verification capability.

That means possessing a paragraph generated by Claude does not automatically give us the ability to independently test Anthropic’s watermark.

Anthropic can make verification available through a detector or API without revealing the underlying secret key.

This creates an important separation:

The evidence can be public while the ability to interpret it remains controlled.

Our experiments later in this essay will be different.

We will control both sides.

We will generate text using an open watermarking implementation, and we will also have access to the corresponding detector.

That lets us inspect the mechanism rather than treating verification as a black box.

Can you erase it?

The watermark is distributed across many token choices, so changing one word should not make it disappear.

But changing enough of the text eventually removes information about the original generation process.

The experiment below uses the open SynthID-style watermark we created for this essay. It does not test for Claude’s watermark.

The first time this interactive loads, your browser downloads the GPT-2 tokenizer from Hugging Face. It does not download or run GPT-2 itself. Detection happens locally in your browser after that.

Why does the passage start and end abruptly?
This is the model’s generated continuation rather than a polished piece of prose. It begins after a prompt that is not shown here and stops when the generation reaches its token limit. Keeping the original output unchanged means the detector, reference curve and editing experiment are all measuring the same text.

Try making a few edits yourself, or use Apply 20 light edits to see how a controlled rewrite affects the watermark evidence.

The number above is the output of our demonstration detector. It is not a calibrated probability that an AI wrote the passage.

What matters is how the evidence changes as you disturb the token sequence.

The dashed curve is the controlled word-replacement experiment from the notebook. The circle is your current edit. Your path does not have to follow the dashed curve because different edits disturb different token contexts.

The watermark behaves less like a switch and more like accumulated evidence.

A few edits can leave most of the signal intact. As more of the original token sequence is replaced, the detector eventually loses the pattern it was looking for.

Not all text leaves the same room for a watermark

A watermark needs choices.

Free-form prose gives a model many opportunities to choose between reasonable continuations.

Other tasks can be much more constrained.

Consider four broad cases:

These numbers are illustrative, not measured quantities.

The point is conceptual.

If the model has very little freedom about what comes next, there may be fewer low-stakes choices available for a watermark to use.

This gives us another experiment to run later:

What happens to detectability as we constrain the model’s freedom?

We can compare different types of text while controlling passage length and watermarking method.

That gives us a way to separate two effects:

  1. how much text the detector receives;
  2. how many useful watermark-bearing decisions were available during generation.

So can this page tell whether Claude wrote something?

No.

And that is an important distinction.

Claude motivated this essay, but the interactive detector we build here will know the key used by our own demonstration watermark.

It will not know Anthropic’s key.

So if you paste arbitrary text into this page, it cannot truthfully tell you whether Claude generated it.

It can only test for a watermark whose verification rule it actually knows.

That is very different from saying:

“This text looks like Claude.”

What a watermark can (and cannot) tell us

A statistical watermark is evidence, not a visible stamp.

Its strength can depend on:

  • how much text there is;
  • how many watermark-bearing choices were available;
  • what happened to the text afterwards;
  • which watermarking scheme was used;
  • whether the verifier has access to the corresponding detection mechanism.

Even a positive detection does not necessarily settle conventional questions of authorship.

Claude might have generated an entire passage.

It might have heavily rewritten something written by a person.

Or it might have contributed only part of a larger document.

So the useful question is not simply:

Is this AI-generated?

It is closer to:

How much statistical evidence is there that this text passed through a particular generation process?

That is a much stranger kind of watermark.

There is no hidden text to find.

The evidence is distributed through the choices that created it.