Guides/EVM/Precompiles

Precompiles

Addresses, implementations, and reference pages for Bittensor EVM precompiles.

View as Markdown

Bittensor precompiles are fixed-address contracts implemented by the Subtensor runtime. Deployed means that the address is registered in the current runtime; it does not imply complete coverage of the underlying runtime domain. Proposed precompiles are not callable. Their documented addresses are reserved for those domains, while their function selectors remain provisional until the interfaces are implemented and released.

The extrinsic coverage audit tracks every runtime extrinsic in scope and identifies its deployed, proposed, or intentionally non-callable EVM treatment.

Ethereum and Frontier precompiles

PrecompileAddressStatus
ECRecoverDeployed
Sha256Deployed
Ripemd160Deployed
IdentityDeployed
ModexpDeployed
DispatchDeployed
Bn128MulDeployed
Bn128PairingDeployed
Bn128AddDeployed
Sha3FIPS256Deployed
ECRecoverPublicKeyDeployed
Ed25519VerifyDeployed
Sr25519VerifyDeployed

Bittensor precompiles

PrecompileSolidity interfaceDetails
BalanceTransferPrecompileISubtensorBalanceTransfer
Deployed
StakingPrecompileIStaking V1
Deployed
MetagraphPrecompileIMetagraph
Deployed
SubnetPrecompileISubnet
Deployed
NeuronPrecompileINeuron
Deployed
StakingPrecompileV2IStaking V2
Deployed
UidLookupPrecompileIUidLookup
Deployed
StorageQueryPrecompileSelectorless
Deployed · deprecation planned
AlphaPrecompileIAlpha
Deployed
CrowdloanPrecompileICrowdloan
Deployed
LeasingPrecompileILeasing
Deployed
ProxyPrecompileIProxy
Deployed
AddressMappingPrecompileIAddressMapping
Deployed
VotingPowerPrecompileIVotingPower
Deployed
BalancePrecompileIBalance
Deployed
SchedulerPrecompileIScheduler
Deployed
DrandPrecompileIDrand
Deployed
TimestampPrecompileITimestamp
Deployed
RuntimeConfigurationPrecompileIRuntimeConfiguration
Deployed
PrecompileRegistryIPrecompileRegistry
Deployed

Projects that need proactive event delivery should use project-scoped event relays instead of protocol-level event-reporting precompiles.

Released addresses and selectors remain reserved permanently. The compatibility and lifecycle rules are documented in Precompile design and lifecycle.