A Polkadot wallet holds keys for Polkadot accounts and signs transactions on Polkadot Hub and other chains in the network. This guide explains how Polkadot accounts differ from Ethereum accounts, what changed after the November 2025 Asset Hub migration, which components a wallet needs, and how to scope a build or judge a vendor's proposal.
An Ethereum wallet cannot be reused by changing the RPC URL. A Polkadot wallet must handle SS58 addresses, sr25519 keys, runtime metadata that changes with each upgrade, existential deposits, staking and nomination pools, and cross-chain transfers over XCM.
Polkadot wallets in use today
The Polkadot documentation lists these wallets, which show the feature set users expect from a new Polkadot wallet.
| Wallet | Type | Features named in the docs |
|---|---|---|
| Nova Wallet | Mobile, non-custodial | Staking, governance and cross-chain transfers for Polkadot and Kusama |
| Talisman | Browser extension, non-custodial | Polkadot and Ethereum apps across 150+ networks, NFTs, Ledger support and a fiat on-ramp |
| SubWallet | Browser extension and mobile, non-custodial | Multi-chain assets, XCM transfers, Ledger and Polkadot Vault support |
| Ledger | Hardware | Keys stay offline. The Polkadot generic app works with Ledger Live, Nova, Talisman and SubWallet. |
| Polkadot Vault | Air-gapped phone | A spare phone in airplane mode signs transactions through QR codes. |
How Polkadot accounts differ from EVM accounts
A Polkadot account is a 32-byte public key shown in the SS58 address format. The same key gives a different-looking address on each network, because SS58 adds a network prefix. Polkadot uses prefix 0, Kusama uses 2, and the generic Substrate format uses 42. A wallet must show the right encoding for the chain in use and tell users that an address in another format can be the same account.
Polkadot keys usually use sr25519, a Schnorr signature scheme over Ristretto, though Ed25519 and ECDSA keys are also supported. Seed phrases are BIP-39 mnemonics, but derivation does not follow BIP-44, because Substrate has its own path syntax with hard (//) and soft (/) junctions.
A wrong derivation path causes a common support problem: a user imports a phrase from another wallet, sees an empty account, and thinks the funds are gone. A new wallet should support the derivation schemes of Polkadot.js, Talisman, SubWallet, Nova and Ledger, and test each one.
Two more rules differ from Ethereum:
- Existential deposit: the chain removes ("reaps") an account whose balance falls below a minimum, and burns the remaining balance. The minimum is 0.01 DOT on Polkadot Hub and 1 DOT on the relay chain. A "send max" button must leave the deposit in place or empty the account on purpose.
- Decimals: DOT has 10 decimal places, not 18, and the smallest unit is the planck.
What the Asset Hub migration changed for wallets
Polkadot moved balances, staking, governance, proxies, multisig and vesting from the relay chain to Asset Hub on November 4, 2025. Kusama made the same move on October 7, 2025. The Polkadot docs now call Asset Hub Polkadot Hub and describe it as the entry point for users and app developers.
The migration changes where a wallet reads balances and sends transactions:
- A wallet must query Polkadot Hub for balances. The Polkadot wiki says a wallet that shows no balance has probably not been updated.
- Staking, governance votes and reward claims happen on Polkadot Hub.
- Crowdloan funds stayed locked on the relay chain, with a refund plan to Asset Hub.
- Users of Polkadot Vault 7.0 and earlier may need to add a Polkadot Hub account with the same derivation path as their relay chain account, usually
//polkadot.
Polkadot Hub also runs Ethereum-compatible smart contracts, and the docs describe an SS58 address and an H160 (EVM) address as two encodings of the same account in that setup. A wallet that supports Polkadot Hub contracts must show both forms and explain that they are one account.
Core components of a Polkadot wallet
| Component | What it does | Polkadot-specific detail |
|---|---|---|
| Key manager | Creates, encrypts and stores keys | sr25519 by default, Substrate derivation paths, and Ethereum-style keys for EVM chains |
| Chain client | Reads state, follows new blocks and submits extrinsics | polkadot-api (PAPI) or Dedot. A light client such as smoldot removes the need to trust one RPC node. |
| Metadata handling | Decodes calls and storage | Runtime metadata changes with upgrades. The wallet refreshes it and shows each call in readable form. |
| Transaction builder | Builds and signs extrinsics | Adds transaction extensions: nonce, mortality era, tip and the metadata hash check |
| Staking module | Bond, nominate, unbond and join pools | A nomination pool needs 1 DOT to join. Direct nomination needs a much larger bond. Unbonding takes 28 days. |
| XCM transfers | Moves assets between chains | Estimates fees on both chains and handles reserve transfers and teleports |
| dApp connector | Gives websites access to accounts and signing | The injected-extension interface used by Polkadot dApps, and optionally WalletConnect |
The minimum bond for direct nomination changes over time. The Polkadot wiki's chain state page listed 250 DOT to submit a nomination in October 2026, so a wallet should read the current value from the chain.
Signing with hot keys, Ledger and Polkadot Vault
Ledger support on Polkadot once needed a separate Ledger app for each chain. The current Polkadot generic app works on the relay chain, system chains and parachains, and runtime upgrades do not break it. It relies on the metadata hash check from RFC-0078: each transaction commits to a hash of the runtime metadata, so the device can confirm that it decodes the call correctly. A wallet's transaction builder must add this extension, or Ledger signing fails. Users with old per-chain Ledger accounts move their funds with the Polkadot Migration app first.
Polkadot Vault, formerly Parity Signer, turns an offline phone into an air-gapped signer that exchanges QR codes with the online wallet. To support Vault, a wallet implements the QR payload format and the flow for sending metadata updates to the phone.
Institutional users depend on the multisig and proxy pallets. For example, a staking proxy lets a hot key perform staking actions only, while the main key stays offline.
Polkadot wallet development scope
The general decisions are the same as for any wallet: custodial or non-custodial, browser extension or mobile, and whether to use MPC, which the blockchain wallet development guide covers. Polkadot adds its own questions:
- Which chains: Polkadot Hub only, or also parachains such as Moonbeam, Astar, Hydration and Bifrost. Each parachain has its own assets, and some use a different account type.
- EVM accounts: Moonbeam uses 20-byte Ethereum-style addresses, so a wallet that covers it handles two account families.
- Governance: engaged holders expect OpenGov voting, delegation and conviction locks.
- Identity: on-chain identity lives on the People chain, so a wallet that shows names must query that chain too.
Build steps and effort
- Define the chains, account types and custody model. Decide whether to build a new wallet or fork an open-source one.
- Build the key manager, and test derivation against seed phrases from the main wallets.
- Integrate PAPI or Dedot with a light client and fallback RPC endpoints, pointed at Polkadot Hub.
- Implement transfers, existential deposit checks, fee estimates and readable call decoding.
- Add staking and nomination pools, then XCM transfers between the supported chains.
- Add Ledger and Vault signing, then order an external security review of key storage and the dApp connector.
As a rough estimate, a first release that is a non-custodial mobile app or extension covering Polkadot Hub, staking and a few parachains needs three to five engineers for four to six months. MPC custody, many parachains or institutional multisig flows add months to that. A fork of an open-source wallet reaches the first release sooner, but the team then maintains a large codebase it did not design.
Questions to ask a development team
- Which client library does the team use, and how does it handle runtime upgrades without breaking users?
- Has the team built the metadata hash extension and tested it on a real Ledger device?
- How does the team test derivation compatibility with other wallets?
- How does the wallet handle the existential deposit and XCM fee estimates?
- Did the team update its code to read balances and staking from Polkadot Hub after the migration?
For apps that connect to the wallet, see Polkadot dApp development. The Polkadot development page covers the wider platform, and Kusama uses the same stack, as described in Kusama development.
Frequently asked questions
Can I reuse an Ethereum wallet codebase for Polkadot?
Only in part. The UI, storage and security design carry over, but key derivation, address encoding, transaction building, metadata decoding and staking all need new code.
Where is my DOT balance after the Asset Hub migration?
Balances moved from the relay chain to Polkadot Hub on November 4, 2025, and stayed in the same account. If a wallet shows zero, it probably still reads the relay chain and needs an update.
Why does an imported seed phrase show an empty account?
The usual cause is a different derivation path or key type. The same phrase gives different accounts with sr25519 and ed25519, and with different paths.
Do I need my own Polkadot node?
No. Many wallets use public RPC providers and offer a light client for users who want less trust in a provider. Your own nodes improve reliability and privacy once traffic grows.
Is MPC custody available for Polkadot?
Yes, but MPC libraries support sr25519 and ed25519 less widely than ECDSA. Confirm that your MPC provider supports the key type you need.