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 EthErc20 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.

transferToSchain transferToSchain(string targetSchainName, uint256 amount) external

Move ETH from schain to schain.

EthErc20 tokens are burned on origin schain. and are minted on {targetSchainName} schain for {to} address.

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

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


  • MessageProxy must be the sender.

  • fromSchainName must exist in TokenManager addresses.

initialize initialize(string newChainName, contract MessageProxyForSchain newMessageProxy, contract TokenManagerLinker newIMALinker, contract CommunityLocker newCommunityLocker, address newDepositBox, contract EthErc20 ethErc20Address) external

Is called once during contract deployment.