TigerTag SDK JS

JavaScript- / Node.js-SDKTigerTag SDK

Lees, controleer en schrijf TigerTag-NFC-chips met JavaScript.

De SDK van het open TigerTag-protocol voor filament en hars voor 3D-printen: hij zet de bytes van een chip om in materiaal, kleur, printinstellingen en hoeveelheid, controleert de ECDSA-P256-handtekening offline en bouwt nieuwe tags byte voor byte.

npm install tigertag
quick-start.js
const { TigerTag } = require('tigertag');

const tag = TigerTag.fromPages(uid, payload);   // from your NFC SDK
console.log(tag.pretty());                      // human-readable summary
console.log(String(tag.verify()));              // VALID / NOT SIGNED / INVALID
console.log(tag.toDict());                      // JSON-ready object
De snelstart uit de README: werkt direct na npm install, zonder configuratie.
1.2.1Huidige versie, uitgebracht op 2026-11-06
Node.js 18+Gebruikt de ingebouwde crypto en fetch
0Runtime-afhankelijkheden voor lezen en controleren
Apache-2.0Opensourcelicentie, met octrooiverlening

In drie stappen aan de slag

Installeer het pakket, lees een chip met je NFC-bibliotheek en schrijf een nieuwe. Dankzij de meegeleverde referentietabellen werkt de eerste start zonder netwerk.

  1. 1

    Installeer het pakket

    Uit het npm-register. pnpm, yarn en bun installeren hetzelfde pakket.

    npm install tigertag
    pnpm add tigertag
    yarn add tigertag
    bun add tigertag
  2. 2

    Lees een chip

    Geef de UID van 7 bytes en de 144 bytes door die je NFC-bibliotheek leest. Hier met nfc-pcsc en een ACR122U.

    // Node.js — nfc-pcsc (ACR122U / PN532)
    reader.on('card', async (card) => {
      const uid = Buffer.from(card.uid, 'hex');        // 7 bytes
      const payload = await reader.read(4, 144, 4);    // pages 4–39, 144 bytes
      const tag = TigerTag.fromPages(uid, payload);
      console.log(tag.pretty());
      console.log(String(tag.verify()));               // VALID / NOT SIGNED
    });
  3. 3

    Wijzig en schrijf

    Elke wijziging geeft een nieuwe TigerTag terug; toBytes() levert de bytes om terug te schrijven. erase() levert een lege chip.

    // Immutable surgical update — returns a new TigerTag, original unchanged
    const patched = tag.patch({ nozzleTempMin: 200, dryTemp: 55 });
    
    // Erase a chip — write the returned 80 bytes to the NFC chip
    const blankBytes = TigerTag.erase();

De volledige API in de README

Wat de SDK doet

Eén pakket voor alles rond een TigerTag-chip: lezen, controleren, schrijven en de gegevens actueel houden.

Elke dump lezen

fromPages(), fromDump() en fromFile() nemen een UID met 80 of 144 bytes, of een volledige dump van 180 bytes. pretty(), describe(), toDict() en toRawDict() geven tekst, een alinea in gewone taal of objecten die klaar zijn voor JSON.

Echtheid offline controleren

verify() controleert de ECDSA-P256-handtekening die de UID van de chip aan de productgegevens koppelt, met de publieke sleutel uit het pakket. Het resultaat is valid, invalid, unsigned, no_key of no_uid.

Tags maken en aanpassen

create(), asInit(), patch() en erase() bouwen chipbytes. Een TigerTag is onveranderlijk: patch() geeft een nieuwe terug en weigert idTigertag, idProduct, uid of de handtekening te wijzigen.

Bouwen vanuit de catalogus

TigerTag.fromCatalog(productId) bouwt een volledige TigerTag+ uit de officiële productcatalogus, die bij het eerste gebruik wordt gedownload en per gebruiker in een cachemap wordt bewaard.

Synchroniseren met de fabrikant

Voor TigerTag+-chips halen rawApi(), diffApi() en patchFromApi() de actuele productgegevens van het merk op, tonen ze wat afwijkt van de chip en passen ze het toe.

Referentiegegevens, eerst offline

De tabellen voor materiaal, merk, uiterlijk, type, diameter en eenheid zitten in het pakket. Een controle op de achtergrond werkt ze hooguit één keer per dag bij; offline: true of TIGERTAG_OFFLINE=1 betekent nul netwerkverzoeken.

Drie soorten tags

De SDK leest en schrijft de drie tagtypen van TigerTag-protocol v2.2, op NTAG213-, NTAG215- en NTAG216-chips.

idProduct 0xFFFFFFFF

TigerTag (Maker)

Alle velden op de chip, volledig offline leesbaar.

idProduct 0x00000000

TigerTag Init

