Advanced Fingerprinting Library

Generate unique device identifiers using canvas, audio, and hardware entropy. No external dependencies, fully client-side.

🎮 Interactive Playground

1️⃣ Fluent Chaining

Chain configuration methods for clean, readable code
new Fingerprint() .length(32) .casing('uppercase') .scope('device') .canvas(true) .audio(true) .generate();

2️⃣ Quick Scope Presets

Use predefined scopes for common use cases
Fingerprint.device() .length(16) .casing('mixed') .generate();

3️⃣ Lightweight Session

Minimal fingerprint for temporary identification
Fingerprint.session() .canvas(false) .audio(false) .generate();

4️⃣ Async/Await

Full async support for modern workflows
await Fingerprint.browser() .length(64) .casing('lowercase') .generateAsync();

5️⃣ Static Quick Gen

One-liner for simple use cases
await Fingerprint.generateAsync({ length: 32, casing: 'uppercase', scope: 'device' });

6️⃣ Debug & Raw Data

Inspect individual entropy components
const fp = new Fingerprint() .scope('device') .collect(); console.log(fp.raw()); // Array of components
Click to see component count

7️⃣ Similarity Comparison

Compare fingerprints to detect changes
const fp1 = new Fingerprint().generate(); const fp2 = new Fingerprint().generate(); const similarity = fp1.compare(fp2); // 0.0 to 1.0