A scalable, secure, and verifiable unique ID generator for Node.js.
Designed to evolve with time and prevent collisions for decades โ even millennia.
- โ Cryptographically signed (HMAC SHA-256)
- ๐ง Unique and verifiable
- ๐ฐ๏ธ ID length grows over time
- ๐ Includes timestamp + device fingerprint
- ๐งช Built-in validation and stress testing
- ๐ฉธ Zero dependency (only uses
cryptoandos) - ๐จ Supports prefix and formatting (
dash,space)
npm install forgeid
const ForgeID = require('forgeid') const forge = new ForgeID('your-secret') const id = forge.generate() console.log('ID:', id) const isValid = forge.verify(id) console.log('Verified:', isValid)
forge.generate('TRX') // TRX-abc123xyz... forge.generate('ORD', 'dash') // ORD-abc123-def456... forge.generate('REF', 'space') // REF abc123 def456...
Each ID includes:
- Random entropy from
crypto.randomBytes - Host fingerprint (
hostname + MAC) - Base36 timestamp (
Date.now()) - Signature from HMAC (last 10 characters)
ID format is:
[prefix-]baseContent + signature
Length increases over time:
length = baseLength + floor((currentYear - startYear) / intervalYears)
const forge = new ForgeID('your-secret') forge.stressTest(1e6, 1e5)
Tests 1 million IDs for:
- Duplicate collision
- HMAC signature validity
new ForgeID(secret?: string, startYear?: number, baseLength?: number, intervalYears?: number) forge.generate(prefix?: string, format?: 'dash' | 'space' | ''): string forge.verify(id: string): boolean forge.format(id: string, style?: 'dash' | 'space' | ''): string forge.stressTest(total?: number, step?: number): void
npm install --save-dev mocha chai
npm testTest cases cover:
- Raw ID generation & verification
- Formatted and prefixed IDs
- Tampered/invalid inputs
- Collision-free generation (10K+)
import ForgeID from 'forgeid' const forge = new ForgeID() const id: string = forge.generate('TRX', 'dash') const isValid: boolean = forge.verify(id)
Types are defined in forgeid.d.ts.
npm run build
Produces:
dist/forgeid.min.jsโ minified bundledist/forgeid.d.tsโ TypeScript definitions
ForgeID can generate 1 million unique, verifiable IDs in under 25 seconds with zero duplicates.
Tested on macOS + Node.js v24.2.0, M3 CPU.
ForgeID/
โโโ src/ โ main ForgeID logic (ES5)
โโโ dist/ โ minified + .d.ts output (for publishing)
โโโ test/ โ unit tests
โโโ benchmark/ โ benchmark script, JSON & PNG chart
MIT ยฉ NeaByteLab