Een leeg sjabloon, klaar om te programmeren. TigerTag.asInit() maakt er een.

ECDSA-P256

TigerTag+

Alle velden op de chip, plus een product-ID dat gekoppeld is aan de cloud-API voor updates van de fabrikant. Een ondertekende chip controleer je met verify().

Vanaf de opdrachtregel en in Electron

Het pakket installeert de opdracht tigertag en draait in het hoofdproces van een Electron-app.

De opdracht tigertag

Leest een dump als tekst, JSON of ruwe velden en werkt de referentietabellen op verzoek bij.

# Parse a dump file
tigertag dump.bin

# JSON output
tigertag dump.bin --json

# Update the reference tables now (into the data dir)
tigertag update

In een Electron-app

Chips uitlezen in het hoofdproces, zonder extra subproces.

// main.js — replace parseTigerTag() subprocess dependency
const { TigerTag, TigerTagDB } = require('tigertag');

function parseTigerTag(payload, uid) {
  const tag = TigerTag.fromPages(Buffer.from(uid), Buffer.from(payload));
  const db  = new TigerTagDB();
  return {
    dict: tag.toDict(db),
    raw:  tag.toRawDict(),
    sig:  tag.verify(db).toDict(),
  };
}

Probeer het zonder lezer: de playground

Een lokale webpagina, geserveerd door de SDK zelf, die TigerTag-chips bouwt en decodeert en elke byte toont. Geen NFC-hardware nodig.

  • In- en uitvoer van de SDK naast elkaar: de aanroep create(), daarna pretty(), describe(), verify() en toDict().
  • Met een of meer PC/SC-lezers zoals de ACR122U worden chips gelezen zodra ze erop liggen, en Burn schrijft de huidige inhoud.
  • De playground schrijft nooit een handtekening: alleen een gecertificeerde fabrikant kan er een uitgeven.
npm run playground
# then open http://localhost:7432/tools/playground.html

# Enable live reader support (one-time install)
npm install ws nfc-pcsc

Onderdeel van het TigerTag-ecosysteem

De SDK implementeert de open TigerTag-specificatie, naast de andere officiële tools.

Specificatie van het TigerTag-protocol

De open specificatie die de SDK implementeert: geheugenindeling, tagtypen, handtekeningschema en referentiedatabase.

Repository: TigerTag-RFID-Guide

TigerTag-SDK voor Python

De Python-versie: lezen, controleren, schrijven en vergelijken. De playgroundpagina is in beide SDK's hetzelfde bestand.

Repository: TigerTag-SDK-Python

TigerTag RFID Connect

De officiële mobiele app: chips lezen en schrijven met de ingebouwde NFC van de telefoon.

Vragen

Hoe installeer ik de TigerTag JavaScript-SDK?

Voer npm install tigertag uit, of pnpm add tigertag, yarn add tigertag of bun add tigertag. Hij vraagt Node.js 18 of nieuwer en geen ander pakket om te lezen en te controleren.

Is er een internetverbinding nodig?

Nee. De referentietabellen en de publieke handtekeningsleutel zitten in het pakket, dus lezen en controleren werken offline. Het netwerk wordt alleen gebruikt voor de dagelijkse tabelcontrole, de productcatalogus en de TigerTag+-cloudmethoden; offline: true of TIGERTAG_OFFLINE=1 zet het uit.

Met welke NFC-chips en lezers werkt hij?

TigerTag gebruikt NTAG213-, NTAG215- en NTAG216-chips (ISO 14443-3). De SDK neemt de UID en de bytes die je NFC-bibliotheek leest, dus hij is niet aan één lezer gebonden; de README toont nfc-pcsc met een ACR122U.

Hoe controleert hij of een chip echt is?

verify() controleert de ECDSA-P256-handtekening van de chip over de UID en de product-ID's, met de publieke sleutel uit het pakket. Het resultaat is valid, invalid, unsigned (een Maker-tag), no_key of no_uid, zonder serveraanroep.

Kan hij chips schrijven?

Hij bouwt de bytes: create(), patch(), asInit(), erase() en fromCatalog() geven een TigerTag waarvan toBytes() de inhoud is die je NFC-bibliotheek schrijft. De Burn-knop van de playground schrijft die naar de chips op aangesloten lezers.

Is er een Python-versie?

Ja: TigerTag-SDK-Python is de Python-versie van dezelfde API, en beide SDK's serveren dezelfde playgroundpagina.

Onder welke licentie valt de SDK?

Apache-2.0, met een uitdrukkelijke octrooiverlening. Voor het implementeren van het TigerTag-protocol zelf is geen licentie nodig.

Eén opdracht om te beginnen

npm install tigertag, daarna TigerTag.fromPages(uid, payload).

Bekijk op npm