JavaScript- / Node.js-SDK

TigerTag-Chips mit JavaScript lesen, prüfen und schreiben.

Das SDK des offenen TigerTag-Protokolls für Filament und Harz im 3D-Druck: Es macht aus den Bytes eines Chips Material, Farbe, Druckeinstellungen und Menge, prüft seine ECDSA-P256-Signatur offline und baut neue Tags Byte für Byte.

npm ↗GitHub ↗

$ npm install tigertag

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
Aktuelle Version auf npm
1.2.1Aktuelle Version auf npm
Nutzt das eingebaute crypto und fetch
Node.js 18+Nutzt das eingebaute crypto und fetch
Laufzeitabhängigkeiten zum Lesen und Prüfen
0Laufzeitabhängigkeiten zum Lesen und Prüfen
Open-Source-Lizenz mit Patentgewährung
Apache-2.0Open-Source-Lizenz mit Patentgewährung

Was das SDK kann

Ein Paket für alles rund um einen TigerTag-Chip: lesen, prüfen, schreiben und seine Daten aktuell halten.

Jeden Dump lesen

fromPages(), fromDump() und fromFile() nehmen eine UID mit 80 oder 144 Bytes oder einen 180-Byte-Dump. pretty(), describe() und toDict() liefern Text, einen Absatz in Klartext oder JSON-fertige Objekte.

Echtheit offline prüfen

verify() prüft die ECDSA-P256-Signatur, die die UID des Chips an seine Produktdaten bindet, mit dem im Paket enthaltenen öffentlichen Schlüssel. Ergebnis: valid, invalid, unsigned, no_key oder no_uid.

Tags erstellen und ändern

create(), asInit(), patch() und erase() erzeugen Chip-Bytes. Ein TigerTag ist unveränderlich: patch() liefert einen neuen und verweigert Änderungen an idTigertag, idProduct, uid oder der Signatur.

Aus dem Katalog bauen

TigerTag.fromCatalog(productId) baut einen vollständigen TigerTag+ aus dem offiziellen Produktkatalog, der beim ersten Gebrauch geladen und in einem Ordner pro Benutzer zwischengespeichert wird.

Mit dem Hersteller abgleichen

Für TigerTag+-Chips holen rawApi(), diffApi() und patchFromApi() die aktuellen Produktdaten der Marke, zeigen die Unterschiede zum Chip und übernehmen sie.

Referenzdaten, zuerst offline

Die Tabellen für Material, Marke, Optik, Typ, Durchmesser und Einheit sind im Paket enthalten. Eine Hintergrundprüfung aktualisiert sie höchstens einmal am Tag; offline: true oder TIGERTAG_OFFLINE=1 bedeutet null Netzaufrufe.

Einen Chip lesen

Übergeben Sie TigerTag.fromPages() die 7-Byte-UID und die Bytes, die Ihre NFC-Bibliothek liest. pretty(), verify() und toDict() liefern eine lesbare Zusammenfassung, das Ergebnis der Signaturprüfung und ein JSON-fertiges Objekt. Das läuft direkt nach npm install, ohne Einrichtung.

A TigerTag chip

Ändern und schreiben

Jede Änderung liefert einen neuen TigerTag; toBytes() gibt die zu schreibenden Bytes. erase() liefert einen leeren Chip.

TigerTag

Ohne Lesegerät ausprobieren: der Playground

Eine lokale Webseite, vom SDK selbst bereitgestellt, die TigerTag-Chips baut und dekodiert und jedes Byte zeigt. Keine NFC-Hardware nötig. Der Playground schreibt nie eine Signatur: Nur ein zertifizierter Hersteller kann eine ausstellen.

Fragen

Wie installiere ich das TigerTag JavaScript-SDK?

Mit npm install tigertag, oder pnpm add tigertag, yarn add tigertag bzw. bun add tigertag. Es braucht Node.js 18 oder neuer und kein weiteres Paket zum Lesen und Prüfen.

Braucht es eine Internetverbindung?

Nein. Die Referenztabellen und der öffentliche Signaturschlüssel sind im Paket enthalten, Lesen und Prüfen funktionieren offline. Das Netz wird nur für die tägliche Tabellenprüfung, den Produktkatalog und die TigerTag+-Cloud-Methoden genutzt; offline: true oder TIGERTAG_OFFLINE=1 schaltet es ab.

Mit welchen NFC-Chips und Lesegeräten funktioniert es?

TigerTag nutzt NTAG213-, NTAG215- und NTAG216-Chips (ISO 14443-3). Das SDK nimmt die UID und die Bytes, die Ihre NFC-Bibliothek liest, und ist daher an kein Lesegerät gebunden; das README zeigt nfc-pcsc mit einem ACR122U.

Wie prüft es, ob ein Chip echt ist?

verify() prüft die ECDSA-P256-Signatur des Chips über seine UID und Produktkennungen mit dem im Paket enthaltenen öffentlichen Schlüssel. Es liefert valid, invalid, unsigned, no_key oder no_uid, ohne Serveraufruf.

Kann es Chips beschreiben?

Es erzeugt die Bytes: create(), patch(), asInit(), erase() und fromCatalog() liefern einen TigerTag, dessen toBytes() der Inhalt ist, den Ihre NFC-Bibliothek schreibt. Die Burn-Schaltfläche des Playgrounds schreibt ihn auf die Chips angeschlossener Lesegeräte.

Ein Befehl zum Start

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

Auf npm ansehen