Skip to main content
The following requires EXTRA_CONTRACT_REGISTRAR_ROLE on the account calling registerExtraContract.

Adding Extra Contract Registrar Role on SKALE Chain

  1. Encode the function call via multisigwallet-cli
npx msig encodeData [SKALE Chain-name] MessageProxyForSchain grantRole 0x6155b5aac15ce9aa193c0527a6f43be0a36a7e2e7496c2b615c0e5f922842773 [0x_ACCOUNT_TO_GRANT_EXTRA_CONTRACT_REGISTRAR_ROLE_TO]
  1. Execute via SAFE by following the steps here

Registering Contracts on a SKALE Chain

  • via SAFE — would be if you give Marionette EXTRA_CONTRACT_REGISTRAR_ROLE on MessageProxyForSchain
  • via Ethers v6 — would be if you gave an EOA the role and use Ethers
  1. Encode the function call via multisigwallet-cli
	npx msig encodeData juicy-low-small-testnet MessageProxyForSchain registerExtraContract destination-skale-chain-name local-contract-address
  1. Execute via SAFE by following the steps here

Registering Contracts on Ethereum

  1. Go to SAFE App or your preferred frontend for SAFE.
  2. Press New Transaction and then Transaction Builder
Click on Transaction Builder
  1. Input the MessageProxy address for your correct environment into the Contract Address field and select Use Implementation ABI
Each SKALE Manager deployment — Mainnet, Testnet, etc. — has a smart contract called MessageProxy which is what sends data between Ethereum and SKALE Chains. Grab the correct address from the table below and verify by visiting the SKALE Network Releases Repo.
MessageProxy Contract Addresses
NetworkContract Address
Ethereum Mainnet0x8629703a9903515818C2FeB45a6f6fA5df8Da404
Ethereum Holesky Testnet0x682ef859e1cE314ceD13A6FA32cE77AaeCE98e28
  1. Select registerExtraContract from the dropdown list in Contract Method Selector, set the schainName (string) field (e.g elated-tan-skat), and set the extraContract (address) field which is the smart contract on Ethereum
Input transaction details
  1. Click Add transaction, scroll down, and click Create Batch, then click Send Batch. Tenderly simulation is generally available, even on testnet, and is encouraged to be used to see all the changes occuring on the Ethereum side before they occur.