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.
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
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
Installeer het pakket, lees een chip met je NFC-bibliotheek en schrijf een nieuwe. Dankzij de meegeleverde referentietabellen werkt de eerste start zonder netwerk.
Uit het npm-register. pnpm, yarn en bun installeren hetzelfde pakket.
npm install tigertag
pnpm add tigertag
yarn add tigertag
bun add tigertagGeef 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
});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();Eén pakket voor alles rond een TigerTag-chip: lezen, controleren, schrijven en de gegevens actueel houden.
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.
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.
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.
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.
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.
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.
De SDK leest en schrijft de drie tagtypen van TigerTag-protocol v2.2, op NTAG213-, NTAG215- en NTAG216-chips.
Alle velden op de chip, volledig offline leesbaar.
Een leeg sjabloon, klaar om te programmeren. TigerTag.asInit() maakt er een.
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().
Het pakket installeert de opdracht tigertag en draait in het hoofdproces van een Electron-app.
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 updateChips 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(),
};
}Een lokale webpagina, geserveerd door de SDK zelf, die TigerTag-chips bouwt en decodeert en elke byte toont. Geen NFC-hardware nodig.
npm run playground
# then open http://localhost:7432/tools/playground.html
# Enable live reader support (one-time install)
npm install ws nfc-pcsc
De SDK implementeert de open TigerTag-specificatie, naast de andere officiële tools.
De open specificatie die de SDK implementeert: geheugenindeling, tagtypen, handtekeningschema en referentiedatabase.
Repository: TigerTag-RFID-GuideDe Python-versie: lezen, controleren, schrijven en vergelijken. De playgroundpagina is in beide SDK's hetzelfde bestand.
Repository: TigerTag-SDK-PythonOpen-source voorraadbeheer voor de desktop op Windows, macOS en Linux, werkt met de TigerTag Pod en ACR122U-lezers.
Repository: TigerTag-Studio-ManagerDe officiële mobiele app: chips lezen en schrijven met de ingebouwde NFC van de telefoon.
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.
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.
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.
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.
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.
Ja: TigerTag-SDK-Python is de Python-versie van dezelfde API, en beide SDK's serveren dezelfde playgroundpagina.
Apache-2.0, met een uitdrukkelijke octrooiverlening. Voor het implementeren van het TigerTag-protocol zelf is geen licentie nodig.
npm install tigertag, daarna TigerTag.fromPages(uid, payload).