Skip to content

Permissioned Contract Deployment

Until mainnet enters the Mainnet-3 phase of the multi-phase mainnet rollout, permissionless contract installation with Zoe is limited to development environments.

Until then, permission to deploy contracts can be granted using an Agoric extension to Cosmos SDK Governance called swingset.CoreEval. As discussed in governance using Hardened JavaScript: swingset.CoreEval, if such a proposal passes, its JavaScript code is run with ocaps extracted using the proposal's permitted capabilities, which the code can combine to perform privileged tasks.

To make a proposal to deploy a contract:

  1. Write JavaScript code to deploy the contract.
  2. Declare the capabilities that the script requires.
  3. Submit transactions to install and deploy the contract.