Skip to content

Signal · Blocklist archaeology

The censor wrote the list itself.

Most censorship measurement is inference. You watch what disappears and reason backwards about what someone objected to. This is the other kind of evidence: the trigger list shipped inside the client, differenced version against version, so every keyword that appears is a decision somebody made and then released to users. The corpus belongs to the Citizen Lab. Palimpsest publishes the counts, not the list.

The reading

Loading the reading.

Loading scope.

Source corpus and attribution

The Citizen Lab, University of Toronto

chat-censorship corpus. github.com/citizenlab/chat-censorship

Loading the attribution string carried by the reading.

Licence status

Loading the licence note carried by the reading.

Palimpsest republishes derived counts. The corpus files are read, hashed and differenced, and are not redistributed from this project.

Additions by client version

A diff, not a guess.

Two consecutive client blocklists are differenced. Every keyword present in the later list and absent from the earlier one counts as an addition. The ordering of the versions is exact. The dating is not: a list is dated by when its file first entered the public archive, which is an upper bound on when the directive shipped.

Application

LINE chat client

  1. Loading the per-version timeline.

Loading the dating caveat.

Severity distribution

Loading the severity distribution.

Whose judgement this is. Severity is assigned by Palimpsest, by a lexical rule applied to the term itself. It is not a Citizen Lab field, and nothing about it should be attributed to them. The reading file publishes the split but not the rule, so the split is reported here and nothing is read into what a class means. The rule is in the open source collector.

What this page does not publish

The keyword strings. The reading file carries a bounded evidence sample of the additions and a set of proposed gazetteer terms. Neither is rendered here, and this page offers no search across them.

The corpus already exists in one place, with an institution's name attached to it and a citation that leads back to the research it came from. A second, more browsable copy would add nothing a researcher needs, and a blocklist is as useful to whoever wants to enforce it as to whoever wants to study it. There is no licence on the upstream repository, so Palimpsest treats it as all rights reserved and publishes counts only.

Loading the count of what is held back.

Researchers who need the terms should take them from the Citizen Lab repository, which is linked above, and cite the Citizen Lab.

Gazetteer proposals

Loading the proposal count.

Withheld by the runner

Loading the withheld fields.

Evidence

Files read, hashed and differenced

Blocklist file First seen in archive Dating basis sha256
Loading provenance.

Run

Raw reading (JSON) History (JSONL)

What this is part of

Palimpsest is a censorship observatory and a verifiable AI eval registry, developed in the open as a public good. It is MIT licensed, it has never been a commercial product, and it does not monetise the people or the topics it observes. It watches the censor, never the censored: public reads only, no person inside is ever asked to act, and no state-aligned model is ever the analyst. Every finding ships with the raw evidence that produced it.

This signal costs almost nothing to run and produces a citable, dated record of platform side censorship that does not depend on anyone being at risk. Funding keeps the collectors, the archive and the anchoring running.