Ler qualquer dump
fromPages(), fromDump() e fromFile() aceitam um UID com 80 ou 144 bytes, ou um dump completo de 180 bytes. pretty(), describe(), toDict() e toRawDict() retornam texto, um parágrafo em linguagem simples ou objetos prontos para JSON.
Leia, verifique e grave chips NFC TigerTag com JavaScript.
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 object
Instale o pacote, leia um chip com sua biblioteca NFC e grave um novo. As tabelas de referência incluídas fazem a primeira execução funcionar sem rede.
Pelo registro do npm. pnpm, yarn e bun instalam o mesmo pacote.
npm install tigertag
pnpm add tigertag
yarn add tigertag
bun add tigertagPasse o UID de 7 bytes e os 144 bytes lidos pela sua biblioteca NFC. Aqui com nfc-pcsc e um 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
});Cada alteração retorna um novo TigerTag; toBytes() dá os bytes para gravar. erase() dá um chip em branco.
// 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();Um 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 completo de 180 bytes. pretty(), describe(), toDict() e toRawDict() retornam texto, um parágrafo em linguagem simples ou objetos prontos para 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. O 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. Uma verificação em segundo plano as atualiza no máximo uma vez por dia; offline: true ou TIGERTAG_OFFLINE=1 significa nenhuma chamada de rede.
O SDK lê e grava os três tipos de tag do protocolo TigerTag v2.2, em chips NTAG213, NTAG215 e NTAG216.
Todos os campos no chip, legíveis totalmente offline.
Um modelo em branco, pronto para programar. TigerTag.asInit() cria um.
Todos os campos no chip, mais um ID de produto ligado à API na nuvem para atualizações do fabricante. Um chip assinado é conferido com verify().
O pacote instala o comando tigertag e roda no processo principal de um app Electron.
Interpreta um dump como texto, JSON ou campos brutos, e atualiza as tabelas de referência quando você quiser.
# Parse a dump file
tigertag dump.bin
# JSON output
tigertag dump.bin --json
# Update the reference tables now (into the data dir)
tigertag updateInterprete os chips no processo principal, sem subprocesso para distribuir.
// 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(),
};
}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.
npm run playground
# then open http://localhost:7432/tools/playground.html
# Enable live reader support (one-time install)
npm install ws nfc-pcsc
O SDK implementa a especificação aberta TigerTag, ao lado das outras ferramentas oficiais.
A especificação aberta que o SDK implementa: layout de memória, tipos de tag, esquema de assinatura e banco de dados de referência.
Repositório: TigerTag-RFID-GuideA versão em Python: ler, verificar, gravar e comparar. A página do playground é o mesmo arquivo nos dois SDKs.
Repositório: TigerTag-SDK-PythonGerenciador de estoque para desktop, de código aberto, para Windows, macOS e Linux, compatível com TigerTag Pod e leitores ACR122U.
Repositório: TigerTag-Studio-ManagerO app móvel oficial: leia e grave chips com o NFC do celular.
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 (uma tag Maker), 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.
Sim: TigerTag-SDK-Python é a versão em Python da mesma API, e os dois SDKs servem a mesma página de playground.
Apache-2.0, que traz uma concessão expressa de patentes. Implementar o próprio protocolo TigerTag não exige licença.
npm install tigertag e depois TigerTag.fromPages(uid, payload).