Skip to main content
SUBMIT A PRSUBMIT AN ISSUElast edit: Jun 02, 2025

Bittensor EVM Smart Contracts

A full ethereum virtual machine (EVM) runtime operates as an application layer on top of the Bittensor blockchain (Subtensor). This allows users to:

  • deploy most EVM smart contracts on subtensor without changing the code,
  • interact with deployed smart contracts on the subtensor blockchain, and
  • access standard Ethereum JSON-RPC methods.

Bittensor EVM smart contracts are executed solely on the Bittensor blockchain, not on the Ethereum blockchain.

See:

EVM and Subtensor wallets on the Bittensor blockchian

Bittensor wallets are based on Polkadot-style ss58 addresses, whereas Ethereum uses h160 addresses.

The holder of a private key for an ss58 address based on the corresponding public key can sign transactions on any Bittensor chain for thataddress. Anyone who creates key-pairs using btcli wallet, for example, holds the private key and the corresponding seed phrase, and hence can sign Bittensor transactions for that wallet.

Similarly, creating an Ethereum wallet gives you control of the h160 private key for the corresponding public key.

It is a simple matter to convert an h160 address to an ss58 address, or vice versa, but this does not yield the corresponding private key. This means that if you create a wallet in Bittensor, you will not be able to sign Ethereum contracts with it, nor versa.

Hence, in the context of Bittensor EVM we can distinguish between:

  • 'Bittensor wallets': created using the Bittensor tool chain and therefore able to sign transactions using Bittensor transaction clients (BTCLI and the Bittensor SDK), but not EVM smart contracts, on the Bittensor blockchain.
  • 'EVM wallets': created using an EVM client such as MetaMask and therefore able to sign EVM smart contracts, but not Subtensor extrinsics, on the Bittensor blockchain.

Ethereum vs Bittensor EVM smart contract runtime

On the Ethereum network, nodes such as full nodes, validator nodes and archive nodes run the Ethereum Virtual Environment (EVM) run-time environment. Smart contracts operate under this EVM. See the below high-level diagram.

Note that all operations performed by Bittensor EVM are executed solely on the Bittensor blockchain, not on the Ethereum blockchain.

Local blockchain vs public subtensorLocal blockchain vs public subtensor Local blockchain vs public subtensorLocal blockchain vs public subtensor
Install Dependencies
Get started by installing dependencies first.
READ MORE
EVM Testnet with Metamask
Learn how to set up your Metamask wallet with EVM testnet.
READ MORE
EVM Localnet with Metamask
Set up your Metamask wallet for a localnet with EVM feature.
READ MORE
EVM Mainnet with Metamask
Learn how to set up your Metamask wallet with EVM mainnet.
READ MORE
Configure Hardhat for subtensor EVM
Using Hardhat? Configure it to work with subtensor EVM.
READ MORE
Configure Remix IDE for subtensor EVM
Remix IDE configuration to use with subtensor EVM.
READ MORE
TAO transfer from Metamask to SS58
Learn how to transfer TAO from Metamask to SS58.
READ MORE
Transfer TAO between two H160 addresses
Learn how to transfer TAO between two Ethereum H160 addresses.
READ MORE
Stake with a smart contract
Stake to a hotkey using precompiled smart contract.
READ MORE
Verify ed25519 with a precompile
Verify an ed25519 signature on subtensor EVM.
READ MORE
Troubleshooting
How to troubleshoot the most common issues.
READ MORE