Publishing a smart contract
Making a smart contract public
Contracts will initially only be accessible by the contract developers, a special role that anyone can opt-in to. Once the contracts have been deployed and tested, they can be made public by paying a relatively large amount of ACA (the exact value still has to be determined) in order for them to become publicly accessible. Genuine teams that want to deploy contracts but cannot pay the upfront cost, can request a grant from the Acala Treasury.

Mark a given contract as Published in the Developer Section of the Polkadot App​

The deployment and publishing account of the contract have to be the same.
  1. 1.
    Under the Submission tab, select evm from the extrinsic dropdown menu
  2. 2.
    Select publishContract(contract) from the method/action dropdown
  3. 3.
    Fill in the contract address
  4. 4.
    Click Submit Transaction
Developer > Extrinsic > Submission > evm > publishContract(contract)
Trying to interact with an unpublished contract with an account that does not have the developer role will receive an Error: -32603 with the message: "Internal JSON-RPC error."

Verify that the smart contract has been published successfully

Polkadot App can be used to verify wether or not the smart contract is published. This can be done using the Chain state viewer:
  1. 1.
    Using the Storage tab, select the evm from the select state query dropdown
  2. 2.
    Select accounts(H160) from the method/action dropdown
  3. 3.
    Fill in the contract address
  4. 4.
    Click Submit transaction
Developer > Chain state > Storage > evm > accounts(H160)
The published value of the response indicates wether the smart contract is published or not.