NFC chip encyclopedia API client — look up NFC Forum types, NDEF records, operating modes, ISO 14443, and FeliCa specifications from NFCFYI.
Project description
nfcfyi
NFC chip encyclopedia API client for Python. Look up NFC chips from NTAG, MIFARE, ST25, FeliCa, and ICODE families, NFC Forum Tag Types 1-5, NDEF record types, operating modes, ISO 14443/15693 standards, and contactless use cases from NFCFYI -- the comprehensive NFC reference with 288 records covering every major chip family in commercial and industrial use.
Extracted from NFCFYI, an NFC technology platform with 288 records spanning chip specifications, manufacturer product lines, security protocols, frequency bands, and deployment guides used by embedded systems engineers, IoT architects, and mobile payment developers worldwide.
Explore NFC at nfcfyi.com -- Chip Explorer | Standards Reference | NDEF Types | Use Cases
Table of Contents
- Install
- Quick Start
- What You'll Find on NFCFYI
- API Endpoints
- Command-Line Interface
- MCP Server (Claude, Cursor, Windsurf)
- REST API Client
- Learn More About NFC
- Also Available
- Tag FYI Family
- FYIPedia Developer Tools
- License
Install
pip install nfcfyi[api] # API client (httpx)
pip install nfcfyi[cli] # + CLI (typer, rich)
pip install nfcfyi[mcp] # + MCP server
pip install nfcfyi[all] # Everything
Quick Start
from nfcfyi.api import NFCFYI
with NFCFYI() as api:
# Search chips, standards, NDEF types, glossary
results = api.search("ntag")
print(results)
# Look up a specific NFC chip
ntag215 = api.chip("ntag215")
print(ntag215["name"], ntag215["memory_size"]) # NTAG215 504 bytes
# Compare two NFC chips side-by-side
diff = api.compare("ntag213", "ntag215")
print(diff)
# Discover a random chip
surprise = api.random()
print(surprise["name"])
What You'll Find on NFCFYI
NFCFYI is a comprehensive NFC chip encyclopedia covering chips, standards, NDEF record types, operating modes, and real-world use cases. Near Field Communication (NFC) is a short-range wireless technology operating at 13.56 MHz that enables contactless data exchange between devices within approximately 4 cm -- the foundation of mobile payments (Apple Pay, Google Pay), transit cards (Suica, Oyster), access control, smart posters, product authentication, and IoT device pairing worldwide.
NFC Forum Tag Types (1-5)
The NFC Forum defines five standardized tag types with different memory, speed, and compatibility trade-offs. Each type maps to an underlying ISO standard and radio modulation scheme:
| Tag Type | Based On | Memory | Speed | Read/Write | Example Chips |
|---|---|---|---|---|---|
| Type 1 | ISO 14443A (Topaz) | 96 B - 2 KB | 106 kbps | R/W or read-only | Broadcom Topaz 512 |
| Type 2 | ISO 14443A | 48 B - 2 KB | 106 kbps | R/W or read-only | NTAG213, NTAG215, NTAG216 |
| Type 3 | FeliCa (JIS X 6319-4) | Up to 1 MB | 212/424 kbps | R/W or read-only | Sony FeliCa Lite-S, RC-S967 |
| Type 4 | ISO 14443A/B | Up to 32 KB | 106-424 kbps | R/W or read-only | MIFARE DESFire EV3, ST25TA |
| Type 5 | ISO 15693 (VICC) | Up to 64 KB | 26.48 kbps | R/W or read-only | ICODE SLIX2, ST25TV |
Type 2 dominance: NTAG 21x chips (Type 2) dominate consumer NFC applications due to low cost ($0.05-0.15 per tag), reliable 106 kbps communication, and broad smartphone compatibility. NTAG213 (144 bytes) suits URLs and small records, NTAG215 (504 bytes) is used for Nintendo Amiibo figures, and NTAG216 (888 bytes) handles vCards and multi-record NDEF messages.
Type 4 for security: MIFARE DESFire EV3 (Type 4) provides AES-128 encryption, mutual authentication, and up to 8 independent applications on a single card -- the standard for corporate access control, transit systems, and government identity programs requiring tamper-resistant credential storage.
Learn more: Chip Explorer | Glossary
NDEF Record Types
NFC Data Exchange Format (NDEF) is the standard message format for NFC tags. Each NDEF message contains one or more records, identified by a Type Name Format (TNF) field and a record type:
| Record Type | TNF | Type String | Description |
|---|---|---|---|
| Text | 0x01 (Well Known) | T | Plain text with language code (e.g. "en", "ja") |
| URI | 0x01 (Well Known) | U | URLs with prefix abbreviation (0x01=http://www., 0x02=https://www.) |
| Smart Poster | 0x01 (Well Known) | Sp | URI + title + action + icon for interactive posters |
| Handover Select | 0x01 (Well Known) | Hs | Bluetooth/Wi-Fi handover negotiation |
| MIME | 0x02 (Media-type) | varies | vCard (text/vcard), Wi-Fi config, Bluetooth OOB |
| External | 0x04 (External) | varies | Custom application-specific records |
| Android App Record | 0x04 (External) | android.com:pkg | Launches specific Android app on tap |
URI prefix abbreviation: The NDEF URI record type compresses common URL prefixes into a single byte -- 0x01 for http://www., 0x02 for https://www., 0x03 for http://, 0x04 for https://, and 30+ other prefixes including tel:, mailto:, and ftp://. This saves 7-15 bytes per record, critical for memory-constrained Type 2 tags.
Learn more: NDEF Types | Use Cases
Operating Modes
NFC devices operate in three primary modes, each serving different interaction patterns:
| Mode | Device Role | Initiator | Use Cases |
|---|---|---|---|
| Read/Write | Active reader + passive tag | Reader | Smart posters, product authentication, inventory |
| Card Emulation | Device emulates passive card | External reader | Apple Pay, Google Pay, transit cards, access control |
| Peer-to-Peer | Two active devices | Either | Android Beam (deprecated), device pairing, data sharing |
Host Card Emulation (HCE): Android 4.4+ introduced HCE, allowing apps to emulate NFC cards without a hardware Secure Element. HCE routes APDU commands from the NFC controller directly to an Android service, enabling cloud-based payment tokens and custom card emulation applications. Apple restricts card emulation to Apple Pay via the Secure Enclave.
Chip Families
Major NFC chip product lines from leading manufacturers:
| Family | Manufacturer | Tag Type | Memory Range | Key Feature |
|---|---|---|---|---|
| NTAG 21x | NXP | Type 2 | 144-888 bytes | Most popular, Amiibo (NTAG215), low-cost |
| NTAG I2C | NXP | Type 2 | 1-2 KB | I2C interface for MCU bridging |
| MIFARE Ultralight | NXP | Type 2 | 64-192 bytes | Transit ticketing, single-ride tokens |
| MIFARE DESFire | NXP | Type 4 | 2-8 KB | AES-128 crypto, multi-application |
| MIFARE Classic | NXP | Proprietary | 1-4 KB | Legacy access control, Crypto-1 (broken) |
| ST25TA | STMicroelectronics | Type 4 | 256 B - 64 KB | Augmented NDEF, tamper detection |
| ST25TV | STMicroelectronics | Type 5 | 256 B - 64 KB | VICC, long-range, anti-counterfeiting |
| FeliCa | Sony | Type 3 | Up to 1 MB | Suica, PASMO, high-speed 424 kbps transit |
| ICODE | NXP | Type 5 | 128 B - 8 KB | Library books, logistics, longer range |
MIFARE Classic vulnerability: MIFARE Classic's proprietary Crypto-1 cipher was reverse-engineered in 2008. The key recovery attack (MFOC/MFCUK) can extract all sector keys in seconds. New deployments should use MIFARE DESFire EV3 or NTAG 424 DNA with AES-128 authentication.
Learn more: Chip Explorer | Standards Reference
NFC vs RFID vs BLE
| Feature | NFC (13.56 MHz) | HF RFID (13.56 MHz) | UHF RFID (860-960 MHz) | BLE |
|---|---|---|---|---|
| Range | ~4 cm | ~1 m | 1-12 m | 10-100 m |
| Frequency | 13.56 MHz | 13.56 MHz | 860-960 MHz | 2.4 GHz |
| Power Source | Reader field | Reader field | Reader field | Battery |
| Data Rate | 106-424 kbps | 26-424 kbps | 40-640 kbps | 1-2 Mbps |
| Standards | ISO 14443, 18092 | ISO 14443, 15693 | ISO 18000-63, EPC Gen2 | Bluetooth 4.0-5.4 |
| Bidirectional | Yes (peer-to-peer) | Limited | No (backscatter only) | Yes |
| Phone Support | Native (iOS/Android) | Requires external reader | Requires external reader | Native |
Security and Authentication
Modern NFC chips implement multiple security layers for product authentication, access control, and payment applications:
| Feature | NTAG 213/215/216 | NTAG 424 DNA | MIFARE DESFire EV3 |
|---|---|---|---|
| Password Protection | 32-bit password | AES-128 | AES-128/192/256 |
| Dynamic URL (SUN) | No | Yes (per-tap counter) | No |
| Mutual Authentication | No | Yes (LRP protocol) | Yes (EV2/EV3 auth) |
| Message Authentication | No | CMAC (AES) | CMAC (AES) |
| Originality Signature | ECDSA | ECDSA | ECDSA |
| Applications | 1 | 1 | Up to 8 independent apps |
NTAG 424 DNA (DNA = Digital NFC Authentication) generates a unique encrypted URL on every tap, enabling cloud-based product authentication without specialized readers. Each tap increments a counter and produces a fresh AES-CMAC signature, making cloning practically impossible.
Key NFC Standards
| Standard | Organization | Scope |
|---|---|---|
| ISO/IEC 14443 A/B | ISO | Proximity cards -- modulation, anti-collision, transmission |
| ISO/IEC 15693 | ISO | Vicinity cards -- longer read range, lower data rate |
| ISO/IEC 18092 (NFCIP-1) | ISO | NFC interface and protocol -- active/passive communication |
| ISO/IEC 21481 (NFCIP-2) | ISO | NFC operating mode selection |
| JIS X 6319-4 | JISC | FeliCa contactless IC card standard |
| GlobalPlatform | GP | Secure element management for card emulation |
| EMV Contactless (Books A-D) | EMVCo | Contactless payment terminal specifications |
Learn more: Standards Reference | Glossary
API Endpoints
Free, no authentication required. JSON responses with CORS enabled.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/chip/{slug}/ |
NFC chip detail with specs |
| GET | /api/chip-family/{slug}/ |
Chip family with product line |
| GET | /api/standard/{slug}/ |
Standard detail with linked chips |
| GET | /api/operating-mode/{slug}/ |
Operating mode detail |
| GET | /api/ndef-type/{slug}/ |
NDEF record type detail |
| GET | /api/use-case/{slug}/ |
Use case with recommended chips |
| GET | /api/term/{slug}/ |
Glossary term definition |
| GET | /api/search/?q={query} |
Search across all content types |
| GET | /api/compare/?a={slug}&b={slug} |
Compare two chips |
| GET | /api/random/ |
Random chip discovery |
| GET | /api/openapi.json |
OpenAPI 3.1.0 specification |
Example
# Search for NTAG chips
curl -s "https://nfcfyi.com/api/search/?q=ntag" | python -m json.tool
Full API documentation at nfcfyi.com/api/. OpenAPI 3.1.0 spec: nfcfyi.com/api/openapi.json.
Command-Line Interface
nfcfyi search "ntag" # Search all content
nfcfyi chip ntag215 # Chip detail
nfcfyi compare ntag213 ntag215 # Side-by-side comparison
nfcfyi random # Discover a random chip
MCP Server (Claude, Cursor, Windsurf)
{
"mcpServers": {
"nfcfyi": {
"command": "uvx",
"args": ["--from", "nfcfyi[mcp]", "python", "-m", "nfcfyi.mcp_server"]
}
}
}
Tools: nfc_search, nfc_lookup, nfc_compare
REST API Client
from nfcfyi.api import NFCFYI
with NFCFYI() as api:
api.search("ntag") # Full-text search
api.chip("ntag215") # Chip detail
api.chip_family("ntag-21x") # Chip family
api.standard("iso-14443") # Standard detail
api.operating_mode("read-write") # Operating mode
api.ndef_type("uri") # NDEF record type
api.use_case("access-control") # Use case
api.glossary_term("ndef") # Glossary term
api.compare("ntag213", "ntag215") # Compare two chips
api.random() # Random discovery
api.openapi() # OpenAPI 3.1.0 spec
Learn More About NFC
- Browse: Chip Explorer · NDEF Types · Use Cases
- Reference: Standards · Operating Modes · Glossary
- API: REST API Docs · OpenAPI Spec
Also Available
| Platform | Install | Link |
|---|---|---|
| npm | npm install nfcfyi |
npm |
| Go | go get github.com/fyipedia/nfcfyi-go |
pkg.go.dev |
| Rust | cargo add nfcfyi |
crates.io |
| Ruby | gem install nfcfyi |
rubygems.org |
| MCP | uvx --from "nfcfyi[mcp]" python -m nfcfyi.mcp_server |
Config |
Tag FYI Family
Part of the FYIPedia open-source developer tools ecosystem -- automatic identification and data capture technologies.
| Site | Domain | Focus |
|---|---|---|
| BarcodeFYI | barcodefyi.com | 518 records -- barcode symbologies, standards, GS1 prefixes |
| QRCodeFYI | qrcodefyi.com | 425 records -- QR code types, versions, encoding modes |
| NFCFYI | nfcfyi.com | 288 records -- NFC chips, NDEF records, standards |
| BLEFYI | blefyi.com | 261 records -- BLE chips, GATT profiles, beacons |
| RFIDFYI | rfidfyi.com | 318 records -- RFID tags, frequency bands, EPC schemes |
| SmartCardFYI | smartcardfyi.com | 280 records -- smart cards, EMV, Java Card, platforms |
FYIPedia Developer Tools
| Package | PyPI | npm | Description |
|---|---|---|---|
| barcodefyi | PyPI | npm | Barcode symbologies, standards -- barcodefyi.com |
| qrcodefyi | PyPI | npm | QR code types, versions, encoding -- qrcodefyi.com |
| nfcfyi | PyPI | npm | NFC chips, NDEF, standards -- nfcfyi.com |
| blefyi | PyPI | npm | BLE profiles, beacons, chips -- blefyi.com |
| rfidfyi | PyPI | npm | RFID tags, readers, frequencies -- rfidfyi.com |
| smartcardfyi | PyPI | npm | Smart cards, EMV, platforms -- smartcardfyi.com |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nfcfyi-0.1.1.tar.gz.
File metadata
- Download URL: nfcfyi-0.1.1.tar.gz
- Upload date:
- Size: 666.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94f465d8d1cf4b69e425d442e9a693cf21bf17a9b0d2f4fa6cd5a351df311f5d
|
|
| MD5 |
32140309e9122de6f9a21e5bf4f5c226
|
|
| BLAKE2b-256 |
3b3aeea1051e57ed6bc00a871027deac8dae2f0d2ccea53f5d08b6516ebcb122
|
File details
Details for the file nfcfyi-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nfcfyi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2f03d68bdc65c4fc2c0ff2725eebe25372229b8fa830d3bc4d136778ad79872
|
|
| MD5 |
05298ff23ad412b276d61486b119cbec
|
|
| BLAKE2b-256 |
3c858c67bd5619c03c0420da7235331748195d7046ff0e191e1e63b1171cc438
|