TigerTag SDK JS

SDK JavaScript / Node.jsTigerTag SDK

Lee, verifica y escribe chips NFC 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 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
El inicio rápido del README: funciona justo después de npm install, sin configuración.
1.2.1Versión actual, publicada el 2026-11-06
Node.js 18+Usa crypto y fetch integrados
0Dependencias de ejecución para leer y verificar
Apache-2.0Licencia de código abierto, con concesión de patentes

Empezar en tres pasos

Instala el paquete, lee un chip con tu biblioteca NFC y escribe uno nuevo. Las tablas de referencia incluidas permiten el primer uso sin red.

  1. 1

    Instalar el paquete

    Desde el registro de npm. pnpm, yarn y bun instalan el mismo paquete.

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

    Leer un chip

    Pasa el UID de 7 bytes y los 144 bytes que lee tu biblioteca NFC. Aquí con nfc-pcsc y un 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

    Modificar y escribir

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

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

Toda la API en el README

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 completo de 180 bytes. pretty(), describe(), toDict() y toRawDict() devuelven texto, un párrafo en lenguaje natural u objetos listos para 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 incluida en el paquete. El resultado es 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. Una comprobación en segundo plano las actualiza como mucho una vez al día; offline: true o TIGERTAG_OFFLINE=1 significa cero llamadas de red.

Tres tipos de etiqueta

El SDK lee y escribe los tres tipos de etiqueta del protocolo TigerTag v2.2, en chips NTAG213, NTAG215 y NTAG216.

idProduct 0xFFFFFFFF

TigerTag (Maker)

Todos los campos en el chip, legibles completamente sin conexión.

idProduct 0x00000000

TigerTag Init

Una plantilla en blanco, lista para programar. TigerTag.asInit() crea una.

ECDSA-P256

TigerTag+

Todos los campos en el chip, más un ID de producto vinculado a la API en la nube para las actualizaciones del fabricante. Un chip firmado se comprueba con verify().

Desde la línea de comandos y dentro de Electron

El paquete instala un comando tigertag y funciona en el proceso principal de una aplicación Electron.

El comando tigertag

Interpreta un volcado como texto, JSON o campos en bruto, y actualiza las tablas de referencia cuando quieras.

# Parse a dump file
tigertag dump.bin

# JSON output
tigertag dump.bin --json

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

Dentro de una aplicación Electron

Interpreta los chips en el proceso principal, sin subprocesos que 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(),
  };
}

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.

  • Entrada y salida del SDK lado a lado: la llamada create(), luego pretty(), describe(), verify() y toDict().
  • Con uno o varios lectores PC/SC como el ACR122U, los chips se leen en cuanto se colocan, y Burn escribe el contenido actual.
  • El playground nunca escribe una firma: solo un fabricante certificado puede emitirla.
npm run playground
# then open http://localhost:7432/tools/playground.html

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

Parte del ecosistema TigerTag

El SDK implementa la especificación abierta TigerTag, junto a las demás herramientas oficiales.

Especificación del protocolo TigerTag

La especificación abierta que implementa el SDK: estructura de memoria, tipos de etiqueta, esquema de firma y base de datos de referencia.

Repositorio: TigerTag-RFID-Guide

SDK de TigerTag para Python

La versión en Python: leer, verificar, escribir y comparar. La página del playground es el mismo archivo en ambos SDK.

Repositorio: TigerTag-SDK-Python

TigerTag Studio Manager

Gestor de inventario de escritorio de código abierto para Windows, macOS y Linux, compatible con TigerTag Pod y lectores ACR122U.

Repositorio: TigerTag-Studio-Manager

TigerTag RFID Connect

La aplicación móvil oficial: lee y escribe chips con el NFC integrado del teléfono.

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 (una etiqueta Maker), 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.

¿Hay una versión para Python?

Sí: TigerTag-SDK-Python es la versión en Python de la misma API, y ambos SDK sirven la misma página de playground.

¿Bajo qué licencia está el SDK?

Apache-2.0, que incluye una concesión expresa de patentes. Implementar el propio protocolo TigerTag no requiere ninguna licencia.

Un comando para empezar

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

Ver en npm