Powerful Device Fingerprinting Made Simple

A lightweight, privacy-focused browser fingerprinting library that generates consistent device identifiers across sessions

Try it now

Your browser unique fingerprint:

npm i dprintjs

Features

Everything you need for reliable device fingerprinting in a tiny package

Privacy-Focused Identification

Create unique device identifiers without collecting personally identifiable information

Consistent Identifiers

Generate reliable fingerprints that remain consistent for the same device across sessions

Multiple Formats

Generate short (8 chars) or long (64 chars) fingerprints depending on your security needs

Framework Agnostic

Works seamlessly with React, Vue, Angular, or vanilla JavaScript applications

Lightweight

Zero dependencies and minimal footprint for optimal performance

Configurable Components

Customize fingerprinting by enabling or disabling Canvas, Audio, and WebGL components

Framework Examples

dPrintJs works with all modern JavaScript frameworks. Here is how to use it in your favorite environment

import { useEffect, useState } from 'react';
import { dPrintId } from 'dprintjs';

function App() {
  const [deviceId, setDeviceId] = useState('');

  useEffect(() => {
    const getFingerprint = async () => {
      const fingerprint = dPrintId.getInstance();
      const id = await fingerprint.generateFingerprint();
      setDeviceId(id);
    };
    getFingerprint();
  }, []);

  return <div>Device ID: {deviceId}</div>;
}

How It Works

dPrintJs is designed to be simple to use while providing robust device fingerprinting

1

Install the Package

Add dPrintJs to your project using npm, yarn, or pnpm

npm install dprintjs
# or
yarn add dprintjs
# or 
pnpm add dprintjs
2

Initialize the Library

Get an instance of dPrintId to start generating fingerprints

import { dPrintId } from 'dprintjs';

// Get instance
const fingerprint = dPrintId.getInstance();
3

Generate Fingerprints

Create short (8 characters) or long (64 characters) fingerprints for device identification

// Generate short fingerprint (8 characters)
const shortId = await fingerprint.generateFingerprint({ format: "short" });
// Example output: "ABC123XY"

// Generate long fingerprint (64 characters)
const longId = await fingerprint.generateFingerprint({ format: "long" });
// Example output: "f7ac85b8d9e76c4e8649e6ca5b29142a8736c12edb9144edcf..."
4

Customize (Optional)

Configure the fingerprinting components and add a custom salt for enhanced uniqueness

const deviceId = await fingerprint.generateFingerprint({
  format: 'long',
  includeCanvas: true,
  includeAudio: true,
  includeWebGL: true,
  salt: 'my-custom-salt'
});

Ready to get started?

Add reliable device fingerprinting to your application in minutes