Map your Substrate address to its Revive Ethereum address to interact with smart contracts deployed on Asset Hub.
🌐 Live at: https://revive.kheops.wtf
Revive brings EVM compatibility to Polkadot's Asset Hub through the pallet-revive module. It allows Solidity smart contracts to run natively on Substrate chains.
This dapp helps users map their Substrate addresses to deterministic Ethereum-style addresses, enabling interaction with EVM contracts on Asset Hub while keeping control of their native Polkadot/Kusama accounts.
- 🔗 Address Mapping — Map your Substrate address to a derived Ethereum address
- 🔍 Inspect Mappings — Look up existing address mappings for any account
- ↩️ Unmap Anytime — Remove your mapping when no longer needed
- 🌐 Multi-Network — Supports Polkadot, Kusama, Paseo, and Westend Asset Hubs
- 👛 Wallet Support — Connect with any Substrate wallet via Kheopskit
| Network | Status |
|---|---|
| Polkadot Asset Hub | ✅ Production |
| Kusama Asset Hub | ✅ Production |
| Paseo Asset Hub | 🧪 Testnet |
| Westend Asset Hub | 🧪 Testnet |
- Node.js 20+
- pnpm 10+
# Install dependencies
pnpm install
# Start development server
pnpm devThe app will be available at http://localhost:5173.
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm test |
Run linting, type checking, and tests |
pnpm check |
Run Biome linter |
pnpm typecheck |
Run TypeScript type checking |
pnpm papi |
Regenerate Polkadot API descriptors |
- Framework: React 19 + TypeScript
- Routing: TanStack Router
- State: Zustand + TanStack Query
- Styling: Tailwind CSS 4 + shadcn/ui
- Blockchain: polkadot-api (PAPI)
- Wallets: Kheopskit
- Build: Vite
revive-dapp/
├── web/ # Main web application
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── home/ # Home page sections
│ │ │ ├── mapping/ # Mapping modal components
│ │ │ └── ui/ # shadcn primitives
│ │ ├── lib/ # Utilities and hooks
│ │ │ ├── networks.ts # Chain definitions
│ │ │ ├── revive-mapping.ts # Mapping logic
│ │ │ └── polkadot-api.ts # PAPI client
│ │ └── routes/ # TanStack Router pages
│ └── public/ # Static assets
├── .papi/ # Generated PAPI descriptors
└── whitelist.ts # PAPI whitelist config
- Connect Wallet — Connect your Substrate wallet (Talisman, polkadot.js, etc.)
- Select Network — Choose which Asset Hub network to use
- Map Address — Sign a transaction to create the mapping on-chain
- Use with EVM — Your mapped Ethereum address can now interact with Revive contracts
The mapping is deterministic: your Substrate address always maps to the same Ethereum address. The on-chain mapping allows the Revive runtime to recognize your account when interacting with smart contracts.