Namso Gen · Random IBAN · Random IMEI · Random MAC · UUID Gen · Password Gen · Lorem Ipsum · JSON Format · Hex to ASCII · Base64 · Hash Gen · Char Counter · QR Code · URL Encode · Morse Code · Binary Text · HTML Entities · Age Calc · Compound Calc

How IMEI Numbers Are Structured: TAC, SNR, and Check Digit Explained

Decode the anatomy of any IMEI number. Learn what the TAC, serial number, and Luhn check digit mean, how they are assigned, and how networks use each segment.

IMEI Format Overview

An IMEI is exactly 15 digits long — no letters, no dashes, no spaces. The structure breaks into three segments: the first 8 digits form the TAC (Type Allocation Code), identifying the manufacturer and model; digits 9–14 are the SNR (Serial Number), a unique identifier for that specific unit; and digit 15 is a check digit calculated using the Luhn algorithm to validate the entire sequence.

For example, take the IMEI 352099101234568: the TAC 35209910 identifies the device as an Apple iPhone, the SNR 123456 is the unit serial, and 8 is the Luhn check digit. Every IMEI on every phone follows this exact structure.

The Type Allocation Code (TAC) — Digits 1–8

The TAC is the most information-dense part of any IMEI. The first 2 digits historically indicate which regional reporting body allocated the range — 35 for BABT (UK), 01 for PTCRB (North America), 86 for TAF (China), 45 for TTA (South Korea). The remaining 6 digits identify the specific manufacturer and device model.

Manufacturers apply to the GSMA for TAC allocations. Each TAC supports up to 1 million unique devices (6-digit serial = 000000–999999). When a flagship phone sells more than 1 million units, the manufacturer uses multiple TACs for the same model — which is why two identical phones can have different first 8 digits.

TAC Examples and the Old 6-Digit Format

Real-world TAC mappings include 35309911 for Apple iPhone 15 Pro, 35837110 for Samsung Galaxy S24 Ultra, 86937804 for Huawei P60 Pro, 35425211 for Google Pixel 8 Pro, and 35153614 for OnePlus 12. You can explore TAC-to-device mappings using our IMEI Generator.

Before 2004, the TAC was only 6 digits with a separate 2-digit Final Assembly Code (FAC) indicating where the phone was physically assembled. The GSMA absorbed the FAC into the TAC in April 2004, creating the modern 8-digit format. Documentation referencing a 6-digit TAC or "Final Assembly Code" is outdated.

The Serial Number (SNR) — Digits 9–14

The SNR is a 6-digit number that uniquely identifies your specific device within its model line. The range runs from 000000 to 999999, giving each TAC capacity for up to 1 million unique devices. Assignment can be sequential or randomized, depending on the manufacturer's production system.

The SNR alone does not encode manufacturing date, factory location, or hardware revision — it is purely an identifier. Some manufacturers assign sequentially (lower numbers = earlier production), but this is not standardized. Combined with the TAC, however, the SNR creates a globally unique identifier. No two devices should share the same TAC + SNR combination.

The Check Digit — Luhn Algorithm Explained

The 15th digit is calculated from the first 14 using the Luhn algorithm (modulus 10). Here is the process: write out 14 digits, double every second digit (positions 2, 4, 6...), subtract 9 from any doubled value ≥ 10, sum all digits, then the check digit is (10 - (sum mod 10)) mod 10.

The Luhn algorithm catches single-digit errors and most adjacent transposition errors. It is a simple error-detection tool, not a cryptographic check — you can easily calculate valid check digits. This is why tools like Random IMEI can generate structurally valid IMEIs for testing purposes.

How Networks Use IMEI Structure

Carriers use each IMEI segment differently. The TAC gets checked against the GSMA database to verify the device is type-approved, determine capabilities (5G, VoLTE), and flag devices with known vulnerabilities. The full 15-digit IMEI is checked against the GSMA IMEI Blacklist (Equipment Identity Register) which operates at three levels: white list (permitted), grey list (monitored), and black list (blocked from network access).

Dual-SIM phones have two IMEIs — one per SIM slot. Both share the same TAC (same device) but have different SNRs. The 16-digit IMEISV variant replaces the check digit with a 2-digit Software Version Number, helping networks identify firmware versions for security management.

Common IMEI Structure Misconceptions

"The first digits tell you the country of manufacture" — partially true but mostly outdated. The reporting body identifier indicates who allocated the TAC, not where the phone was made. Since the FAC was eliminated in 2004, there is no direct country-of-manufacture indicator. "You can tell the manufacturing date from the IMEI" — false, the structure encodes no dates. "All 15-digit numbers are IMEIs" — no, a valid IMEI must have a recognized TAC and correct Luhn check digit.

IMEI Structure for Developers

When building applications that work with IMEIs, validate in this order: check length (exactly 15 digits), verify all numeric characters, validate the check digit using Luhn, and optionally verify the TAC against a known database. Parse with: TAC = IMEI[0:8], SNR = IMEI[8:14], CD = IMEI[14].

For development and testing, use randomimei.com to generate structurally valid IMEIs with correct check digits. Verify generated numbers with our IMEI Validator to ensure your test environments accurately simulate production scenarios.