Catalogue · Section 07 · Entry
JA4+ explainer
ACTIVE
JA4+ explainer is a documentation catalogued in section 07 of this register. The authors' own explanation of what each JA4 component encodes. At the last field check its address answered, which is the whole of what ACTIVE means for an entry with no repository behind it.
https://blog.foxio.io/ja4%2B-network-fingerprinting
The fields this state was derived from
| Field | Value at this printing |
|---|---|
| http_status | 200 |
| fetched_at | 2026-08-14T09:12:00Z |
| endpoint | HEAD https://blog.foxio.io/ja4%2B-network-fingerprinting |
| rubric_edition | 2nd, in force since 2026-08-14 |
This entry has no repository, so there is no API field a browser can re-read across origins. Its state comes from the register's own link check, printed above with the instant it was made.
Why it reads ACTIVE
No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Shipping. Safe to build on today.
Under the superseded first edition
UNSTATED
ACTIVE
No repository. The first edition had no link liveness sweep and therefore no field to read here.
The rubric in force · The superseded first edition · Errata leaf
What JA4+ explainer actually does
The authors' own component-by-component explanation of what each part of a JA4 fingerprint encodes, which is the document that turns the format from a string into something you can reason about.
What can and cannot be measured about JA4+ explainer
This entry has no repository, so none of the usual repository fields exist for it — no push date, no release tag, no archive flag, no licence identifier. Its state comes from one measurement only: the register requested the address and recorded what came back. Anything in the range 200 to 399 makes a non-repository entry ACTIVE, and that clause is the one the first edition of the rubric did not have at all, which is why documentation entries carried no state under it.
Read that for exactly what it is. It says the thing is reachable. It does not say the documentation matches the shipped product, because no HTTP status can carry that. Where a stronger signal exists — a repository, a version, a dated revision — this register prefers it, and where one does not, it prints the weaker signal and names it as weak rather than dressing it up.
Where JA4+ explainer sits in this catalogue
JA4+ explainer is filed in section 07, network, tls & http fingerprint tooling, whose scope is this: The layer below JavaScript: TLS ClientHello and HTTP/2 fingerprinting, impersonating clients, and the passive tooling that reads them. 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: azuretls-client (SEMI), JA4+ (ACTIVE), JA3 (Salesforce) (ARCHIVED). 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.
There is no licence field, because there is no source to licence — this is a documentation rather than a code repository. It is grouped instead with every other entry the rubric marks ACTIVE, which is the axis that actually distinguishes entries of this kind from one another.
What to settle before you adopt JA4+ explainer
Read it alongside the implementation rather than instead of it, since the spec and the code have both moved since the format was announced. It is written by the format's owners, which makes it authoritative about intent.
Questions readers ask about JA4+ explainer
Answered from this entry's own fields, at the field check printed above and at no other instant.
Is JA4+ explainer still maintained?
JA4+ explainer has no repository, so this register cannot answer that from a commit history. What it can do is request the address and record the result, which is what produced ACTIVE. Shipping. Safe to build on today.
What else in this registry does the job JA4+ explainer does?
No substitution edge is declared for this entry, which means nobody has stated one rather than that none exists. The nearest comparison available is the rest of section 07, where everything is answering roughly the same question on the same printed fields.
What licence is JA4+ explainer under?
The question does not apply — JA4+ explainer is a documentation rather than source code, so this register records the licence field as not applicable rather than inventing one. Terms of use, where they exist, are the publisher's to state at the address above.
Why did the state recorded for JA4+ explainer change?
Because the rules changed, not because the world did. The same field data reads UNSTATED under the superseded first edition and ACTIVE 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.
Section 07 is the half of a fingerprint that JavaScript cannot reach, and a browser-shaped page surface over a tool-shaped handshake is a contradiction that no amount of navigator patching fixes. Donut Browser is a real browser rather than an impersonating client, which resolves that layer by not having the problem — and it adds profile-level proxy handling with a launch gate that checks the exit's geography against the profile before anything starts.
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.