Jeden Dump lesen
fromPages(), fromDump() und fromFile() nehmen eine UID mit 80 oder 144 Bytes oder einen vollständigen 180-Byte-Dump. pretty(), describe(), toDict() und toRawDict() liefern Text, einen Absatz in Klartext oder JSON-fertige Objekte.
TigerTag-NFC-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 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
Paket installieren, einen Chip mit Ihrer NFC-Bibliothek lesen, einen neuen schreiben. Dank der mitgelieferten Referenztabellen läuft der erste Start ohne Netz.
Aus der npm-Registry. pnpm, yarn und bun installieren dasselbe Paket.
npm install tigertag
pnpm add tigertag
yarn add tigertag
bun add tigertagÜbergeben Sie die 7-Byte-UID und die 144 Bytes, die Ihre NFC-Bibliothek liest. Hier mit nfc-pcsc und einem 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
});Jede Änderung liefert einen neuen TigerTag; toBytes() gibt die zu schreibenden Bytes. erase() liefert einen leeren 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();Ein Paket für alles rund um einen TigerTag-Chip: lesen, prüfen, schreiben und seine Daten aktuell halten.
fromPages(), fromDump() und fromFile() nehmen eine UID mit 80 oder 144 Bytes oder einen vollständigen 180-Byte-Dump. pretty(), describe(), toDict() und toRawDict() liefern Text, einen Absatz in Klartext oder JSON-fertige Objekte.
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.
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.
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.
Für TigerTag+-Chips holen rawApi(), diffApi() und patchFromApi() die aktuellen Produktdaten der Marke, zeigen die Unterschiede zum Chip und übernehmen sie.
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.
Das SDK liest und schreibt die drei Tag-Typen des TigerTag-Protokolls v2.2 auf NTAG213-, NTAG215- und NTAG216-Chips.
Alle Felder auf dem Chip, vollständig offline lesbar.
Eine leere Vorlage, bereit zum Programmieren. TigerTag.asInit() erstellt eine.
Alle Felder auf dem Chip, dazu eine Produkt-ID, die mit der Cloud-API für Updates des Herstellers verknüpft ist. Ein signierter Chip lässt sich mit verify() prüfen.
Das Paket installiert den Befehl tigertag und läuft im Hauptprozess einer Electron-App.
Einen Dump als Text, JSON oder Rohfelder ausgeben und die Referenztabellen bei Bedarf aktualisieren.
# Parse a dump file
tigertag dump.bin
# JSON output
tigertag dump.bin --json
# Update the reference tables now (into the data dir)
tigertag updateChips im Hauptprozess auswerten, ohne Unterprozess mitzuliefern.
// 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(),
};
}Eine lokale Webseite, vom SDK selbst bereitgestellt, die TigerTag-Chips baut und dekodiert und jedes Byte zeigt. Keine NFC-Hardware nötig.
npm run playground
# then open http://localhost:7432/tools/playground.html
# Enable live reader support (one-time install)
npm install ws nfc-pcsc
Das SDK setzt die offene TigerTag-Spezifikation um, neben den anderen offiziellen Werkzeugen.
Die offene Spezifikation, die das SDK umsetzt: Speicheraufbau, Tag-Typen, Signaturverfahren und Referenzdatenbank.
Repository: TigerTag-RFID-GuideDie Python-Portierung: lesen, prüfen, schreiben und vergleichen. Die Playground-Seite ist in beiden SDKs dieselbe Datei.
Repository: TigerTag-SDK-PythonQuelloffene Desktop-Lagerverwaltung für Windows, macOS und Linux, mit TigerTag Pod und ACR122U-Lesegeräten.
Repository: TigerTag-Studio-ManagerDie offizielle Mobil-App: Chips mit dem eingebauten NFC des Telefons lesen und schreiben.
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.
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.
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.
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 (ein Maker-Tag), no_key oder no_uid, ohne Serveraufruf.
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.
Ja: TigerTag-SDK-Python ist die Python-Portierung derselben API, und beide SDKs stellen dieselbe Playground-Seite bereit.
Apache-2.0, mit ausdrücklicher Patentgewährung. Das TigerTag-Protokoll selbst umzusetzen erfordert keine Lizenz.
npm install tigertag, dann TigerTag.fromPages(uid, payload).