Sem internet em primeiro lugar
As tabelas de referência e o catálogo TigerTag+ (cerca de 1 MB) vêm dentro do pacote. offline=True ou TIGERTAG_OFFLINE=1 desliga qualquer acesso à rede.
SDK de código aberto · protocolo TigerTag v2.2
O pacote tigertag transforma os 144 bytes de um chip TigerTag em material, cores, temperaturas e quantidade, verifica a assinatura ECDSA-P256 e cria novas tags. Os dados de referência vêm dentro do pacote, então tudo funciona sem internet logo após o pip install.
$ pip install tigertag
from tigertag import TigerTag
tag = TigerTag.from_pages(uid, payload) # from your NFC SDK
print(tag.pretty()) # human-readable summary
print(tag.verify()) # VALID / NOT SIGNED / INVALID
print(tag.to_dict()) # JSON-ready dictTudo o que o README documenta, em um único pacote que funciona sem internet.
As tabelas de referência e o catálogo TigerTag+ (cerca de 1 MB) vêm dentro do pacote. offline=True ou TIGERTAG_OFFLINE=1 desliga qualquer acesso à rede.
ECDSA-P256, totalmente sem internet, com a chave pública do id_version.json incluído. Instale tigertag[verify] para adicionar o pacote cryptography.
TigerTag.create() cria uma tag do zero, patch() retorna uma nova tag com campos alterados, erase() retorna os 80 bytes zerados que apagam um chip.
TigerTag.from_catalog() transforma um ID de produto TigerTag+ em uma tag completa pronta para gravar, a partir do catálogo oficial. catalog_entry() traz título, marca, SKU e foto.
O primeiro TigerTagDB de um processo procura dados novos no máximo uma vez por dia e nunca gera erro: em qualquer falha, usa os dados locais.
from_pages(uid, payload) aceita o que Android, iOS, Flutter e nfcpy retornam. O README tem um exemplo completo para um leitor ACR122U com nfcpy.
Uma TigerTag assinada traz uma assinatura ECDSA-P256 que liga o UID do chip aos dados do produto. O SDK a verifica sem chamar nenhum servidor. tag.verify() retorna um SignatureResult: ok é True só para uma assinatura válida, e status explica o motivo nos outros casos (sem assinatura, sem cryptography, sem chave pública, sem UID).

from_pages() aceita 144 bytes (páginas 0x04 a 0x27, dados e assinatura) ou 80 bytes (só dados). from_dump() aceita também um dump completo de 180 bytes e extrai dele o UID.

O comando tigertag lê o dump de um chip, mostra como texto, JSON ou campos brutos e atualiza os dados de referência. parse_tigertag.py é uma cópia completa e independente do SDK para projetos que não podem adicionar dependências: coloque o arquivo no projeto e importe TigerTag dele.
Um pacote Python, tigertag no PyPI, que lê, verifica, cria e altera chips NFC TigerTag de filamentos e resinas para impressão 3D. É de código aberto sob a licença Apache 2.0 e implementa o protocolo TigerTag v2.2.
Rode pip install tigertag no Python 3.8 ou mais recente. Adicione tigertag[verify] para assinaturas, tigertag[full] para todas as dependências opcionais ou tigertag[nfc] para os leitores PC/SC do playground.
Não. Os dados de referência vêm no pacote, então leitura e verificação funcionam sem internet. Desde a versão 1.3.0 o SDK procura dados novos no máximo uma vez por dia; offline=True, TIGERTAG_OFFLINE=1 ou auto_update=False desliga isso.
NTAG213, NTAG215 e NTAG216, e qualquer chip compatível com ISO 14443-3. Ele lê da mesma forma chips TigerTag e TigerTag+ e chips virgens prontos para programar.
tag.verify() confere a assinatura ECDSA-P256 do chip, que liga o UID aos dados do produto, com a chave pública incluída no pacote e sem chamar servidor. É preciso o UID: leia o chip com from_pages(uid, payload).
pip install tigertag e depois TigerTag.from_pages(uid, payload).
tigertag no PyPI