When buyers compare NFC tag quotes, the memory figure does more to move the unit price than anything else except order volume. Yet it's also the most misunderstood spec on the datasheet β "144 bytes" is not what you get to write, and paying for memory you'll never use is one of the most common (and most avoidable) cost mistakes in NFC projects.
Here's how we walk customers through the decision when they're not sure which chip to order β the same logic applies whether you're buying 500 tags for a pilot or 5 million for a retail program.
What the Memory Number Actually Means
Chip makers quote total EEPROM size. The NTAG213, NTAG215 and NTAG216 are the classic examples: 144, 504 and 888 bytes respectively, as specified in NXP's datasheets. But a chunk of that total is reserved for the chip's own housekeeping:
- UID / serial number β the factory-programmed unique ID (7 bytes on the NTAG21x family). Read-only, and identical every scan.
- Lock and configuration bits β how the chip knows what's read-only and how it behaves.
- Capability Container (CC) β a few bytes telling the reader how much usable memory exists and what format to expect.
What's left over is the user memory β the space your NDEF records actually occupy. In practice that's roughly 130 bytes usable on an NTAG213, ~480 on an NTAG215, and ~860 on an NTAG216. For a deeper chip-level comparison, see our NTAG213 vs NTAG215 vs NTAG216 guide.
Where Your Bytes Go: NDEF Overhead
Tags store data as NDEF records (NFC Data Exchange Format, the standard defined by the NFC Forum). Each record carries a small header β typically 3β6 bytes plus a type string β before your actual content. On top of that, NDEF uses 1β2 bytes of length accounting, and every URI record has a prefix byte that abbreviates common beginnings like https://www. down to a single byte.
The overhead is small, but it matters enormously on a 144-byte chip where it can eat 10% of your space before you've written anything useful. Some worked examples:
| Payload | Typical NDEF Size | NTAG213 (~130 B) | NTAG215 (~480 B) | NTAG216 (~860 B) |
|---|---|---|---|---|
| Short URL (clrfid.com) | ~25β35 bytes | β Easy fit | β | β |
| Long tracking URL with query string | ~80β130 bytes | β οΈ Tight | β | β |
| WiFi credential (SSID + password) | ~80β120 bytes | β οΈ Tight | β | β |
| Plain vCard (name, phone, email) | ~250β350 bytes | β Doesn't fit | β | β |
| vCard with photo / multiple links | ~600β800 bytes | β | β | β |
| Custom app payload (binary or text) | Project-specific | Size it before ordering β see below | ||
A Simple Way to Size It Yourself
- Write out your longest realistic payload β the full URL with parameters, the vCard with all fields populated, not the short version.
- Count its size in bytes (any text tool or online byte counter works; non-ASCII characters like Chinese take 2β3 bytes each in UTF-8).
- Add 10β15 bytes of NDEF overhead.
- Add headroom: if the payload may grow (longer URLs, extra vCard fields), buy the next memory tier up. Re-ordering tags is easy; re-ordering a million tags that are 20 bytes too small is not.
If you're unsure, most encoding tools β including the free NFC Tools app β let you compose the record on a sample tag first and see the exact byte count. Do that before you commit to a chip across a large order.
The Memory Trick That Saves Money: Don't Store It at All
For many projects the right answer is less memory, plus a server. Instead of writing a large payload to the tag, you encode one short URL with a unique ID and let the URL point to whatever lives in the cloud:
- The target page can be updated, redirected, or localized β the tag never changes.
- You keep the big NTAG216-tier memory budget out of your unit cost, often saving 30β50% per tag across a large program.
- Scan analytics (counts, geography, time) become possible β something a static vCard on 888 bytes can never give you.
This is how most consumer-brand NFC programs are built, and it's the architecture behind serialization-heavy uses like NFC asset tracking. If your payload is really just "a web experience," don't pay for 888 bytes. If it must work offline with no server β product authentication in a basement, equipment data sheets on a plant floor with no signal β then onboard memory genuinely matters.
What About Other Chips?
Memory tiers below the NTAG21x family exist and are worth knowing when cost is critical. NXP's MIFARE Ultralight family is the usual example: the MF0UL11 offers 48 bytes of user memory and the MF0UL21 offers 128 bytes, per NXP's datasheets β enough for a short URL or small text record at a lower cost than NTAG. The trade-off is compatibility: Ultralight is a transport-card heritage chip that reads on virtually all NFC phones via the NFC Forum Type 2 platform, but some third-party apps and older reader stacks behave more consistently with NTAG. For large-volume, URL-only projects, ask your supplier to quote both.
Memory Tiers at a Glance
Putting the common options side by side β all values from NXP's published datasheets, and all readable by standard NFC Forum Type 2 readers:
| Chip | User Memory | Typical Fit | Cost Position |
|---|---|---|---|
| MIFARE Ultralight EV1 (MF0UL11) | 48 bytes | Very short URLs, disposable transit/event uses | Lowest |
| MIFARE Ultralight EV1 (MF0UL21) | 128 bytes | Short URLs, small text records | Low |
| NTAG213 | ~130 bytes | Short URLs at very high volume | Lowβmid |
| NTAG215 | ~480 bytes | vCards, WiFi, most business uses | Mid |
| NTAG216 | ~860 bytes | Large payloads stored offline | Midβhigh |
One practical note that's easy to miss: memory also affects encoding throughput. Factory encoding equipment writes and verifies every byte of user memory on every tag, so an 888-byte NTAG216 takes measurably longer per tag than a 144-byte NTAG213 on the same line. At pilot scale you'll never notice; at millions of units it shows up in lead time and encoding cost. Another reason to size memory honestly rather than "buy the biggest just in case."
FAQ
Does more memory mean longer read range or faster scanning? No. Read range and speed are set by the antenna, the chip's RF design and the reader β not by EEPROM size. A 144-byte tag and an 888-byte tag with the same antenna read at the same distance. You pay for storage, not performance.
Can I add memory later? No. EEPROM is fixed at manufacture. You can re-write user memory as often as you like (until you lock it), but you can never grow it. This is why the sizing exercise above matters before a bulk order.
What if I lock the tag β does that change memory? Locking doesn't shrink usable memory, but it's permanent. Always test encoding, reading and your final payload before locking any batch β a mistake locked into a million tags is scrap.
Do you offer pre-encoded tags with our data written? Yes β URLs, vCards, WiFi payloads, custom text and UID-keyed records are all written and 100% verified on our line before shipping. See what we can encode for you, or browse the NFC tag product line for form factors.
Not sure which memory tier fits your project?
Send us your payload β the actual URL, vCard or data record β and we'll tell you which chip fits with headroom, and quote both options so you can see the cost difference. Factory-direct from Xiamen, quotes within 24 hours.
Get a Free Chip Recommendation