Users in areas with limited internet infrastracture (No internet) need secure access to decentralized finance and Web3 services.
An Account Abstraction eSIM ToolKit (eSTK) and USSD Wallet that enables offline User Transaction relays over USSD. (No internet required).
Account Abstraction eSIM Wallet -: USSD → Ethereum → SMS (No internet required)
Demo: Mobile ETH USSD Simulator (Try without setup.)
-
Install SpacetimeDB CLI
curl -sSf https://install.spacetimedb.com | sh -
Start SpacetimeDB
spacetime start
-
Clone the repository
git clone https://github.com/stk2chain/stk2eth.git cd stk2eth -
Build and deploy
middlewaremodule on SpacetimeDBspacetime publish -c --server local --project-path middleware gateway2(You may replace
gateway2with any valid URL-safe name.) -
Start USSD client
cd ../ussdclient python ussdclient.py -
Start ETH client
cd ../ethclient python ethclient.py -
Start SMS client
cd ../client python smsclient.py -
Deploy smart contracts (local)
cd ../pyethclient/contracts anvil & # Start local Ethereum node ape run deploy
- Start ngrok to expose
ussdclient's HTTP Portngrok http 5000
- Copy the ngrok URL and configure it in your USSD provider (e.g., Africa's Talking):
Service Code: *384*6086# Callback URL: https://abc123xyz.ngrok-free.app/ussdeth - Launch the Simulator and test the flow
| Component | Purpose | Technology | Status |
|---|---|---|---|
| middleware | Manages USSD sessions, stores state, and processes transactions | Rust/WASM/SpacetimeDB | ✅ Active |
| ussdclient | Connects USSD gateways to SpacetimeDB and relays response via HTTP/Websocket | Rust/Axum | ✅ Active |
| ethclient | Sends and manages On Chain transactions | Rust | ✅ Active |
| smsclient | Sends transaction notifications via SMS | Rust/WASM | 🚧 In Development |
| contracts | Smart contracts for eSIM registry and account abstraction | Solidity/Ape | ✅ Active |
| eSTK | eSIM JavaCard Applet Wallet over USSD | JavaCard | 🚧 In Development |
