Navigate:
All Reposfingerprintjs
~$FINGER0.1%

FingerprintJS: Open-source browser fingerprinting library

Client-side JavaScript library for browser fingerprinting and visitor identification.

LIVE RANKINGS • 06:52 AM • STEADY
OVERALL
#111
5
SECURITY
#11
3
30 DAY RANKING TREND
ovr#111
·Secur#11
STARS
26.2K
FORKS
2.5K
DOWNLOADS
1.3K
7D STARS
+27
7D FORKS
+2
See Repo:
Share:

Learn more about fingerprintjs

FingerprintJS is a client-side JavaScript library that generates unique browser fingerprints by collecting and analyzing device and browser characteristics. The library aggregates signals from canvas rendering, audio processing, WebGL capabilities, installed fonts, screen properties, and various browser APIs to create a composite identifier. It processes these collected attributes through a hashing algorithm to produce a consistent visitor identifier that remains stable across page visits even without cookies. The fingerprinting technique operates entirely in the browser without requiring server-side processing, making it suitable for integration into web applications as a lightweight dependency. The library balances identification accuracy against the inherent variability of browser environments, where software updates or configuration changes can affect fingerprint stability.


1

Client-Side Fingerprinting

Fingerprints generate entirely in-browser using JavaScript with no server dependencies. Consistent identifiers persist across incognito modes and after clearing browser data, simplifying deployment for visitor tracking.

2

Open-Source MIT License

Full source code available on GitHub for inspection and modification. Integrate via NPM or CDN, or examine implementation details directly to understand fingerprinting methods.

3

Simplicity Over Accuracy

Uses only browser attributes without server-side analysis of IP addresses or behavioral patterns. Lower identification accuracy than commercial solutions, but enables zero-infrastructure deployment for basic visitor identification.


import FingerprintJS from '@fingerprintjs/fingerprintjs';

const fp = await FingerprintJS.load();
const result = await fp.get();

const visitorId = result.visitorId;
console.log('Visitor ID:', visitorId);

vv5.0.1

Documentation-only patch; no code changes or breaking behavior.

  • Update internal references if you maintain forks or documentation pointing to v4 examples.
  • No action required for runtime deployments; library behavior unchanged from v5.0.0.
vv5.0.0

Breaking: TypeScript target raised from ES5 to ES2018; verify runtime compatibility before upgrading.

  • Verify your runtime supports ES2018 features (async/await, object spread) before deploying this version.
  • License changed from BUSL-1.1 to MIT, removing commercial-use restrictions and enabling broader adoption.
vv4.6.2

Fixes edge-case crash when AudioBaseLatency component encounters Infinity values.

  • Update to prevent runtime errors in audio fingerprinting on devices returning Infinity latency.
  • Release notes do not specify breaking changes or new requirements.


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers