NMPIP-209: Launch Tokenomics Upgrade

NMPIP-209: Launch Tokenomics Upgrade

Summary

Now that the Ratcheting AMM (RAMM) codebase has gone through an audit from Chaos Labs and iosiro, the tokenomics upgrade proposal can move forward.

The DAO R&D, Community and Foundation Engineering teams are proposing to replace the Bonding Curve with the Ratcheting AMM (RAMM), with the initial parameters outlined below, and to remove the Minimum Capital Requirement (MCR) Floor.

Rationale

Starting in December 2020, the Minimum Capital Requirement Ratio (MCR%) fell below 100% and the redemption restriction prevented members from redeeming NXM for ETH, as outlined in the original Nexus Mutual whitepaper.

Between December 2020 and August 2021, the open market price diverged from the NXM price in ETH terms, with the open market price falling below Book Value per NXM in August 2021—the open market price has remained below the Book Value per NXM since this time.

The proposed RAMM mechanism has the following aims:

  • Bring the price of NXM and the open market valuation together again
  • Allow members who wish to exit to do so directly from the protocol at a reasonable price
  • Allow the protocol to capture capital when members wish to provide it
  • Create positive value for long-term aligned members

Replacing the Bonding Curve with the RAMM mechanism AND removing the MCR Floor will allow members to freely redeem and mint NXM as outlined in the Ratcheting AMM Whitepaper V1.0.

Technical Specification

The proposal is to launch the RAMM with the following parameters:

Parameter Description Proposed Value
liqtarget Target ETH liquidity 5,000 ETH
liqSpeedout Max amount of ETH that is removed from the pools daily as long as liq > target_liq 100 ETH
initialBudget Amount of ETH that needs to be injected before the liqSpeedin and ratchetSpeedb parameters change from initial to long-term state 43,835 ETH
fastLiqSpeedin Initial state: max amount of ETH that is added to the pools daily. This value is active until an amount of ETH equal to initialBudget has been injected into the pools 1,500 ETH
liqSpeedin Long-term state: max amount of ETH that is added to the pools daily. This value becomes active after an amount of ETH equal to initialBudget has been injected into the pools 100 ETH
ratchetTarget Middle value towards which the spot prices move Book Value
oracleBuffer Margin to allow for oracle lag when calculating Book Value in ETH. Secondary function - create spread 1%
ratchetSpeeda Daily decrease in spota when above ratchetTargeta 4% of ratchetTarget
fastRatchetSpeedb Initial state: Daily increase in spotb when above ratchetTargetb 50% of ratchetTarget
ratchetSpeedb Long-term state: Daily increase in spotb when above ratchetTargetb 4% of ratchetTarget
spota Opening spot price in the Above Pool. Equal to Bonding Curve price at time of on-chain implementation
spotb Opening spot price in the Below Pool. Equal to 50% of open market price at time of on-chain implementation

The proposed initial_budget, fast_liq_speed_in and fast_ratchet_speed_b have been set so that the Initial State will inject ~30% of the Capital Pool as RAMM liquidity and, assuming a maximum redemption speed, will last for one (1) month, in line with members’ previously signalled support.

The proposed time frame for members to redeem their NXM at maximum speed down to the current cover-driven MCR is three (3) years, as members previously signalled support for this time period.

Proposal Status

This proposal is open for comment and will close after a minimum of seven (7) days from the date of this posting.

This NMPIP is open for voting in the Nexus Mutual UI until Saturday (18 November 2023) 11:50am UTC.

All members can participate in the on-chain governance vote!

The proposed timeline for NMPIP-209 and the on-chain governance vote is shared below.

  • 15 November 2023. NMPIP-209 is put on chain for an all-members governance vote, where voting will be open for three (3) days. Voting will come to a close on 18 November 2023 11:50am UTC.

  • 19 November 2023. The outcome of NMPIP-209 will be subject to a 24-hour cool-down period.

Outcome of the Vote

After the three-day voting period ended, members unanimously voted to approve NMPIP-209, which granted the Advisory Board the power to replace the Bonding Curve with the Ratcheting AMM (RAMM) and remove the MCR Floor.

Once the Advisory Board completes the upgrade, the DAO Community team will share an announcement on this forum post and the Nexus Mutual blog, as well as on the Mutual’s social channels.

Additional Resources

You can review the past discussions on the tokenomics parameter discussions, the regular tokenomics updates, and the audit reports for more information:

8 Likes

Thanks @BraveNewDeFi

Really exciting to see all the work from the DAO and engineering teams come together here. The professional approach taken on all sides to get this right for members has been great to see.

Looking forward to hearing members final discussion points and then it will be onwards to implementation.

5 Likes

thanks for putting this together! I don’t understand everything but what I catches seems reasonable to me. And cause I will not withdraw I don’t care too much;-)

1 Like

Hi,

I have a few concerns about the smart contract safety. This is a very large operation, with complex and novel mechanics, and there’s a slight risk of hacking given the amounts at stake.

  • What motivated the choice of auditor?
  • They seem to have done only one audit this year - given that the report is a github gist, is it a solo auditor?
  • Are the contracts public yet? I and other solidity devs would surely like to read them before they go live.

