Runs on SKALE Chains and accepts messages from mainnet. TokenManagerEth mints EthErc20 tokens. When a user exits a SKALE chain, it burns them.


setEthErc20Address setEthErc20Address(contract IEthErc20 newEthErc20Address) external

Register EthErc20 token.

exitToMain exitToMain(uint256 amount) external

Move ETH from schain to mainnet.

EthErc20 tokens are burned on schain and ETH are unlocked on mainnet for {to} address.

postMessage postMessage(bytes32 fromChainHash, address sender, bytes data) external

Allows MessageProxy to post operational message from mainnet or SKALE chains.


  • MessageProxy must be the sender.

  • fromChainHash must exist in TokenManager addresses.

initialize initialize(string newChainName, contract IMessageProxyForSchain newMessageProxy, contract ITokenManagerLinker newIMALinker, contract ICommunityLocker newCommunityLocker, address newDepositBox, contract IEthErc20 ethErc20Address) external

Is called once during contract deployment.

_checkSender _checkSender(bytes32 fromChainHash, address sender) → bool internal

Checks whether sender contract is DepositBox.