Catalogue · Section 06 · Entry
fingerprintjs2 (Valve)
WITHDRAWN
fingerprintjs2 (Valve) is a project catalogued in section 06 of this register. The v2-era repository. The URL now redirects to the current project, which is the maintainer's own statement about where the work went. It reads WITHDRAWN, which here means the address itself answered with a permanent redirect: the maintainer said where the work went, and this register did not have to guess.
https://github.com/Valve/fingerprintjs2
The fields this state was derived from
| Field | Value at this printing |
|---|---|
| pushed_at | — |
| archived | false |
| latest_release | — |
| license.spdx_id | MIT |
| stargazers_count | — |
| http_status | 301 |
| fetched_at | 2026-08-14T09:12:00Z |
| endpoint | GET https://api.github.com/repos/Valve/fingerprintjs2 |
| rubric_edition | 2nd, in force since 2026-08-14 |
A live read does not change what is printed above it. The site records that you ran it; what GitHub returned is not kept. The printed state moves only when the register is swept and a new printing is issued. raw JSON
Why it reads WITHDRAWN
The URL answered 301 to https://github.com/fingerprintjs/fingerprintjs. The source moved the entry itself.
The source itself says this moved.
Under the superseded first edition
UNSTATED
WITHDRAWN
pushed_at was not captured, and the first edition had no fallback clause.
The rubric in force · The superseded first edition · Errata leaf
Curator's annotation
A 301 from the source itself is the strongest liveness field there is: it is the maintainer telling you the entry moved. Nothing here is inferred. — ED.
What fingerprintjs2 (Valve) actually does
The v2-era repository, still linked from a great deal of older writing and still the version some deployed code depends on.
What fingerprintjs2 (Valve)'s maintenance signals mean
WITHDRAWN is the one state in this rubric that is not a judgment about time at all. The register requested this entry's address and got back a permanent redirect to https://github.com/fingerprintjs/fingerprintjs. That response is the maintainer's own statement about where the work moved, and a status code is a much stronger piece of evidence than a stale push date, which is why this clause is tested before any date rule.
Nothing is inferred here and nothing is deleted. The entry keeps its name, its description, its licence and its history, because a reader who arrives holding a link to the old address needs to be told what happened to it — and a register that quietly removes moved entries is a register you cannot audit against its own past printings.
No release was captured for this entry, which this register records as unknown rather than as none. The distinction matters more than it looks: a project with no tags and a project whose tags the sweep failed to read produce the same blank cell, and printing them as the same fact would be the register asserting something it has not measured.
Where fingerprintjs2 (Valve) sits in this catalogue
fingerprintjs2 (Valve) is filed in section 06, fingerprinting libraries, whose scope is this: The collectors themselves — the code that reads a browser. Read these to know what is being asked of you. An entry sits in exactly one section here. Where a project could defensibly go in two, it is placed where a reader would look for it first rather than where it fits most tidily, and that is an editorial decision rather than a measured one.
Filed beside it in the same section: FingerprintJS (ACTIVE), BotD (ACTIVE), ThumbmarkJS (ACTIVE). Comparing an entry against its own section-mates is more informative than comparing it against the catalogue as a whole, because everything in a section is answering roughly the same question and the differences left over are the ones that matter.
It is published under MIT, alongside the rest of the MIT entries in this register, and it sits with everything else currently marked WITHDRAWN. Read those two facets together: a permissively licensed project that stopped shipping is not a safer dependency than a copyleft one that did not, and a filter on one axis alone will tell you the wrong thing.
This register records that FingerprintJS supersedes fingerprintjs2 (Valve). Supersession here is declared, never inferred: it is printed only where a project or its author says so, because "newer" and "replaces" are not the same relation and treating them as one is how a list starts recommending rewrites nobody asked for.
The fingerprintjs2 (Valve) relations page sets every declared edge side by side on licence, push date, release cadence and derived state.
What to settle before you adopt fingerprintjs2 (Valve)
Its URL now answers with a permanent redirect to the current project, and that redirect is the maintainer's own statement about where the work went — which is exactly what the WITHDRAWN state records. Nothing here was inferred from silence.
See also
| Relation | Entry | State | Last push |
|---|---|---|---|
| superseded by | FingerprintJS | ACTIVE | 2026-08-09 |
Full comparison of fingerprintjs2 (Valve) and its alternatives
Questions readers ask about fingerprintjs2 (Valve)
Answered from this entry's own fields, at the field check printed above and at no other instant.
Is fingerprintjs2 (Valve) still maintained?
At the 2026-08-14 field check this register read the release date as — and the archive flag as false, and the rubric in force turned those into WITHDRAWN. The source itself says this moved. The clause that fired is printed on this page, so you can check the arithmetic rather than take the word.
What replaced fingerprintjs2 (Valve)?
FingerprintJS, and only because that succession is declared rather than guessed. This register never infers that one project replaces another from dates alone. The comparison table prints both on the same fields.
What licence is fingerprintjs2 (Valve) under?
MIT, read from the repository's own licence metadata at the field check rather than from a README badge. Other MIT entries are grouped together, and the no-licence-declared group is worth a look before you assume any project here carries a grant.
Why did the state recorded for fingerprintjs2 (Valve) change?
Because the rules changed, not because the world did. The same field data reads UNSTATED under the superseded first edition and WITHDRAWN under the edition in force. Both derivations are printed on this page, and the entry appears on this printing's errata leaf with the superseded value struck rather than deleted.
A collector is the clearest possible statement of what the other side is asking your browser, which makes this section the best place to decide what you actually need to answer. Donut Browser answers it in the engine rather than in the page: the Wayfern Chromium fork applies overrides over CDP, so a library reading a value gets it from the browser instead of from a script that patched the getter a moment earlier.
curl -fsSL https://donutbrowser.com/install.sh | sh
macOS (DMG, Homebrew cask donut), Windows (installer and portable), Linux (deb, rpm, AppImage, with APT and RPM repositories at repo.donutbrowser.com), and a Nix flake. Desktop only — there is no mobile build target. Ten shipped languages. Source, AGPL-3.0 · its own entry, judged by the same rubric · the keepers' disclosure.