SKALE Chain Access Control

SKALE Chains have several ways to manage access control, meaning who is capable of sending a transaction to the SKALE Chain or who is capable of deploying new contracts. Two methods manage access: distribution of skETH to SKALE Chain users and the DeploymentController contract, which authorizes specific contracts to deploy new contracts (CREATE2).

Deployment Controller

New SKALE Chains are set only to allow the SKALE Chain owner and CREATE/CREATE2 opcodes the ability to deploy new contracts. Other addresses can be permitted on the fly to deploy contracts by whitelisting addresses.

The predeployed DeploymentController contract’s address is 0xD2002000000000000000000000000000000000D2 and contains two methods: addToWhitelist(address) and removeFromWhitelist(address).

The ABI for the DeploymentController is available here: DeploymentController.abi.


The SKALE Chain owner (coinbase address) is allocated skETH when the SKALE Chain is created. This value is set in the genesis block of each SKALE Chain and therefore cannot be changed once set.

skETH, unlike ETH, has no value, but like ETH is used to meter transaction usage on SKALE Chains.

SKALE Chain owners can apply a variety of methods to distribute skETH to users: * direct transaction from the owner to an address * sending an allocation of skETH to a SKALE Chain contract, which applies some logic to distribute skETH to address.

When addresses use skETH to perform transactions, the skETH fee used to conduct the transaction is recirculated back to the coinbase address.

SKALE Chain owners should carefully select how and how much skETH to distribute to addresses. How much might depend on various factors such as the number of addresses to distribute to, and the skETH transaction fees performed by these addresses.
To view Real ETH on SKALE Chains as transferred by the IMA bridge, you can use the informational RPC ports for your endpoint.

IMA Access Control

For details on IMA Bridge access control features, see IMA Access Control.