TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection

Tom Sander, Hongyan Chang, Tomáš Souček, Tuan Tran, Valeriu Lacatusu +8 more
5/12/2026
cs.CRcs.CLcs.LG

No confident code implementation found for this paper.

Abstract

We introduce TextSeal, a state-of-the-art watermark for large language models. Building on Gumbel-max sampling, TextSeal introduces dual-key generation to restore output diversity, along with entropy-weighted scoring and multi-region localization for improved detection. It supports serving optimizations such as speculative decoding and multi-token prediction, and does not add any inference overhead. TextSeal strictly dominates baselines like SynthID-text in detection strength and is robust to dilution, maintaining confident localized detection even in heavily mixed human/AI documents. The scheme is theoretically distortion-free, and evaluation across reasoning benchmarks confirms that it preserves downstream performance; while a multilingual human evaluation (6000 A/B comparisons, 5 languages) shows no perceptible quality difference. Beyond its use for provenance detection, TextSeal is also ``radioactive'': its watermark signal transfers through model distillation, enabling detection of unauthorized use.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{sander2026textseal,
  title  = {TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection},
  author = {Tom Sander and Hongyan Chang and Tomáš Souček and Tuan Tran and Valeriu Lacatusu and Sylvestre-Alvise Rebuffi and Alexandre Mourachko and Surya Parimi and Christophe Ropers and Rashel Moritz and Vanessa Stark and Hady Elsahar and Pierre Fernandez},
  year   = {2026},
  eprint = {2605.12456},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2605.12456v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2605.12456.svg)](https://codeofpaper.com/paper/2605.12456)

Discussion