I think the right path to ensure safety would be:

  • An audit with an experienced and reputable firm, such as Halborn, Omniscia, Openzeppelin, etc.
  • A competitive audit bounty on a platform such as Code4Arena.

I understand that many WNXM holder here are eager to see the new tokenomics play out, however I think there’s a case to take it a bit slower, and safer.

[EDIT] I would also recommend auditing the deployment scripts, which aren’t included usually in the traditionnal audits, but are often good points of failure (see Nomad’s hack for instance).

2 Likes

Definitely thoroughly test this for edge cases on the test network. Make sure to check for instances of wrap around with number types. Compound had a huge token print from just that. That type of stuff can easily be avoided with automated tests.

Hey Pankookas,

Happy to answer your questions:

iosiro is the Mutual’s long-term auditing partner, and the team has been working with them for years. You can review the Audits & Security section of the docs to see the audits they’ve conducted in the past.

They’ve conducted several audits this year, which you can review on their website. Some of those include an audit of Synthetix’s Schedar Release and an audit of Thales’ Parlay Market AMM.

iosiro is a reputable firm: they’ve worked with top projects such as Synthetix, 1inch, Set Protocol, and others. iosiro has historically reported valid bugs found on Optimism, Polygon, Nethermind, Ondo Finance, Across, Alchemix, and others. They are an auditing firm and not a solo auditor.

iosiro works in teams, and they are very familiar with the rest of the Nexus Mutual protocol.

The report is a gist because the Engineering team is still fixing some of the findings. The final report will be published on their website once the fixes are reviewed on their end. I shared the draft audit report, so members could review as much information when this NMPIP was posted. I have a notice in the docs, where the draft report is posted, as well, that lets folks know we’ll update the link with the final report once it’s available.

The RAMM contracts have been built in the open. They are open source and available for anyone to review. You can the contracts here: https://github.com/NexusMutual/smart-contracts/tree/feature/tokenomics

Additional Security Measures

I completely understand your concerns. Throughout the development process, security has been the first priority, which is why the R&D team has shared consistent updates and the development hasn’t been rushed when some community members asked for this process to be expedited during the course of the tokenomics revamp project.

In addition to the Chaos Labs economic audit and the iosiro Solidity audit, the Engineering team has implemented circuit breakers in the RAMM contract, which will limit the maximum amount of ETH that can be withdrawn and the maximum amount of NXM that can be minted via capital contributions over a defined period of time. The limits will be progressively raised over time, after careful monitoring of the system.

The Engineering team will have enhanced monitoring in place for the RAMM contracts and any associated events within the protocol to ensure they can closely monitor the smart contracts.

There is also a bug bounty program managed through Immunefi to incentivise responsible disclosures if a vulnerability were discovered in the smart contracts, including the RAMM smart contracts. You can review Nexus Mutual’s bug bounty program here.

The Advisory Board also has the power to enact an emergency pause on the RAMM smart contract should any malicious activity take place, which will prevent any minting or redeeming from occurring that would result in a loss of value for members. This power would only be used in an extreme situation and serves as a last resort.

Happy to answer any other questions you may have :turtle:

2 Likes

Hey Zara,

I shared your comment with the Engineering team, and they’ve shared that they’ve done extensive testing before the audit process to look for edge cases. They also confirmed that a “wrap around” issue won’t happen in the version of Solidity they are using, as it has built-in overflow protection.

1 Like

The only thing I don’t get is why we would be allowed to buy NXM at book value.
It only makes sense to do so when the MCR is maxed out as it would otherwise only dilute the yield of current holders.

So in my opinion, in the above pool, the lower price threshold should be a function of MCR.

:us::israel: עם ישראל חי

My understanding of what would happen is WNXM, and NXM should meet in price.

Congrats to the whole team on this work! It’s been heavy lifting. Looking forward to how the protocol operates in the wild now.

Hey, thanks for the comment.

Under the proposed design, the lowest price anyone can mint NXM at is 1.01 * Book Value.

For NXM locked in staking pools earning yield, each NXM they earn is now backed by more ETH than it was before any new mints.

I can see the logic that if there is overall a greater number of NXM while cover buys and investment income don’t change, the increase in value that accrues over time from the profitable activities of the mutual is less per token - assume this is what you meant.

I don’t see it as a big issue:

  • If members minting new NXM then go on to stake it, opening capacity and encouraging new sales, the revenue of the mutual overall should go up as well.
  • Any spare Capital Pool assets not used for backing claims or set aside for RAMM liquidity is/can be/should be invested by the mutual to generate a return.
  • The market should auto-correct inflows if revenue and rewards don’t keep up with capital pool growth.
  • In the long term, we can only succeed if we operate at capital efficiency near the MCR threshold.

I’ve updated the original post to let everyone know this NMPIP is open for voting in the Nexus Mutual UI until Saturday (18 November 2023) 11:50am UTC.

Announcing the Launch of the RAMM

The Advisory Board has completed the deployment of the RAMM smart contracts.

With the RAMM’s launch, members are once again able to redeem NXM for ETH in the Nexus Mutual UI.

After launch, the ratchet will move the redemption spot price towards book value in just over a day, assuming there are no redemptions during that time.

Note: Only Nexus Mutual members can redeem NXM for ETH in the UI.

To learn more, read the announcement.