Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.

How to Identify NFC Tag Types — ATQA, SAK & ATS Complete Detection Guide

When an NFC reader detects a tag, it receives anti-collision bytes that identify the chip before any NDEF data is read. The combination of ATQA (Answer to Request), SAK (Select Acknowledge), and ATS (Answer to Select) uniquely fingerprint the tag's manufacturer, chip model, and capabilities. This guide maps every common combination.

1. The ISO 14443-3 Anti-Collision Exchange

READER                          TAG
  │                              │
  │──── REQA (0x26) ────────────→│  "Who's there?"
  │←──── ATQA (2 bytes) ────────│  "I'm here, here's my type info"
  │                              │
  │──── ANTICOLLISION (SELECT) ─→│  "Tell me your UID"
  │←──── UID (4/7/10 bytes) ────│  "Here's my serial number"
  │                              │
  │──── SELECT (UID) ───────────→│  "I'm talking to YOU"
  │←──── SAK (1 byte) ──────────│  "Selected. Here's what I am"
  │                              │
  │──── RATS ───────────────────→│  (ISO 14443-4 only)
  │←──── ATS ───────────────────│  "Here's my protocol capabilities"

2. ATQA — Answer to Request, Type A

ATQA is 2 bytes (16 bits). Bit 8 of each byte indicates UID size. The remaining bits encode the chip platform:

ATQA (hex)Chip FamilyUID SizeNotes
00 04MIFARE Ultralight / NTAG 21x7 bytes (NUID)NXP Type 2 Tag platform
00 44MIFARE Ultralight / NTAG 21x7 bytesSame chip, different cascade level
00 01MIFARE Classic 1K / Classic Mini4 bytesLegacy 4-byte UID
00 02MIFARE Classic 1K / Classic Mini7 bytesRandom ID on some readers
00 08MIFARE Classic 1K4 bytesMost common Classic 1K ATQA
00 18MIFARE Classic 4K4 bytesSame family, more sectors
03 44MIFARE DESFire (EV1/EV2/EV3)7 bytesISO 14443-4 (Type 4)
03 01MIFARE DESFire EV0 (legacy)7 bytesRare; EV3 is current

3. SAK — Select Acknowledge Decode

SAK is 1 byte with critical identification bits:

SAK bit meanings (from ISO 14443-3):
Bit 6: ISO 14443-4 compliant (ATS response available)
Bit 5: NFC Forum Tag Platform compliant
Bit 4: UID complete (cascade bit)
Bit 3: Anti-collision complete

# The key bit is bit 6:
# SAK bit 6 = 1 → card speaks ISO 14443-4 (APDUs, RATS, ATS)
# SAK bit 6 = 0 → card is MIFARE Classic/Ultralight (proprietary protocol)
SAKChipISO 14443-4NFC ForumNotes
0x08MIFARE Classic 1KNoNoProprietary CRYPTO1 protocol
0x18MIFARE Classic 4KNoNoSame family, 4K sectors
0x00MIFARE Ultralight / NTAG 21xNoYesNFC Forum Type 2 compliant
0x20MIFARE DESFire / NTAG 4xx / JCOPYesNoCard speaks APDU after RATS
0x28MIFARE Plus (SL1→SL3)YesNoBackward compatible with Classic

4. ATS — Answer to Select (ISO 14443-4 Cards)

If SAK bit 6 = 1, the reader sends RATS and the card responds with ATS. This provides more detail:

ATS structure:
[TL] [T0] [TA(1)] [TB(1)] [TC(1)] [Historical bytes (T1-Tk)] [CRC]

# Common ATS for DESFire EV3:
# 06 75 77 81 02 80  → TL=6, T0=75 (TA1+TB1+TC1 present, FSCI=5)
# TA1=77 (DRI=7, DSI=7 — fastest rates)
# TB1=81 (FWI=8, SFGI=1)
# TC1=02 (CID supported, NAD not supported)

# Common ATS for NTAG 424 DNA:
# 08 78 77 71 02  ... longer ATS with historical bytes

5. Quick Identification Table

ATQASAKChipNFC Forum Type
00 04 / 00 440x00NTAG 213/215/216, UltralightType 2
00 080x08MIFARE Classic 1K (NXP original)Not compliant
00 180x18MIFARE Classic 4KNot compliant
03 440x20MIFARE DESFire EV1/EV2/EV3Type 4
03 040x20MIFARE Plus (SL3)Type 4
0C 000x20FeliCa Lite (212/424 kbps)Type 3
--ISO 15693 (ICODE, ST25TV)Type 5
Type 5 (ISO 15693) note: Type 5 tags use ISO 15693 (Vicinity) instead of 14443. They don't have ATQA/SAK — they respond to an Inventory command with a DSFID + UID. Read range is up to 1.5m but data rate is much slower.

6. Python Detection Script

def identify_tag(atqa, sak, uid):
    """Identify NFC tag chip from ATQA, SAK, UID."""
    atqa_int = (atqa[1] << 8) | atqa[0]

    if sak == 0x00 and atqa_int in (0x0004, 0x0044):
        return 'NTAG 21x / MIFARE Ultralight (Type 2)'
    elif sak == 0x08:
        if atqa_int == 0x0008:
            return 'MIFARE Classic 1K'
        else:
            return f'MIFARE Classic (ATQA=0x{atqa_int:04X})'
    elif sak == 0x18:
        return 'MIFARE Classic 4K'
    elif sak == 0x20:
        if atqa_int == 0x0344:
            return 'MIFARE DESFire EV1/EV2/EV3 (Type 4)'
        else:
            return f'ISO 14443-4 Card (ATQA=0x{atqa_int:04X})'
    return f'Unknown tag: ATQA=0x{atqa_int:04X}, SAK=0x{sak:02X}'
Test this yourself: Our NFC Tag Type Detector identifies tag chips from ATQA, SAK, and UID — paste your anti-collision bytes and get the chip family, protocol specifics, and compatible readers.

Identifying NFC tags is easier with real tags in hand. The NTAG215 sticker pack (50 tags for ~$7) is a cheap way to start experimenting — Check Price on Amazon. If you want something more wearable, the Apple AirTag uses a customized NXP NFC chip and is great for seeing how consumer NFC works — Check Price on Amazon. For a hands-on smart ring experience, try the NTAG216 Ceramic Smart Ring — it's a Type 2 tag you wear on your finger — Check Price on Amazon.

Related Tools

NFC Tag Type Detector — Identify tags from ATQA/SAK/UID | NFC Capacity Calculator — Check NDEF capacity | NFC Tag Selection Guide — Choose the right tag | NTAG 213 vs 215 vs 216