Bittensor coldkey to EVM transfer โ the #1 stuck step
The Bittensor network has two address formats on the same chain: Substrate coldkeys (5...) and EVM addresses (0x...) on Chain ID 964. Your mining and staking rewards arrive on the coldkey side. Every EVM-compatible tool โ BRICKZ, MetaMask, EVM DEXs โ lives on the other side. Moving TAO between them is the step more than half of first-time cash-out users get stuck on. This is how it's done cleanly.
Updated 2026 ยท ~5 min read ยท No third-party bridge required
Why there are two address formats
Bittensor runs a Substrate chain with a separate EVM execution layer bolted on. Substrate and EVM address derivation work differently โ even from the same seed phrase, your Substrate address (5-prefix) and your EVM address (0x-prefix) are distinct strings. They are controlled by the same key material but they are not interchangeable.
The Bittensor chain exposes a native transfer precompile that lets you move value across the Substrate/EVM boundary on the same chain without a third-party bridge. SubWallet (and more recent versions of Polkadot.js) know how to call that precompile for you. You just send TAO from your Substrate address to a 0x... destination; the precompile does the rest.
TAO on Bittensor EVM is not the same as TAO on Ethereum. If you see TAO on Ethereum mainnet (e.g. wrapped-TAO via the
official bridge), that's a different asset on a different chain. This guide is about moving TAO
within the Bittensor chain, from its Substrate side to its EVM side.
Recommended path โ SubWallet (handles both sides)
SubWallet is the wallet of choice here because it natively supports both the Substrate and EVM sides of Bittensor in one interface. You import once, you see both addresses.
- Install SubWallet. Go to subwallet.app. Verify the URL โ phishing clones of wallet sites are common and they'll drain your seed on import. Install the browser extension or the mobile app.
- Import your coldkey seed phrase. Select "Import from seed phrase" and paste the 12 or 24 words from your existing Bittensor coldkey. SubWallet derives both the Substrate (
5...) and EVM (0x...) addresses automatically.
- Enable both networks. In SubWallet's network list, enable Bittensor (Substrate) and Bittensor EVM (Chain ID 964). They'll show up as two tabs or entries on your account.
- Copy your own
0x... EVM address. From the Bittensor EVM tab, copy the address. This is where your TAO is about to land.
- Switch to the Bittensor (Substrate) tab. Click Send. In the recipient field, paste your own
0x... address. SubWallet recognises the cross-side transfer and routes it through the Bittensor native transfer precompile.
- Confirm. Sign the transaction. ~12 seconds later, the TAO appears on your EVM address.
- Verify on-chain. Go to evm.taostats.io, paste your
0x... address. You should see the incoming transfer with a recent timestamp.
Alternative path โ MetaMask on the EVM side
If you prefer MetaMask as your EVM wallet, you can still use SubWallet for the bridge and MetaMask to receive:
- Add Bittensor EVM as a custom network in MetaMask:
- Network name: Bittensor EVM
- Chain ID: 964
- Currency: TAO
- RPC URL: see Bittensor Docs for the current public RPC
- Block explorer:
https://evm.taostats.io
- Copy your MetaMask
0x... address.
- In SubWallet (or Polkadot.js), send TAO from your Bittensor coldkey to that MetaMask address.
- Confirm on the explorer.
MetaMask has no native Substrate support โ if you want everything in one wallet, SubWallet wins.
Alternative path โ Polkadot.js
Hardcore route, no extension required but no UI polish either:
- Open the Polkadot.js apps UI at polkadot.js.org/apps and connect to the Bittensor RPC.
- Find the EVM pallet's transfer extrinsic (name varies between versions โ look for
evm.call or the native transfer precompile address 0x...0800).
- Submit the extrinsic from your coldkey account with your EVM address as destination.
This is the most finicky option. If the UI path works for you, use it.
Always test first
Send 0.01 TAO as a test before any real transfer. Gas on Bittensor EVM is a few cents. A mistake at this step is potentially your entire stack. The test isn't optional โ every experienced on-chain user does it, every time, for every new path.
Common mistakes
- Sending to an Ethereum mainnet
0x address by mistake. A 0x... address exists on thousands of chains. Sending Bittensor EVM TAO to an Ethereum-only wallet means the funds are accessible only if you control that same address on Bittensor EVM (which, if it's a hot wallet you created on Ethereum, you do โ you just add the network). Sending to a CEX's Ethereum deposit address when the CEX doesn't support Bittensor EVM = funds stuck until CEX helps, fees involved, no guarantee.
- Forgetting gas. The EVM side charges gas in TAO. If you send every last drop of TAO to an EVM address, you can't transact from that address until you top it up. Always leave a few cents' worth.
- Using a clone SubWallet site. The official is
subwallet.app. Anything else in search results that looks similar โ check before you install.
- Typing the address. Always copy-paste. Always verify the first 6 and last 6 characters match. Sophisticated malware rewrites clipboard contents; experienced users check the pasted result.
What's on your EVM address now
Once the transfer confirms, you have liquid TAO on an EVM address you control. Every EVM-compatible Bittensor tool is now available to you:
- Swap on BRICKZ (TAO โ USDT, TAO โ any subnet alpha token, etc.)
- Stake via the Bittensor staking precompile at
0x0000000000000000000000000000000000000805
- Send to any CEX that lists TAO on the Bittensor EVM network (check their deposit screen first)
- Bridge to Ethereum via the official bridge if you need TAO on Ethereum for wrapped-TAO DeFi usage