Volver al ranking

thumbmarkjs/thumbmarkjs

TypeScriptthumbmarkjs.com

A free, open-source javascript fingerprinting library

fingerprintfingerprintingaudio-fingerprintingbot-detectionbrowserbrowser-fingerprintbrowser-fingerprintingcanvas-fingerprintingdetectionfraud-detectionidentificationjavascript
Crecimiento de estrellas
Estrellas
1.1k
Forks
92
Crecimiento semanal
Issues
0
5001k
dic 2023oct 2024sept 2025jul 2026
Artefactosnpmnpm install thumbmarkjs
README
ThumbmarkJS

NPM Version NPM Downloads jsDelivr hits License: MIT

ThumbmarkJS is a free, open-source JavaScript browser fingerprinting library. Use it to identify returning visitors, detect fraud and bots, and more — all client-side, with no backend required.

MIT-licensed and commercially usable, it is used on 60,000+ websites, generating over a billion fingerprints every month.

Try it now

Visit the live demo → to see your browser's fingerprint and the individual components that make it up.

Or paste this into your browser's developer console to get your fingerprint hash and component breakdown directly:

import('https://cdn.jsdelivr.net/npm/@thumbmarkjs/thumbmarkjs/dist/thumbmark.umd.js')
  .then(() => {
    const tm = new ThumbmarkJS.Thumbmark();
    tm.get().then((res) => console.log(res));
  })

Performance

The client library achieves ~80% uniqueness across general browser populations. Mac/Safari users can show higher collision rates or higher noise depending on the audience.

Need higher accuracy? Try the ThumbmarkJS API

The open-source library is great for many use cases, but if you need production-grade accuracy for fraud prevention or user identification, the ThumbmarkJS API takes it significantly further. A free tier is available.

The API combines the client-side signals with server-side analysis — including TLS handshake details, HTTP headers, and connection-level data — to produce fingerprints with over 99% uniqueness. It also adds smart signals: bot detection, VPN and TOR detection, datacenter traffic identification, and a threat level score per visitor.

Learn more at thumbmarkjs.com →

Installation

NPM

npm install @thumbmarkjs/thumbmarkjs

⚠️ ThumbmarkJS runs in the browser. It requires browser APIs to compute fingerprint components and cannot run server-side.

See the NPM usage guide →

CDN (jsDelivr)

Transpiled bundles are available on jsDelivr:

Format URL
UMD https://cdn.jsdelivr.net/npm/@thumbmarkjs/thumbmarkjs/dist/thumbmark.umd.js
CommonJS https://cdn.jsdelivr.net/npm/@thumbmarkjs/thumbmarkjs/dist/thumbmark.cjs.js
ESM https://cdn.jsdelivr.net/npm/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js

Documentation

Full documentation at docs.thumbmarkjs.com — including installation, configuration, integrations, and the API reference.

Configuration

Options are passed to the Thumbmark constructor:

const tm = new ThumbmarkJS.Thumbmark({
  option_key: option_value
})
Option Type Default Description
api_key string API key from thumbmarkjs.com. Enables server-side signals and visitorId.
exclude string[] Components to exclude from the fingerprint hash. Excluding a top-level component also improves performance.
include string[] Only include these components. exclude still applies.
permissions_to_check string[] Limit which browser permissions are checked. Permissions are the slowest component to resolve.
timeout integer 5000 Component timeout in milliseconds.
logging boolean true At most 0.01% of runs collect anonymous logs to improve the library. Has no effect on users.
performance boolean false When true, includes per-component resolution time in milliseconds.
stabilize string[] ['private', 'iframe'] Preset exclusion list for stability across private browsing and iframes.
metadata varies Passed to webhooks. Does not affect the fingerprint.

See the configuration reference →

Integrations

React, Vue, Angular, and Preact integration plugins are available. See the integrations docs →

Fingerprint components

ThumbmarkJS combines multiple browser fingerprinting techniques to maximise uniqueness. The following signals are collected client-side:

  • Audio fingerprinting
  • Canvas fingerprinting
  • WebGL fingerprinting and GPU info
  • Available fonts and rendering behaviour
  • Hardware details
  • Browser languages and timezone
  • Math precision characteristics
  • Browser permissions
  • Installed plugins
  • Screen details and media queries
  • Speech synthesis voices
  • System and browser details
  • WebRTC fingerprinting

The following are available via the API only:

  • TLS handshake details
  • HTTP headers
  • Connection and IP details

See the full components reference →

Custom components

Add your own signals to the fingerprint with includeComponent(key, fn):

tm.includeComponent('my_signal', () => 'custom_value');

The function can return a string, number, or object. See the custom components docs →

Technical details

The library is intentionally simple to build, extend, and audit. See technical_details.md for an overview of the architecture.

Using ThumbmarkJS?

We'd love to hear about your use case. Share your experience →

Community & support

Repositorios relacionados
CloakHQ/CloakBrowser

Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches. 30/30 tests passed.

PythonPyPIMIT Licenseanti-detectbot-detection
cloakbrowser.dev
28.9k2.3k
fingerprintjs/fingerprintjs

The most advanced free and open-source browser fingerprinting library

TypeScriptnpmMIT Licensejavascriptdetection
fingerprint.com/github/
27.9k2.6k
beemdevelopment/Aegis

A free, secure and open source app for Android to manage your 2-step verification tokens.

JavaMavenGNU General Public License v3.0otptotp
getaegis.app
12.8k558
projectdiscovery/nuclei-templates

Community curated list of templates for the nuclei engine to find security vulnerabilities.

JavaScriptnpmMIT Licensenuclei-templatesnuclei
github.com/projectdiscovery/nuclei
12.7k3.6k
daijro/camoufox

🦊 Anti-detect browser

C++Mozilla Public License 2.0antidetectantidetect-browser
camoufox.com
10.3k871
jonasstrehle/supercookie

⚠️ Browser fingerprinting via favicon!

HTMLMIT Licensefingerprintfavicon
supercookie.me
7.4k367
Kunzisoft/KeePassDX

Lightweight vault and password manager for Android, KeePassDX allows editing encrypted data in a single file in KeePass format and fill in the forms in a secure way.

KotlinGNU General Public License v3.0keepassandroid
keepassdx.com
7k384
EnableSecurity/wafw00f

WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.

PythonPyPIBSD 3-Clause "New" or "Revised" Licensewaffingerprint
enablesecurity.com
6.5k1.1k
sensepost/gowitness

🔍 gowitness - a golang, web screenshot utility using Chrome Headless

GoGo ModulesGNU General Public License v3.0chromeheadless
4.4k437
lcvvvv/kscan

Kscan是一款纯go开发的全方位扫描器,具备端口扫描、协议检测、指纹识别,暴力破解等功能。支持协议1200+,协议指纹10000+,应用指纹20000+,暴力破解协议10余种。

GoGo ModulesGNU General Public License v3.0redteamscanner
4.3k549
sentient-agi/OML-1.0-Fingerprinting

OML 1.0 via Fingerprinting: Open, Monetizable, and Loyal AI

PythonPyPIApache License 2.0omlfine-tuning
3.5k233
motiful/cc-gateway

AI API identity gateway — reverse proxy that normalizes device fingerprints and telemetry for privacy-preserving API proxying

TypeScriptnpmMIT Licenseanthropicapi-gateway
3k505