---
title: Interop — polkadot.js, Dart SDK and EVM clients
description: How the three client stacks (TypeScript, Dart, EVM) map onto EmpoorioChain, and how accounts relate across them.
---

# Client interop on EmpoorioChain

| Stack | Library | Talks to |
|---|---|---|
| TypeScript | `@polkadot/api` (WebSocket to `wss://rpc.testnet.empooriochain.org`) | native pallets |
| Dart / Flutter | `empoorio_chain_sdk` (polkadart), used by Eoonia, Ailoos App, SkoopoS App | native pallets |
| Rust | `subxt` | native pallets |
| EVM (ethers, viem, web3.js) | any, custom network chain id 2026 | Frontier EVM only |

## One seed, two accounts

An sr25519 account (SS58 prefix 2026, addresses start with `vx…`) and an H160 for the EVM derive from the same phrase. The H160's native balance is held at `blake2_256("evm:" ++ H160)`. Eoonia shows both and funds one from the other. EVM clients cannot see native assets (DUSD, staking, NFTs in `pallet-uniques`).

## Browser injection

The Eoonia Extension exposes `window.injectedWeb3.eoonia` (the standard Substrate injected interface) — sites use it as a `Signer`. There is no EIP-1193 provider from Eoonia yet.

## Deep links

`eoonia://pay`, `eoonia://sign`, `eoonia://link`, `eoonia://mint` hand a request to the app; the wallet shows the decoded call and real fee, returns submitted / included / finalized. Live today for account linking and NFT minting from Empoorio Warehouse.

## Legacy compatibility

There is no web3.js-style "legacy" layer to bridge; the migration guides at `/developers/evm-to-empooriochain` map ERC-20/721/3643/4626/4337 patterns onto pallets and precompiles.
