Skip to content

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.

Not in the dev genesis yet

The contracts are built and tested in Foundry, but the local dev chain's genesis does not contain them yet: on chain id 7117 these addresses are empty accounts (the Treasury address only holds a balance). Placing them in genesis is a Phase 3 task (the genesis builder). The precompile at 0x100 is native to the node and does work today.

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.

Built by THE xDEVS · Apache-2.0 · Testnet tokens (tXDS) have no monetary value.