Skip to main content
REFERENCE
ALL CHAINS

Essentials Architecture

This page is for developers integrating with Essentials — building a dApp that wants users to sign in with their Elastos DID, requesting a signature, coordinating a multi-sig transaction, or shipping a fork of the wallet itself.

If you're a user who just wants to install Essentials and hold ELA, you want Essentials Wallet instead.

What it is

Elastos Essentials is a mobile application for Android and iOS built with Ionic, Angular, and TypeScript, wrapped for native devices with Apache Cordova. One codebase ships to both stores; native capabilities (camera, biometrics, secure storage) reach the web stack through Cordova plugins.

How the code is organized

Development is split across three main repositories:

RepositoryRole
Elastos.EssentialsRoot "orchestrator": Cordova config, submodules, shared SDKs, plugins, and tooling that assemble the full product.
Elastos.Essentials.AppThe main Ionic/Angular application: screens, services, modules, and translations.
Elastos.Essentials.APIA Node.js/Express backend for services that are awkward or unsafe to run only on the phone (multi-sig coordination, price aggregation, etc.).

The mobile UI stays focused on user experience; the API coordinates multi-party flows and aggregates network data.

Feature modules

The app is divided into roughly 15 feature modules, each covering a major product area:

  • launcher — home screen and widgets
  • identity — DID sessions and credentials
  • wallet — multi-chain assets
  • dappbrowser — in-app Web3 browsing
  • scanner — QR codes
  • crproposalvoting — Elastos DAO proposals
  • contacts
  • settings
  • hivemanager — personal Hive vault setup
  • developertools
  • Plus governance, bridging, and migration modules

They form one coherent super-app rather than a loose bundle of single-purpose tools.

Multi-chain wallet

Essentials supports 22+ blockchain networks from one recovery phrase. Examples:

  • Elastos — main chain, ESC (smart contracts), EID (identity)
  • Bitcoin (common address types)
  • Ethereum and EVM-compatibles — BNB Smart Chain, Polygon, Arbitrum, Avalanche, Fantom, Cronos, HECO, Gnosis, Fuse, IoTeX, Telos, Evmos, Kava, Celo
  • Tron and Cosmos (ATOM) — own derivation paths
  • Custom EVM networks added by RPC

EVM chains generally follow the standard Ethereum derivation path; Bitcoin uses common address types; Tron and Cosmos use their own paths. Ledger hardware wallets connect over Bluetooth on supported devices for higher assurance on large balances.

dApp browser internals

The dApp experience uses Cordova's InAppBrowser (a WebView). Essentials controls exactly what's injected before the page loads.

Four injected providers

ProviderTypical use
window.ethereumEVM-compatible flows (ESC, Ethereum, BSC, etc.), MetaMask-compatible API.
window.elastosElastos Connectivity flows: credentials, signing, intent-style calls.
window.unisatBitcoin-oriented operations and compatibility shims.
window.elamainElastos main chain addresses and signing.

A single dApp can work across EVM, Bitcoin-style, and Elastos-native interfaces without forcing every site to commit to one chain's API.

Approval flow

When a dApp requests something sensitive (e.g. eth_sendTransaction), the browser pauses the page flow, Essentials shows a review screen with human-readable details, and only then signs or rejects. The pattern mirrors how desktop wallets intercept sensitive RPC calls — adapted for touch-first UI and mobile OS constraints.

Phishing protection

The browser flags known bad domains using phishing URL detection with community-maintained lists, giving the user an explicit warning instead of letting a scam load silently.

WalletConnect v2

For dApps that run outside the in-app browser, Essentials supports WalletConnect v2. Sessions persist across app restarts.

WalletConnect v1 is EOL

WalletConnect v1 has reached end-of-life. Do not target it for new integrations.

The Essentials.API backend

The companion Express.js service is organized into modules:

ModuleWhat it does
Multisig coordinationStores pending transactions, collects signatures until the threshold is met.
Price feedsAggregated token prices for display in the wallet.
Staking dataInformation used by staking-related UIs.
Chainge swapsProxy/integration for cross-chain swap flows.
App updatesVersion checks and update notifications.

Coordination and network aggregation stay off the device where appropriate, while the app remains the sole authority for keys and approvals.

Multi-signature coordination protocol

Multi-sig wallets (e.g. 2-of-3 or 3-of-5) need a way for several people to sign the same transaction. The flow:

  1. Record — initiator submits the pending transaction to the API.
  2. Sign — each signer adds their signature when ready, in any order.
  3. Finalize — once the threshold is reached, the assembled transaction is ready to broadcast.
  4. Broadcast — the final signer (or any participant) submits the assembled transaction to the chain.

The API's job is coordination — keys never leave the signers' devices.

Connectivity SDK (Elastos Connectivity SDK)

Third-party apps integrate via the Elastos Connectivity SDK, which exposes an IConnector-style abstraction. A dApp requests actions such as:

  • Prove identity with DID credentials
  • Sign a transaction or message
  • Access Hive through the user's vault

Essentials acts as the implementation the user trusts: it shows the consent screen and uses local keys or vault sessions only after explicit approval.

The same intent-style URLs can be triggered:

  • Inside the dApp browser (via injected window.elastos)
  • Outside any browser (via deep links from another mobile app)

Either way, the approval surface stays familiar to the user.

For dApp builders

You do not embed Elastos cryptography in your app. You ask Essentials (or any compatible wallet) to perform the operation the user authorizes — same pattern as MetaMask for EVM, but extended to DID, signing, and Hive.

What this means in practice

  • Need to sign a user in with their Elastos DID? Use the Connectivity SDK from your web app; Essentials handles the credential request and consent screen.
  • Need to ask a user to sign an EVM transaction on ESC? Use the standard window.ethereum flow inside the in-app browser, or WalletConnect v2 from outside it.
  • Need to coordinate a multi-sig on the main chain? Use the multi-sig API endpoints; Essentials surfaces pending signatures in each signer's wallet automatically.

Maintenance status (2026)

The original Elastos Essentials repositories have seen varying levels of activity. Community-led forks under the Elastos DAO umbrella are typically the most actively maintained line for fixes and features as of 2026. Before relying on a build for production, check which organization's release line matches your support and distribution needs.