Skip to content

0xKheops/revive-dapp

Repository files navigation

Revive Mapper

Map your Substrate address to its Revive Ethereum address to interact with smart contracts deployed on Asset Hub.

🌐 Live at: https://revive.kheops.wtf

What is Revive?

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.

Features

  • 🔗 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

Supported Networks

Network Status
Polkadot Asset Hub ✅ Production
Kusama Asset Hub ✅ Production
Paseo Asset Hub 🧪 Testnet
Westend Asset Hub 🧪 Testnet

Development

Prerequisites

  • Node.js 20+
  • pnpm 10+

Setup

# Install dependencies
pnpm install

# Start development server
pnpm dev

The app will be available at http://localhost:5173.

Scripts

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

Tech Stack

  • 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

Project Structure

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

How It Works

  1. Connect Wallet — Connect your Substrate wallet (Talisman, polkadot.js, etc.)
  2. Select Network — Choose which Asset Hub network to use
  3. Map Address — Sign a transaction to create the mapping on-chain
  4. 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.

License

AGPL-3.0

About

Dapp used to map revive accounts on Polkadot Hub

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors