The developer toolkit for Polkadot. Build extrinsics, write smart contracts, and interact with Substrate chains — all from your browser.
Browser-based smart contract IDE for Polkadot Hub. Write Solidity, compile to EVM or PVM (PolkaVM), and deploy with native Polkadot wallets. No CLI, no MetaMask, no fragmented toolchain.
Visual extrinsic builder for the Polkadot ecosystem. Build, encode, decode, and submit any Substrate extrinsic with a dual-pane interface. Supports all pallets across all chains.
Documentation for input components, encoding/decoding APIs, and usage guides. Built with Fumadocs.
SS58, EVM, and hex address converter plus other Substrate utilities.
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript (strict mode) |
| Styling | Tailwind CSS + shadcn/ui |
| Polkadot Client | Dedot |
| Wallet | LunoKit (Polkadot.js, Talisman, SubWallet) |
| Smart Contracts | Solidity → EVM / PVM via PolkaVM |
| Docs | Fumadocs |
| Testing | Jest + React Testing Library |
| Deployment | Vercel (Edge + Serverless) |
| Package Manager | Yarn 1.x |
Polkadot, Kusama, Westend, Paseo, Asset Hubs, People chains, Coretime chains.
- Node.js 18+
- Yarn 1.x (
npm install -g yarn)
# Clone the repository
git clone https://github.com/itsyogesh/relaycode.git
cd relaycode
# Install dependencies
yarn install
# Start the development server
yarn devOpen http://localhost:3000 in your browser.
Copy the example and configure:
cp .env.example .env| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_APP_URL |
Application URL | http://localhost:3000 |
NEXT_PUBLIC_DEFAULT_CHAIN |
Default chain identifier | pop-network-testnet |
NEXT_PUBLIC_SUPPORTED_CHAINS |
JSON array of supported chains | See .env |
| Command | Description |
|---|---|
yarn dev |
Start development server |
yarn build |
Production build |
yarn start |
Start production server |
yarn lint |
Run ESLint |
yarn test |
Run Jest tests |
yarn test:watch |
Run tests in watch mode |
app/
(marketing)/ # Landing pages
builder/ # Extrinsic builder
studio/ # Contract Studio IDE
docs/ # Documentation (Fumadocs)
api/
og/ # Dynamic OG image generation
compile/ # Solidity compilation endpoint
components/
builder/ # Extrinsic builder components
studio/ # Contract Studio components
params/inputs/ # Substrate type input components
ui/ # shadcn/ui base components
context/ # React context providers
hooks/ # Custom React hooks
lib/ # Utility libraries
types/ # TypeScript type definitions
The extrinsic builder includes type-aware input components for every Substrate type:
Account, Amount, Balance, Bool, BTreeMap, BTreeSet, Bytes, Call, Enum, Hash (H160/H256/H512), KeyValue, Moment, Option, Struct, Text, Tuple, Vector, VectorFixed, Vote, VoteThreshold.
Each component maps directly to SCALE-encoded Substrate types and supports validation, encoding, and real-time feedback.
Relaycode is deployed on Vercel. Pushes to master trigger automatic production deployments.
OG images are generated dynamically at the edge via next/og ImageResponse routes:
/api/og/home— Homepage/api/og/studio— Contract Studio/api/og/builder— Extrinsic Builder/api/og/docs— Documentation
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Commit your changes
- Push to the branch (
git push origin feat/my-feature) - Open a Pull Request
Funded by a Web3 Foundation grant. Built with Dedot and LunoKit.


