Чтение любого дампа
fromPages(), fromDump() и fromFile() принимают UID с 80 или 144 байтами либо полный дамп на 180 байт. pretty(), describe() и toDict() возвращают текст, понятное описание или объекты для JSON.
SDK для JavaScript / Node.js
SDK открытого протокола TigerTag для филамента и смолы для 3D-печати: превращает байты чипа в материал, цвет, параметры печати и количество, проверяет его подпись ECDSA-P256 без сети и собирает новые метки байт за байтом.
$ 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Один пакет для всего, что связано с чипом TigerTag: чтения, проверки, записи и обновления данных.
fromPages(), fromDump() и fromFile() принимают UID с 80 или 144 байтами либо полный дамп на 180 байт. pretty(), describe() и toDict() возвращают текст, понятное описание или объекты для JSON.
verify() проверяет подпись ECDSA-P256, связывающую UID чипа с данными продукта, открытым ключом из пакета. Результат: valid, invalid, unsigned, no_key или no_uid.
create(), asInit(), patch() и erase() формируют байты чипа. TigerTag неизменяем: patch() возвращает новый объект и не позволяет менять idTigertag, idProduct, uid или подпись.
TigerTag.fromCatalog(productId) собирает полный TigerTag+ из официального каталога продуктов, который загружается при первом использовании и кешируется в папке пользователя.
Для чипов TigerTag+ методы rawApi(), diffApi() и patchFromApi() получают актуальные данные бренда, показывают отличия от чипа и применяют их.
Таблицы материалов, брендов, видов поверхности, типов, диаметров и единиц входят в пакет. Фоновая проверка обновляет их не чаще раза в сутки; offline: true или TIGERTAG_OFFLINE=1 означает ноль сетевых запросов.
Передайте в TigerTag.fromPages() 7-байтовый UID и байты, прочитанные NFC-библиотекой. pretty(), verify() и toDict() возвращают понятную сводку, результат проверки подписи и объект, готовый для JSON. Работает сразу после npm install, без настройки.

Каждое изменение возвращает новый TigerTag; toBytes() даёт байты для записи. erase() даёт пустой чип.

Локальная веб-страница, которую обслуживает сам SDK: она собирает и декодирует чипы TigerTag и показывает каждый байт. NFC-оборудование не нужно. Playground никогда не записывает подпись: выпустить её может только сертифицированный производитель.
Выполните npm install tigertag, либо pnpm add tigertag, yarn add tigertag или bun add tigertag. Нужен Node.js 18 или новее; для чтения и проверки другие пакеты не нужны.
Нет. Справочные таблицы и открытый ключ подписи входят в пакет, поэтому чтение и проверка работают без сети. Сеть используется только для ежедневной проверки таблиц, каталога продуктов и облачных методов TigerTag+; offline: true или TIGERTAG_OFFLINE=1 её отключает.
TigerTag использует чипы NTAG213, NTAG215 и NTAG216 (ISO 14443-3). SDK принимает UID и байты, прочитанные вашей NFC-библиотекой, поэтому не привязан к одному считывателю; в README показан nfc-pcsc с ACR122U.
verify() проверяет подпись ECDSA-P256 чипа по его UID и идентификаторам продукта открытым ключом из пакета. Возвращает valid, invalid, unsigned, no_key или no_uid без обращения к серверу.
Он формирует байты: create(), patch(), asInit(), erase() и fromCatalog() дают TigerTag, чей toBytes() — содержимое, которое записывает ваша NFC-библиотека. Кнопка Burn в playground записывает его на чипы подключённых считывателей.