Skip to content

eSIM & iSIM Technology — Remote SIM Provisioning Guide

DodaTech Updated 2026-06-24 5 min read

In this tutorial, you'll learn about esim & isim technology. We cover key concepts, practical examples, and best practices.

eSIM (embedded Subscriber Identity Module) and iSIM (integrated SIM) replace the physical plastic SIM card with a programmable secure element — eSIM is a dedicated chip soldered to the device, while iSIM integrates the SIM function directly into the device's main application processor or modem chipset.

What You'll Learn

  • eSIM architecture: eUICC, LPA, SM-DP+, SM-DS
  • GSMA Remote SIM Provisioning (RSP) flow for consumer devices
  • M2M eSIM vs Consumer eSIM differences
  • iSIM: integration into SoC, security, and market outlook
  • Profile switching and multi-IMSI use cases

Why eSIM Matters

The physical SIM card has been unchanged for 30 years. eSIM eliminates the need to handle, ship, and swap plastic cards. Users can activate a mobile plan without visiting a store — scan a QR code or download via app. For IoT devices, eSIM means OTA profile switching without physical access. The global eSIM market reached $10 billion in 2026, with over 2 billion eSIM-capable devices shipped.

DodaZIP uses eSIM-like remote provisioning for its enterprise licensing — license profiles are downloaded and activated OTA, eliminating physical license keys.

Learning Path

flowchart LR
  A[Physical SIM History] --> B[eSIM Architecture
You are here] B --> C[GSMA RSP Process] B --> D[M2M vs Consumer eSIM] C --> E[iSIM & Future] style B fill:#f90,color:#fff

eSIM Architecture

flowchart TD
  subgraph Device[UE / IoT Device]
    eUICC[eUICC
Embedded UICC] LPA[LPA
Local Profile Assistant] App[LPA App / UI] end subgraph Network[SIM Remote Provisioning] SM_DP[SM-DP+
Subscription Manager Data Preparation] SM_DS[SM-DS
Subscription Manager Discovery] end subgraph Operator[MNO Systems] OSS_BSS[OSS/BSS] ENT[Entitlement Server] end App --> LPA LPA --> eUICC LPA -. HTTPS .-> SM_DP LPA -. HTTPS .-> SM_DS SM_DP --> OSS_BSS SM_DP --> ENT
Component Role
eUICC Embedded secure element that stores and runs multiple operator profiles
LPA Local Profile Assistant — device software that manages profile download and installation
SM-DP+ Subscription Manager Data Preparation — generates, secures, and delivers profiles to eUICC
SM-DS Subscription Manager Discovery Server — optional relay for push notification when device is offline

Consumer eSIM Activation Flow

When a user scans a QR code to activate an eSIM plan:

sequenceDiagram
    User->>LPA: Scan QR code (activation code)
    LPA->>SM-DS: Initiate profile download
    LPA->>SM-DP+: HTTPS GET /profile
    SM-DP+->>LPA: Signed profile package (bound to eUICC cert)
    LPA->>eUICC: Install profile (authenticated)
    eUICC->>eUICC: Decrypt profile with eUICC private key
    eUICC->>LPA: Profile installed (ICCID + IMSI active)
    LPA->>User: Profile ready
    eUICC->>MNO: Attach to network (IMSI authenticated)
class ESIMProfileManager:
    def __init__(self):
        self.profiles = {}
        self.active_profile = None

    def download_profile(self, activation_code, eid):
        print(f"[LPA] Activation code: {activation_code}")
        print(f"[LPA] Resolve SM-DP+ from activation code")
        print(f"[LPA] Establish HTTPS + mutual TLS with SM-DP+")
        print(f"[SM-DP+] Bind profile to EID {eid}")
        profile_id = f"PROFILE-{hash(activation_code)%10000}"
        self.profiles[profile_id] = {
            "state": "installed", "eid": eid
        }
        print(f"[eUICC] Profile {profile_id} decrypted and installed")
        self.active_profile = profile_id
        return profile_id

    def switch_profile(self, profile_id):
        if profile_id not in self.profiles:
            print(f"[LPA] Profile {profile_id} not found")
            return False
        if self.active_profile:
            self.profiles[self.active_profile]["state"] = "disabled"
        self.profiles[profile_id]["state"] = "active"
        self.active_profile = profile_id
        print(f"[LPA] Switched to profile {profile_id}")
        print(f"[eUICC] Detach from old network, attach with new IMSI")
        return True

