As indicated in other threads we’re looking to simplify the pricing framework materially. The high level objectives are:
- Simplicity - bare minimum number of factors, that pushes complexity off-chain to risk assessors (to come up with complex risk models as they wish)
- Decentralisation - simple enough, and only reliant on on-chain info so it can be run entirely on-chain (vs current off-chain quote engine)
- Flexible - ability to price not only smart contract cover but any type of risk, so we can roll-out new products quickly
Also, the pricing mechanic has to solve two problems:
- Price the Risk
- Determine how much capacity to offer on the risk
Proposed New Pricing Mechanic
Price
Risk Cost = High Risk Cost Limit x [ 1 – (Staked NXM / Staked NXM Limit)^(1/7)]
Subject to a minimum = Low Risk Cost Limit
Where;
High Risk Cost Limit = 100%
Low Risk Cost Limit = 1%
Staked NXM Limit = 100,000
The surplus margin of 30% is then added to the cover cost, so the minimum cover cost remains at 1.3% pa
The 1/7 exponent gives the curve its shape. The curve is designed to reduce price quickly for the initial NXM being staked but then become less sensitive when large amounts are staked. After more testing we believe this is better than a simple linear approach, because:
- Initial stakes are most applicable to new protocols where we want to know is this super high risk, or very risky or just pretty high. Pricing is much rougher here so higher sensitivity is more likely to give us a better answer.
- Later stakes are more applicable to established protocols where the goal is to distinguish pricing at a more accurate level, therefore we’re more likely to get a better answer with lower price sensitivity the higher the stakes. eg is Compound more secure than MakerDAO, if so by how much?
Visually it looks like this:
Capacity
When someone stakes the capacity will be equal to the value of the staked NXM initially. Then over time the mutual will release more capacity up to a limit, where the limit is a maximum multiple of stake, eg 4x.
If a stake is withdrawn all capacity is immediately withdrawn. This allows the mutual to quickly respond to changes in risk, as if stakers withdraw, price should increase and capacity should be taken away.
So new stakes add capacity slowly over time and stake withdrawals take capacity away immediately.
Conceptually it looks something like this (block-time on the x-axis):
Staking amounts and withdrawals are given by the dotted line, and this is simply one example. After an amount is staked, capacity starts at the staked amount and then increases slowly over time until it reaches a maximum. If staking is withdrawn capacity is immediately withdrawn to quickly respond to changes in perceived risk levels.
Initial factors are open for debate:
Time to reach max capacity = 90 to 270 days
Our view of an appropriate range, but a single value needs to be chosen. 90 days is shown in the graphic for illustration purposes.
Multiple of Staked Capacity = +300%
This means the mutual will offer at most 4 NXM worth of capacity for every 1 NXM staked (once the max capacity time period has been reached).
Decentralisation
We will initially implement the revised pricing by changing the existing off-chain quote engine. Once we have some more experience/feedback and are comfortable with the set-up we will move this on-chain. At this point, quotes and cover purchases to be solely made via smart contract calls.
Specific Feedback Requests:
We’d like feedback on all/any aspect of this proposal but we do have a few parameters we’d like specific input on:
- Low Risk Cost Limit of 100,000 NXM (amount of stake required to reach min price). Too high? Too low? Note that stakes can be re-used up to 10x in pooled staking, so stake should be easier to come by, and the higher this number the more conservative (and differentiated) the pricing.
- Ramp up period for capacity. On balance we think 180 days is about right but very open to feedback here.
- Maximum cover period of 1 year (not listed above). To ensure stake is available for a reasonable portion of the cover we’re suggesting a max cover period of 1 year. Nearly all covers currently written are less than 1 year.