Proposal to list SNX on the Optimism Deployment of Interest Protocol

The Optimism deployment of Interest Protocol has been completed and is ready for action!

See the announcement here!

While several tokens have already been listed on this deployment, the final remaining task is to confirm that cross chain governance is working. To this end, this cross chain proposal will list SNX on the Optimism deployment.

For simplicity, all current and future assets will be listed with a cap.

The following have already been listed on the Optimism deployment, with their associated oracle deployments:

CappedWeth: β€œ0x696607447225f6690883e718fd0Db0Abaf36B6E2”
EthOracle: β€œ0xcB88cf29121E5380c818A7dd4E8C21d964369dF3”

CappedOp: β€œ0xb549c8cc8011CA0d023A73DAD54d725125b25F31”
OpOracle: β€œ0x8C8AE22fea16C43743C846902eC7E34204894189”

CappedWstEth: β€œ0xE1442bA08e330967Dab4fd4Fc173835e9730bff6”
wstEthOracle: β€œ0xB765006321C6Be998f0ef62802d2548E76870D3B”

CappedRETH: β€œ0x399bA3957D0e5F6e62836506e760787FDDFb01c3”
rEthOracle: β€œ0x99bd1f28a5A7feCbE39a53463a916794Be798FC3”

Set Cap for Capped wBTC
Additionally, wBTC has already been deployed and listed, however the cap for Capped wBTC needs to be adjusted via proposal, as it currently uses the incorrect units.

CappedWbtc: β€œ0x5a83002E6d8dF75c79ADe9c209F21C31B0AB14B2”
wBtcOracle: β€œ0xDDB3BCFe0304C970E263bf1366db8ed4DE0e357a”

Token Address: 0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4
Capped Token address: 0x45b265c7919D7FD8a0D673D7ACaA8F5A7abb430D
LTV: 60%
Liquidation incentive: 8%
Cap: 185,000 (~$500,000)
Primary Oracle Address: 0xd8284305b520FF5486ab718DBdfe46f18454aeDE
Price deviation: 10%

Market Cap: $881,541,610
Liquidity: ~$800k on Uniswap V3
24h volume: $11mm
Notable exchanges: Uniswap V3, Binance, Coinbase, Gemini

Technical Risks
Type of contract: LP token
Time: Optimism Genesis
Privileges: SNX Governance
Upgradability: None

Relevant References
SNX website

Technical Cross Chain Governance Details

The following describes the general process for which mainnet IP governance will control the Optimisim deployment.

Layer 1 Cross Chain Messenger
This is the official contract for sending data from Mainnet to Optimism.

Cross Chain Account
This contract receives the data sent from Mainnet, and forwards it to the Interest Protocol contracts. As such, this contract has ownership of all Interest Protocol contracts on Optimism.

All of the data to make these transactions happen must be carefully nested in the proposal on Mainnet. The script to do this can be found here

So for example, if we are to set the new oracle on the Oracle Master, we need to first package the data to do this, which we can call addOracleData.

Then we take this data, and use it as the β€œbytes” argument when we call call to forward(address,bytes) on the Cross Chain Account on Optimism. This function takes two arguments, first the Oracle Master address on Optimism, and second, our addOracleData (bytes).

We take our addOracleForwardData, and pass it as the _message (bytes) when we call sendMessage(address,bytes,uint32) on the Layer 1 Cross Chain Messenger

Assuming the Oracle Master on Optimism has its owner set to the Cross Chain Account, this should set the new relay as expected.


The first cross-chain proposal has been executed!

Cross-chain proposals present some unique challenges as compared to standard Mainnet proposals. In particular, it is impossible to completely test the execution of the proposal beforehand.

While this was an excellent learning experience, some aspects of this first proposal did not execute as intended.

Specifically, the listing of SNX on the Oracle Master failed due to the ownership of this contract not being successfully transferred to the Optimism Cross Chain Account.

This in turn resulted in the listing of SNX on the Vault Controller to fail, as the listing on the Oracle Master must occur prior to listing on the Vault Controller.

However, listing SNX on the VotingVaultController did indeed occur successfully! Likewise, the cap for Capped WBTC has been updated, and this asset is now ready for use on Optimism!

No security or integrity issues have occurred as a result of this error.

Currently, it is possible to deposit SNX and receive Capped SNX, however this asset has no LTV or oracle price at the moment.

Borrowers should note: While it is possible to deposit SNX for Capped SNX, if a vault contains a listed asset in addition and is not solvent, then withdrawal of the SNX will be impossible until solvency is reached.

A relatively simple fix has been made, and a new on-chain proposal will remedy the problem once executed.


Congrats on the semi-successful cross-chain proposal and thank you for the detailed update. I always learn something new with your posts :slight_smile:

IP doesn’t get enough credit / mention for operating completely on-chain, and now we are one of the few protocols experimenting with on-chain and cross-chain proposals as well.

Will be on the look out for the fix.