mgr = ESIMProfileManager()
p1 = mgr.download_profile("SCP:891.049.000...", "EID-8901234567890123456789")
mgr.switch_profile(p1)

Expected output:

[LPA] Activation code: SCP:891.049.000...
[LPA] Resolve SM-DP+ from activation code
[LPA] Establish HTTPS + mutual TLS with SM-DP+
[SM-DP+] Bind profile to EID EID-8901234567890123456789
[eUICC] Profile PROFILE-8142 decrypted and installed
[LPA] Switched to profile PROFILE-8142
[eUICC] Detach from old network, attach with new IMSI

M2M vs Consumer eSIM

Aspect Consumer eSIM (GSMA SGP.22) M2M eSIM (GSMA SGP.02)
Trigger User-initiated (QR code, app) Network-initiated (SM-SR push)
Discovery SM-DS optional SM-SR always present
Profile download Direct HTTPS to SM-DP+ SM-SR relays to eUICC
User interaction Yes (LPA UI) None (headless)
Devices Phones, tablets, smartwatches Sensors, meters, cars

iSIM (Integrated SIM)

iSIM moves the SIM function from a separate chip into the device's SoC or modem:

Feature Traditional SIM eSIM iSIM
Form factor Removable card Soldered chip Integrated in SoC
Size 12x15 mm (plug) 4x4 mm <1 mm² (in silicon)
Security Dedicated secure element Dedicated secure element TrustZone / secure enclave
Cost $0.50-1.00 $0.30-0.80 $0.05-0.20
GSMA standard NA SGP.22 / SGP.02 SGP.41 (iUICC)

iSIM eliminates the separate eSIM chip entirely, reducing BOM cost and PCB space by 50%+ — critical for low-cost IoT devices. GSMA released the iUICC specification (SGP.41) in 2023, and Qualcomm, MediaTek, and Samsung already ship iSIM-capable chipsets.

Profile Switching Use Cases

  • Travel: Download a local profile when arriving in another country, keep home profile active for calls
  • Dual SIM: Two active profiles on one eUICC — personal and business lines
  • IoT roaming: Switch between home and visited network profiles based on location or cost

Common Errors

1. Confusing eSIM with eUICC

eSIM is the technology. eUICC is the secure element chip. The term "eSIM" is commonly used for both, but they are different.

2. Assuming eSIM Profiles Are Reusable

A profile is bound to a specific eUICC (EID). You cannot transfer a downloaded profile to another device. Delete the profile on the old device and issue a new one.

3. Underestimating LPA Integration Effort

LPA is a complex software stack. Device OEMs must integrate GSMA-certified LPA libraries, test with multiple SM-DP+ vendors, and handle error cases (network failures, expired activation codes).

Practice Questions

  1. What is the role of SM-DP+? Subscription Manager Data Preparation — generates operator profiles, encrypts them for the target eUICC, and delivers them over HTTPS.

  2. How does eSIM differ from iSIM? eSIM is a separate soldered chip. iSIM integrates the SIM secure element into the device SoC or modem, reducing size and cost.

  3. What is the LPA? Local Profile Assistant — the device-side software that manages eSIM profile download, installation, and user interaction.

Challenge: Design an eSIM provisioning system for a global IoT fleet of 100,000 asset trackers. Specify: M2M vs consumer approach, SM-DP+ selection, profile switching triggers (geofence-based), and an OTA fallback mechanism for devices with no cellular connectivity.

FAQ

Can I have multiple eSIM profiles active at once?

Yes, eUICC can store multiple profiles but typically only one is active at a time (two with Dual SIM Dual Standby). Switching between them takes seconds.

Is eSIM more secure than a physical SIM?

Yes. The eUICC is a tamper-resistant secure element with hardware-level isolation. Remote provisioning uses mutual TLS with operator-signed certificates.

Can eSIM be used in enterprise for device management?

Yes. eSIM enables zero-touch provisioning for enterprise devices — the IT admin orders plans from a connectivity provider, and devices activate automatically when powered on.


Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-24.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro