User Memory
The portion of an NFC tag's memory available for storing user data (NDEF messages, application data). User memory is smaller than total memory because some bytes are reserved for the IC manufacturer's configuration, UID, and lock bits.
User Memory
User memory is the portion of an NFC tag's EEPROM storage that is available for application data — NDEF messages, custom application payloads, or raw binary data written by the tag owner. User memory is always smaller than total memory because every NFC chip reserves space for manufacturer configuration bytes, the UID, lock bits, the capability container, and internal registers.
Memory Map Examples
The relationship between total memory and user memory varies by chip:
| Chip | Total Memory | User Memory | Overhead |
|---|---|---|---|
| NTAG 213 | 180 bytes | 144 bytes | 36 bytes (20%) |
| NTAG 215 | 540 bytes | 504 bytes | 36 bytes (7%) |
| NTAG 216 | 924 bytes | 888 bytes | 36 bytes (4%) |
| MIFARE Ultralight EV1 | 80 bytes | 48 bytes | 32 bytes (40%) |
| NTAG 424 DNA | 416 bytes | 256 bytes | 160 bytes (38%) |
Higher-security chips like the NTAG 424 DNA have proportionally more overhead because they store cryptographic keys, file access control settings, and SDM configuration in addition to the standard NFC metadata.
What Consumes User Memory
When writing NDEF messages to user memory, the actual payload is wrapped in NDEF TLV (Type-Length-Value) structures that consume additional bytes:
- NDEF message header: 2-6 bytes depending on payload length.
- NDEF record header: 3-8 bytes per record (flags, type, ID, payload length fields).
- NDEF terminator TLV: 1 byte marking the end of NDEF data.
For example, storing a URL like https://example.com in an NTAG 213 requires roughly
25 bytes of user memory: 1 byte for the encoding URIs with compact prefix compression" data-category="NDEF">URI record identifier code (HTTPS prefix
abbreviation), the domain string, plus the NDEF wrapper overhead.
Maximizing Usable Space
Engineers can optimize user memory utilization through several techniques:
- Use NDEF URI abbreviation codes: The NFC Forum defines prefix codes (0x01 for
http://www., 0x02 forhttps://www., 0x03 forhttp://, 0x04 forhttps://) that replace common URL prefixes with a single byte. - Minimize record count: Each NDEF record adds header overhead. Combine data into fewer records when possible.
- Use short-form records: NDEF supports a Short Record (SR) flag that uses a 1-byte payload length field instead of 4 bytes for payloads under 256 bytes.
Related Terms
Related Content
NFC Tag Types Explained
Getting StartedHow to Read and Write NFC Tags
Getting StartedNFC Chips Compared
Getting StartedNFC for Beginners: Your First Project
Getting StartedNFC Troubleshooting Guide
Getting Started…frequency. lock-bits set: Once lock bits are programmed, user memory becomes read-only permanently. This is irreversible on…
Flutter NFC Development Guide
ProgrammingReact Native NFC Guide
ProgrammingPython NFC Programming Guide
Programming…nfc.tag.tt2.Type2Tag): # Read 4 bytes at page 4 (user memory starts at page 4) data = tag.read(4) print(f"Page 4:…
Frequently Asked Questions
The NFC glossary is a comprehensive reference of technical terms, acronyms, and concepts used in Near Field Communication technology. It is designed for developers, product managers, and engineers who work with NFC and need clear definitions of terms like NDEF, APDU, anti-collision, and ISO 14443.
Each glossary term is cross-referenced with related NFC chips, standards, and other terms. For example, the term 'AES-128' links to chips that support AES encryption (NTAG 424 DNA, DESFire EV2/EV3), and the term 'ISO 14443' links to all chips compliant with that standard.
Yes. NFCFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai. Use the language selector in the header to switch languages.