SDK JavaScript / Node.js

Lee, verifica y escribe chips TigerTag desde JavaScript.

El SDK del protocolo abierto TigerTag para filamento y resina de impresión 3D: convierte los bytes de un chip en material, color, ajustes de impresión y cantidad, comprueba su firma ECDSA-P256 sin conexión y construye nuevas etiquetas byte a byte.

npm ↗GitHub ↗

$ 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
Versión actual en npm
1.2.1Versión actual en npm
Usa crypto y fetch integrados
Node.js 18+Usa crypto y fetch integrados
Dependencias de ejecución para leer y verificar
0Dependencias de ejecución para leer y verificar
Licencia de código abierto, con concesión de patentes
Apache-2.0Licencia de código abierto, con concesión de patentes

Qué hace el SDK

Un solo paquete para todo lo relacionado con un chip TigerTag: leer, comprobar, escribir y mantener sus datos al día.

Leer cualquier volcado

fromPages(), fromDump() y fromFile() aceptan un UID con 80 o 144 bytes, o un volcado de 180 bytes. pretty(), describe() y toDict() devuelven texto, un resumen legible u objetos JSON.

Verificar la autenticidad sin conexión

verify() comprueba la firma ECDSA-P256 que vincula el UID del chip con sus datos de producto, con la clave pública del paquete. Resultado: valid, invalid, unsigned, no_key o no_uid.

Crear y modificar etiquetas

create(), asInit(), patch() y erase() construyen los bytes del chip. Un TigerTag es inmutable: patch() devuelve uno nuevo y no permite cambiar idTigertag, idProduct, uid ni la firma.

Construir desde el catálogo

TigerTag.fromCatalog(productId) construye un TigerTag+ completo a partir del catálogo oficial de productos, descargado en el primer uso y guardado en una carpeta de caché por usuario.

Sincronizar con el fabricante

Para los chips TigerTag+, rawApi(), diffApi() y patchFromApi() obtienen los datos actuales de la marca, muestran lo que difiere del chip y lo aplican.

Datos de referencia, primero sin conexión

Las tablas de material, marca, aspecto, tipo, diámetro y unidad vienen en el paquete y se actualizan una vez al día como máximo; offline: true o TIGERTAG_OFFLINE=1 desactiva la red.

Leer un chip

Pasa a TigerTag.fromPages() el UID de 7 bytes y los bytes que lee tu biblioteca NFC. pretty(), verify() y toDict() devuelven un resumen legible, el resultado de la firma y un objeto listo para JSON. Funciona justo después de npm install, sin configuración.

A TigerTag chip

Modificar y escribir

Cada cambio devuelve un nuevo TigerTag; toBytes() da los bytes que hay que escribir. erase() da un chip en blanco.

TigerTag

Pruébalo sin lector: el playground

Una página web local, servida por el propio SDK, que construye y decodifica chips TigerTag y muestra cada byte. No hace falta hardware NFC. El playground nunca escribe una firma: solo un fabricante certificado puede emitirla.

Preguntas

¿Cómo se instala el SDK JavaScript de TigerTag?

Ejecuta npm install tigertag, o pnpm add tigertag, yarn add tigertag o bun add tigertag. Necesita Node.js 18 o posterior y ningún otro paquete para leer y verificar.

¿Necesita conexión a internet?

No. Las tablas de referencia y la clave pública de firma vienen en el paquete, así que leer y verificar funcionan sin conexión. La red solo se usa para la comprobación diaria de tablas, el catálogo de productos y los métodos en la nube de TigerTag+; offline: true o TIGERTAG_OFFLINE=1 la desactiva.

¿Con qué chips y lectores NFC funciona?

TigerTag usa chips NTAG213, NTAG215 y NTAG216 (ISO 14443-3). El SDK recibe el UID y los bytes que lee tu biblioteca NFC, así que no depende de un lector concreto; el README muestra nfc-pcsc con un ACR122U.

¿Cómo comprueba que un chip es auténtico?

verify() comprueba la firma ECDSA-P256 del chip sobre su UID y sus identificadores de producto, con la clave pública incluida en el paquete. Devuelve valid, invalid, unsigned, no_key o no_uid, sin llamar a ningún servidor.

¿Puede escribir chips?

Construye los bytes: create(), patch(), asInit(), erase() y fromCatalog() dan un TigerTag cuyo toBytes() es el contenido que escribe tu biblioteca NFC. El botón Burn del playground lo escribe en los chips de los lectores conectados.

Un comando para empezar

npm install tigertag y después TigerTag.fromPages(uid, payload).

Ver en npm