Skip to content
dungexn edited this page May 24, 2024 · 9 revisions

Welcome to the eSIM Wallet wiki!

This wiki is documented with the motivation of breaking down eSIM Wallet mobile app for everyone to understand.

Before getting into it, breakdown of eSIM Technology and Key Integration Point for building an eSIM wallet will help in understanding the project's tech stack.

eSIM Wallet:

  • Android App is under development at this moment.
  • Open source project which provides simple UX for managing eSIM profiles and non-custodial wallet to the end users.
  • Allow users to purchase eSIM and manage data subscriptions along with managing crypto funds using smart contract wallet.
  • The application identify end users' based on unique identifier from eSIM for Smart Contract Wallet creation. EID AND ICCID ARE STORED ON EUICC SECURE ELEMENT, REQUIRES ACESS FROM CARRIER APPLICATIONS AND/OR SYSTEM APPLICATION .

App

The mobile application is being built using react native and eSIM android APIs. Within this app the users’ are identified uniquely based on a custom fingerprint and with a user identifier we create a smart contract wallet.

Features

  • Identify end users' uniquely
  • Generate a keystore for end users'
  • Authenticate eSIM and deploy smart contract wallet for end users'
  • Simple UI to manage eSIM profiles and wallets.

Motivation

Successfully fetch EID and show it on the App UI.

The reason is the identify users’ uniquely.

💡 EID access requires CARRIER PRIVILEGES or Privilege Phone State Permission

Mitigation

To mitigate this issue for the MVP we are creating a custom fingerprint that act as unique identifier for now.

💡 This is a temporary solution until we get privileges.

Methodologies

Without CARRIER PRIVILEGES (Current)

  • The App creates a custom device fingerprint to uniquely identify the users
  • App bridge to android services and react native.

With CARRIER PRIVILEGES:

  • Build an LPA Extension mobile app.
  • The App identifies end users uniquely based on their eSIM uniqueness.
  • Able to access eSIM chips whose ARF/ARA contains the hash of OpenEUICC's signing certificate.
  • We need to share an apk signature (SHA-1 or SHA-256) to include in eSIM rules , later used for authentication. How to get CARRIER PRIVILEGES? Work in progress

Testing Methodologies for MVP:

Using eSIM Test Profiles which requires a test certificate issued by a GSMA CI.

This is the guide provided to create test certificate and how to get issued by GSMA CI.

The device downloading the test profiles must have a test certificate issued by a GSMA CI.

  • eSIM profile download and SM-DP+ handshake
  • eUICC secure element (access and security)
  • LPA app bridge to android services and react native frontend
  • Wallet creation and Smart contract deployment
  • Blockchain transactions through LPA/LUI
  • Unit tests

Method 2: Alternative Private Vendors

eSIM-as-a-service Solution Providers are alternates since some of them are providing eSIM bundles with flexible subscription plans, SDKs for development and testing.

💡 eSIM API/SDKs approach to integrate in app and test credits for testing.

The development is moving forward with method 2.

This is work in progress and the documentation will be updated as the applications are being build.