TigerTag SDK JS

SDK dla JavaScript / Node.jsTigerTag SDK

Odczytuj, weryfikuj i zapisuj chipy NFC TigerTag w JavaScript.

SDK otwartego protokołu TigerTag dla filamentu i żywicy do druku 3D: zamienia bajty chipu na materiał, kolor, ustawienia druku i ilość, sprawdza jego podpis ECDSA-P256 offline i buduje nowe tagi bajt po bajcie.

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
Szybki start z README: działa zaraz po npm install, bez konfiguracji.
1.2.1Bieżąca wersja, wydana 2026-11-06
Node.js 18+Używa wbudowanych crypto i fetch
0Zależności uruchomieniowe do odczytu i weryfikacji
Apache-2.0Licencja open source z udzieleniem patentów

Zacznij w trzech krokach

Zainstaluj pakiet, odczytaj chip swoją biblioteką NFC i zapisz nowy. Dołączone tabele referencyjne pozwalają na pierwsze uruchomienie bez sieci.

  1. 1

    Zainstaluj pakiet

    Z rejestru npm. pnpm, yarn i bun instalują ten sam pakiet.

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

    Odczytaj chip

    Przekaż 7-bajtowy UID i 144 bajty odczytane przez bibliotekę NFC. Tutaj z nfc-pcsc i czytnikiem 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

    Zmień i zapisz

    Każda zmiana zwraca nowy TigerTag; toBytes() daje bajty do zapisania. erase() daje pusty 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();

Pełne API w README

Co robi SDK

Jeden pakiet do wszystkiego, co dotyczy chipu TigerTag: odczytu, sprawdzania, zapisu i aktualizacji danych.

Odczyt dowolnego zrzutu

fromPages(), fromDump() i fromFile() przyjmują UID z 80 lub 144 bajtami albo pełny zrzut 180 bajtów. pretty(), describe(), toDict() i toRawDict() zwracają tekst, akapit prostym językiem lub obiekty gotowe do JSON.

Weryfikacja autentyczności offline

verify() sprawdza podpis ECDSA-P256, który wiąże UID chipu z danymi produktu, kluczem publicznym dołączonym do pakietu. Wynik to valid, invalid, unsigned, no_key lub no_uid.

Tworzenie i zmiana tagów

create(), asInit(), patch() i erase() budują bajty chipu. TigerTag jest niezmienny: patch() zwraca nowy obiekt i nie pozwala zmienić idTigertag, idProduct, uid ani podpisu.

Budowanie z katalogu

TigerTag.fromCatalog(productId) buduje kompletny TigerTag+ z oficjalnego katalogu produktów, pobieranego przy pierwszym użyciu i przechowywanego w pamięci podręcznej użytkownika.

Synchronizacja z producentem

Dla chipów TigerTag+ rawApi(), diffApi() i patchFromApi() pobierają aktualne dane produktu marki, pokazują różnice względem chipu i je stosują.

Dane referencyjne, najpierw offline

Tabele materiałów, marek, wyglądu, typów, średnic i jednostek są w pakiecie. Sprawdzenie w tle aktualizuje je najwyżej raz dziennie; offline: true lub TIGERTAG_OFFLINE=1 oznacza zero połączeń sieciowych.

Trzy rodzaje tagów

SDK odczytuje i zapisuje trzy typy tagów protokołu TigerTag v2.2 na chipach NTAG213, NTAG215 i NTAG216.

idProduct 0xFFFFFFFF

TigerTag (Maker)

Wszystkie pola na chipie, czytelne całkowicie offline.

idProduct 0x00000000

TigerTag Init

Pusty szablon, gotowy do zaprogramowania. Tworzy go TigerTag.asInit().

ECDSA-P256

TigerTag+

Wszystkie pola na chipie oraz identyfikator produktu powiązany z API w chmurze, z którego pochodzą aktualizacje producenta. Podpisany chip sprawdza się przez verify().

Z wiersza poleceń i w Electronie

Pakiet instaluje polecenie tigertag i działa w procesie głównym aplikacji Electron.

Polecenie tigertag

Odczytuje zrzut jako tekst, JSON lub surowe pola i na żądanie aktualizuje tabele referencyjne.

# Parse a dump file
tigertag dump.bin

# JSON output
tigertag dump.bin --json

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

W aplikacji Electron

Odczyt chipów w procesie głównym, bez dodatkowego podprocesu.

// 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(),
  };
}

Wypróbuj bez czytnika: playground

Lokalna strona internetowa, serwowana przez samo SDK, która buduje i dekoduje chipy TigerTag i pokazuje każdy bajt. Sprzęt NFC nie jest potrzebny.

  • Wejście i wyjście SDK obok siebie: wywołanie create(), a następnie pretty(), describe(), verify() i toDict().
  • Z jednym lub kilkoma czytnikami PC/SC, np. ACR122U, chipy są odczytywane od razu po położeniu, a Burn zapisuje bieżącą zawartość.
  • Playground nigdy nie zapisuje podpisu: może go wystawić tylko certyfikowany producent.
npm run playground
# then open http://localhost:7432/tools/playground.html

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

Część ekosystemu TigerTag

SDK implementuje otwartą specyfikację TigerTag, obok pozostałych oficjalnych narzędzi.

Specyfikacja protokołu TigerTag

Otwarta specyfikacja implementowana przez SDK: układ pamięci, typy tagów, schemat podpisu i referencyjna baza danych.

Repozytorium: TigerTag-RFID-Guide

TigerTag Studio Manager

Otwartoźródłowy program do zarządzania magazynem dla Windows, macOS i Linuksa, współpracujący z TigerTag Pod i czytnikami ACR122U.

Repozytorium: TigerTag-Studio-Manager

TigerTag RFID Connect

Oficjalna aplikacja mobilna: odczyt i zapis chipów wbudowanym NFC telefonu.

Pytania

Jak zainstalować TigerTag JavaScript SDK?

Uruchom npm install tigertag albo pnpm add tigertag, yarn add tigertag lub bun add tigertag. Wymaga Node.js 18 lub nowszego i żadnego innego pakietu do odczytu i weryfikacji.

Czy potrzebne jest połączenie z internetem?

Nie. Tabele referencyjne i klucz publiczny podpisu są w pakiecie, więc odczyt i weryfikacja działają offline. Sieć służy tylko do codziennego sprawdzenia tabel, katalogu produktów i metod chmurowych TigerTag+; offline: true lub TIGERTAG_OFFLINE=1 ją wyłącza.

Z jakimi chipami i czytnikami NFC działa?

TigerTag używa chipów NTAG213, NTAG215 i NTAG216 (ISO 14443-3). SDK przyjmuje UID i bajty odczytane przez bibliotekę NFC, więc nie jest związane z jednym czytnikiem; README pokazuje nfc-pcsc z ACR122U.

Jak sprawdza, czy chip jest oryginalny?

verify() sprawdza podpis ECDSA-P256 chipu obejmujący jego UID i identyfikatory produktu, kluczem publicznym dołączonym do pakietu. Zwraca valid, invalid, unsigned (tag Maker), no_key lub no_uid, bez łączenia się z serwerem.

Czy może zapisywać chipy?

Buduje bajty: create(), patch(), asInit(), erase() i fromCatalog() zwracają TigerTag, którego toBytes() to zawartość zapisywana przez bibliotekę NFC. Przycisk Burn w playground zapisuje ją na chipach podłączonych czytników.

Czy jest wersja w Pythonie?

Tak: TigerTag-SDK-Python to wersja tego samego API w Pythonie, a oba SDK serwują tę samą stronę playground.

Na jakiej licencji jest SDK?

Apache-2.0, która zawiera wyraźne udzielenie praw patentowych. Implementacja samego protokołu TigerTag nie wymaga żadnej licencji.

Jedno polecenie na start

npm install tigertag, a potem TigerTag.fromPages(uid, payload).

Zobacz w npm