Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.
ATR Parser Comparison — Which Tool Decodes Your Smart Card?
Every smart card, from your SIM to your credit card's chip, announces its identity with an ATR (Answer To Reset) — a byte string sent when the card is reset or powered on. Parsing the ATR is the first step in any smart card application: it tells you the protocol (T=0 or T=1), supported clock frequencies, historical bytes, and status information. Several online tools decode ATR strings, but they differ in depth, accuracy, and usability.
What an ATR Contains
An ATR is a sequence of bytes structured per ISO 7816-3:
3B 7F 96 00 00 80 31 E0 73 66 21 13 57 4A 23 64 00 00 00 80
| |___________| | |___________| |_______________| |
TS T0 T1-Ti Historical bytes TCK
| | Interface bytes
Initial Format
Character byte
| Byte | Name | Function |
|---|---|---|
| TS | Initial Character | Direct/inverse convention (3B or 3F) |
| T0 | Format Character | Indicates which interface bytes (TA1, TB1, TC1, TD1) follow |
| TA1-TD1 | Interface Bytes | Clock frequency, protocol type, guard time, waiting time |
| T1-TK | Historical Bytes | Card-specific info (manufacturer, OS, card type) |
| TCK | Check Character | XOR checksum (only for T=1 protocol) |
ATR Parser Comparison
| Feature | CardWise ATR Decoder | smartcard-atr GitHub | PC/SC Workbench |
|---|---|---|---|
| Platform | Web (browser-based, no install) | GitHub (Python script) | Desktop (Windows) |
| Ease of Use | Paste ATR → instant decode | Command-line, requires Python | GUI, requires PC/SC reader |
| Real-time Card Read | Yes (WebUSB + reader) | No (manual input) | Yes (requires physical reader) |
| Interface Byte Parsing | Full (TA1-TD4) | Full | Full |
| Historical Byte Interpretation | Vendor-aware (NXP, Gemalto, Infineon) | Raw + common patterns | Raw + card-specific DB |
| Protocol Detection | T=0, T=1, T=15 | T=0, T=1, T=15 | T=0, T=1, T=15 |
| Privacy | Client-side parsing (no data uploaded) | Local (CLI) | Local (desktop) |
| Card Database | Built-in known-ATR lookup | Community-maintained list | Bundled with PC/SC |
How to Use the CardWise ATR Decoder
The CardWise ATR Decoder runs entirely in your browser — no data is sent to a server. Here is how to use it:
- Get the ATR from your card: Use an NFC reader (like the ACR122U) and a PC/SC tool to send a warm reset. The card responds with the ATR bytes.
- Paste the ATR: Enter the hex string (with or without spaces) into the input field on the ATR Decoder page.
- Review the decode: The tool shows each byte, its meaning per ISO 7816-3, the detected protocol, and any vendor-specific historical byte patterns it recognizes.
3B 7F 96 00 00 80 31 E0 73 66 21 13 57 4A 23 64 00 00 00 80 decodes as:
• TS = 3B (direct convention)
• T0 = 7F (historical bytes = 15 bytes, TA1/TB1/TC1/TD1 present)
• TD1 = 80 (T=0 protocol for the first interface)
• Historical bytes = 31 E0 73 66 21 13 57 4A 23 64 00 00 00 (NXP JCOP card)
• TCK = 80 (checksum valid for T=1; absent for T=0)
Common ATR Patterns
| Card Type | Typical ATR Prefix | What It Means |
|---|---|---|
| MIFARE DESFire EV3 | 3B 8F 80 01 80 4F 0C... | ISO 14443-4, DESFire application |
| Java Card (JCOP) | 3B 7F 96 00 00 80 31 E0... | T=0, JCOP OS, GlobalPlatform capable |
| SIM/USIM | 3B 9F 95 80 1F C3 80... | T=0, 3G/4G SIM with USIM app |
| YubiKey 5 (PIV) | 3B F5 18 00 00 81 31 FE 45... | T=1, PIV application active |
| French eID | 3B 7E 94 00 00 80 31... | T=0, French national eID |
ACR122U Smart Card Reader — Read ATR from any ISO 7816 or ISO 14443 card. PC/SC compatible, works with the CardWise ATR Decoder for instant smart card identification.
— Check Price on Amazon
Why ATR Parsing Matters
ATR parsing is not just academic. It has practical applications:
- Card identification: Before sending application APDUs, you need to know what card you are talking to. The ATR tells you the OS, protocol, and capabilities.
- Protocol negotiation: T=0 and T=1 have different APDU framing rules. You must detect the protocol from the ATR before sending commands.
- Driver selection: PC/SC middleware uses the ATR to select the correct card driver. If the ATR is unknown, the middleware falls back to raw APDU mode.
- Security auditing: The historical bytes can reveal the card manufacturer, OS version, and patch level — useful for vulnerability assessment.
Related Comparisons
- TLV/BER-TLV Parser Comparison — parsing EMV and smart card data structures
- T=0 vs T=1 Protocol — the transport protocols detected by ATR
- GPO vs AC Commands — EMV contactless transaction flow
- Java Card vs SIM Card — smart card platforms identified via ATR
Summary
Ready to decode an ATR? Try our ATR Decoder now.