Ler qualquer dump
fromPages(), fromDump() e fromFile() aceitam um UID com 80 ou 144 bytes, ou um dump de 180 bytes. pretty(), describe() e toDict() retornam texto, um resumo legível ou objetos JSON.
SDK JavaScript / Node.js
O SDK do protocolo aberto TigerTag para filamento e resina de impressão 3D: transforma os bytes de um chip em material, cor, ajustes de impressão e quantidade, confere a assinatura ECDSA-P256 offline e monta novas tags byte a 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 objectUm só pacote para tudo em um chip TigerTag: ler, conferir, gravar e manter os dados atualizados.
fromPages(), fromDump() e fromFile() aceitam um UID com 80 ou 144 bytes, ou um dump de 180 bytes. pretty(), describe() e toDict() retornam texto, um resumo legível ou objetos JSON.
verify() confere a assinatura ECDSA-P256 que liga o UID do chip aos dados do produto, com a chave pública incluída no pacote. Resultado: valid, invalid, unsigned, no_key ou no_uid.
create(), asInit(), patch() e erase() montam os bytes do chip. Um TigerTag é imutável: patch() retorna um novo e não deixa alterar idTigertag, idProduct, uid nem a assinatura.
TigerTag.fromCatalog(productId) monta um TigerTag+ completo a partir do catálogo oficial de produtos, baixado no primeiro uso e guardado em cache numa pasta por usuário.
Para chips TigerTag+, rawApi(), diffApi() e patchFromApi() buscam os dados atuais da marca, listam o que difere do chip e aplicam as mudanças.
As tabelas de material, marca, aspecto, tipo, diâmetro e unidade vêm no pacote e se atualizam no máximo uma vez por dia; offline: true ou TIGERTAG_OFFLINE=1 desliga a rede.
Passe para TigerTag.fromPages() o UID de 7 bytes e os bytes lidos pela sua biblioteca NFC. pretty(), verify() e toDict() retornam um resumo legível, o resultado da assinatura e um objeto pronto para JSON. Funciona logo após o npm install, sem configuração.

Cada alteração retorna um novo TigerTag; toBytes() dá os bytes para gravar. erase() dá um chip em branco.

Uma página web local, servida pelo próprio SDK, que monta e decodifica chips TigerTag e mostra cada byte. Não precisa de hardware NFC. O playground nunca grava uma assinatura: só um fabricante certificado pode emiti-la.
Rode npm install tigertag, ou pnpm add tigertag, yarn add tigertag ou bun add tigertag. Ele precisa do Node.js 18 ou mais recente e de nenhum outro pacote para ler e verificar.
Não. As tabelas de referência e a chave pública de assinatura vêm no pacote, então leitura e verificação funcionam offline. A rede só é usada para a verificação diária das tabelas, o catálogo de produtos e os métodos de nuvem do TigerTag+; offline: true ou TIGERTAG_OFFLINE=1 a desliga.
O TigerTag usa chips NTAG213, NTAG215 e NTAG216 (ISO 14443-3). O SDK recebe o UID e os bytes lidos pela sua biblioteca NFC, então não depende de um leitor específico; o README mostra nfc-pcsc com um ACR122U.
verify() confere a assinatura ECDSA-P256 do chip sobre o UID e os identificadores do produto, com a chave pública incluída no pacote. Retorna valid, invalid, unsigned, no_key ou no_uid, sem chamar servidor.
Ele monta os bytes: create(), patch(), asInit(), erase() e fromCatalog() dão um TigerTag cujo toBytes() é o conteúdo que sua biblioteca NFC grava. O botão Burn do playground grava nos chips dos leitores conectados.