How to make an on-chain proposal to add a collateral type

Over the past few weeks, I did some research and testing with guidance from @dckc and created a guide on how to make an on-chain proposal to add a collateral type:

TL;DR

  • The AgoricVM allows for “CoreEval” proposals, or a specific type of proposal that executes included code when/if passed by governance.
  • CoreEval proposals contain a permit.json (grants rights) and a proposal.js (uses granted rights to do things, like provision a new oracle + vault type).
  • Larger CoreEval proposals (like this one) can also reference external bundles that must be published on-chain before the proposal is made

Highlights for folks looking to submit their own proposal

  • The documentation is geared towards a specific stATOM (testnet denom) proposal, but other collaterals can easily be added as described in this section
  • I’d recommend testing on a local network to ensure everything works (the linked guide explains how to do this), and then Agoric Devnet.
  • In addition to the governance proposal deposit, the submitter must also also pay for bundle deploys. If a bundle already exists on chain, which will likely be the case here, the submitter does not need to republish it.

Evaluating a submitted proposal

  • In my experience, the best explorer to view a CoreEval proposal is Nodes.Guru, as they display the full proposal terms. Here is a proposal we submitted to devnet for stATOM: [NG] Explorer | Agoric | Proposal #2

  • The most important part to review is the parameters, which can be found in the getManifestCall variable assignment. Here, you will find the suggested asset name, ibc denom, and list of oracleOperators. These parameters can also be found here:

  • This proposal only includes adding a new vault manager type and oracle. It does not set any other parameters, like the debLimit or interestRateValue for the vault, nor initialPrice for the oracle. Other proposals may contain these values, so keep an eye out, but also remember that these powers are subsumed by the econ committee and oracle network, respectively, after the proposal passes.

2 Likes