Skip to content
xDEVS Chain
On this page

Predeployed contracts

xDEVS Chain's system and user-safety contracts live at fixed addresses that are the same on every xDEVS network. They are written into the genesis state as runtime bytecode (constructors never run) and configured by a one-time initialize call from the protocol system address.

The canonical list is contracts/src/common/Predeploys.sol. The SDK exports the same addresses as predeploys, and a unit test keeps the two in sync.

Address table#

AddressContractPurposeSpec
0x0000000000000000000000000000000000001000StakingValidators, delegation, rewards, slashing, epoch transitionssystem
0x0000000000000000000000000000000000001001GovernanceStake-weighted proposals with a timelocksystem
0x0000000000000000000000000000000000001002TreasuryReceives 20% of base fees; grants by governancesystem
0x0000000000000000000000000000000000001003FeeConfigFee parameters, changeable only by governancesystem
0x0000000000000000000000000000000000001004XNSRegistry.xdevs names: registry, registrar, resolver, reverseXNS
0x0000000000000000000000000000000000001005XdevsSmartAccountSmart account implementation, EIP-7702 delegation targetaccounts
0x0000000000000000000000000000000000001006SmartAccountFactoryCREATE2 account factory (also hosts the account extension code)accounts
0x0000000000000000000000000000000000001007XdevsPaymasterShared gas sponsorship (ERC-4337 v0.9)accounts
0x0000000000000000000000000000000000001008Permit2ExpiringPermit2-style allowances with mandatory expiryapprovals
0x0000000000000000000000000000000000001009WXDSWrapped XDS (WETH9-style)system

Precompile and system addresses#

AddressWhatStatus
0x0000000000000000000000000000000000000100P256VERIFY precompile (secp256r1 / passkeys, EIP-7951)Works today (native in the node, revm Osaka)
0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfESYSTEM_ADDRESS: caller of protocol system calls (no signature, no gas charge)Used by the node

Planned genesis extras#

The genesis builder is also planned to include Multicall3 at 0xcA11bde05977b3631167028862bE2a173976CA11 (the SDK chain definitions already reference it), a CREATE2 deployer, and the canonical ERC-4337 EntryPoint v0.9 at 0x433709009B8330FDa32311DF1C2AFA402eD8D009.

Upgrades#

The system contracts are not proxies. Their code changes only through a hard fork at a set block height (validators upgrade their binaries), with append-only storage layouts. Every parameter change goes through Governance (vote + timelock). No runtime admin key exists.