Learning LabExplorable explanations
← All artifacts
LLM Systems

Claude's Watermark: Hidden in Word Choice

Anthropic says Claude watermarks its writing, but there is no hidden character or tag anywhere in the text. The trick is which ordinary word gets picked at each step, nudged by a rigged coin flip that changes with every word. Step through real word-by-word generation and watch that rigging happen live, on real text, in your browser.

watermarkingllmtext-generationprovenancehashing
LiveInteractive · drag, toggle, run it
LLM Systems · Provenance

Claude's Watermark: Hidden in Word Choice

Claude writes one word at a time, the same way your phone's keyboard suggests the next word as you type. Anthropic quietly rigs that pick: at every single word, a secret formula flags about a quarter of all possible words as “lucky” for that exact moment, and Claude leans toward whichever lucky word actually fits. Read the sentence and it looks completely normal. Check it against the same secret formula afterward, and the lucky words show up far more than chance would allow. Below, you can step through the whole process yourself, one real word at a time, and watch the rigging happen live in your browser.

How the rigging actually works

The model behind this page is a bigram: a lookup table trained on real children's stories that says, for any given word, which word tends to come next and how often. That part works exactly like the autocomplete on your phone keyboard.

Before it writes the next word down, three things happen. First, take the word that was just written, mix it with a secret key, and turn that into one number, the same trick a hash map uses to turn a name into an array index.

Second, use that number to shuffle the model's entire vocabulary, all 500 words, not just the ones that make sense here, into a new order. The top quarter of that shuffle becomes this exact moment's “green list.” A different previous word gives a completely different shuffle, but the same previous word and the same key always give back the same green list.

Third, look at the handful of words the model actually thinks could come next, check which of those happen to be green, and give them a small boost before picking. Nothing is forced: a red word can still win if it is clearly the better fit, the boost just tips close calls toward green.

Watch a word get chosen

Pick a starting phrase, then press Step. Two versions grow side by side using the exact same run of random luck, one rigged, one not, so wherever they end up disagreeing, that is the rigging at work, not chance. The panel below shows exactly what happened at that step: the hash, which words were in the running, which of those landed green or red, and which one actually got picked.

Seed word

Press Step to sample the first word after the seed and see the mechanism fire.

0 / 24 words

Both tracks use the exact same random draws, so wherever they disagree, that is the rigging, not luck. Click either card above to inspect it, and keep hitting Step: the watermarked run's green share climbs well past 25%, while the plain run just hovers there.

What this means for you

The real Claude uses a full language model instead of this page's small lookup table, but checking works the exact same way: redo the shuffle at every position with the key, and see how often the actual text landed lucky.

You cannot spot it by reading; every word reads completely normal. It also survives light editing: change one or two words and the overall average barely moves, since the signal comes from many words averaged together, not any single one.

What does remove it: rewriting the whole thing in your own words, translating it, or just not using Claude to write it in the first place. Each of those replaces the rigged picks with a fresh, unrigged set of words, so the result drops back to ordinary chance.