Build on Polkadot
without the friction

Typed chain data, wallet auth, React hooks — the developer experience Polkadot has been missing. Install and ship.

TypeScript-first
20+ chains supported
Works with any wallet
lib/auth.ts
import { betterAuth } from 'better-auth';
import { siwp } from '@zig-zag/better-siwp';

export const auth = betterAuth({
  plugins: [siwp()],
});

The Problem

Ethereum has wagmi, viem, and RainbowKit. Solana has wallet-adapter and Anchor. Polkadot developers have been left to piece together their own tooling from scattered, untyped libraries.

ZigZag

A growing ecosystem of typed, tested, ready-to-use packages that make Polkadot development feel as smooth as any other chain. Install a package, read the types, build your app.

Packages

@zig-zag/chains

v1.1.0

Typed chain registry for the Polkadot ecosystem. 20+ chains with logos, named RPC providers, genesis hashes, Subscan URLs, light client specs, and network topology. Tree-shakeable.

Read docs
app.ts
import { polkadot, moonbeam } from '@zig-zag/chains';

polkadot.name          // "Polkadot"
polkadot.rpcUrls.dwellir  // "wss://polkadot-rpc.n.dwellir.com"
polkadot.chainIconUrl  // base64 SVG data URI
polkadot.genesisHash   // "0x91b171bb..."
moonbeam.decimals      // 18

@zig-zag/better-siwp

v0.1.2

Sign In With Polkadot for Better Auth. Nonce generation, signature verification, session management, cookie-based auth — all handled. Works with Talisman, SubWallet, Polkadot.js, or any compatible extension.

lib/auth.ts
import { betterAuth } from 'better-auth';
import { siwp } from '@zig-zag/better-siwp';

export const auth = betterAuth({
  plugins: [siwp()],
});

Coming next

@zig-zag/core

Framework-agnostic utilities extracted from production apps. SS58 address formatting, denomination conversions (toPlanck/fromPlanck), address display helpers. Zero framework dependencies.

@zig-zag/react

React hooks and providers for Dedot and LunoKit. Headless connect button, chain selector, wallet selector. Create your config, wrap your app, use the hooks.

Start building

Two packages, zero config, full TypeScript. Polkadot development that just works.

$ npm i @zig-zag/chains @zig-zag/better-siwp