Risks
The mine is a proof of concept. It takes shortcuts, and each one has a cost that someone eventually pays. This page is the list, stated plainly, with no attempt to make any of it sound smaller than it is.
Nothing here is a bug. Every item is a decision, taken on purpose, written down at the time and still standing.
In short
- A settlement values your whole interval at one price, read at that moment.
- Anyone can choose that moment for you, with
poke. - Between a price rise and the next interaction, emission can sit above the band.
- The last of the pool goes to whoever settles first.
- The owner controls the price sources, which is the real power.
- Rounding always goes toward the mine, in wei.
Price at settlement, not an average
A position is valued once per settlement, at the price read in that transaction, and that value is applied to the entire interval since the last settlement. The mine stores no price history and computes no average.
Three consequences follow.
- A price that rose during the interval pays the whole interval at the new, higher price. A price that fell pays the whole interval at the new, lower one. Neither is the average of what the position was actually worth.
- The longer a position goes untouched, the larger the effect. A month settled in one call is a month valued at one instant.
- Anyone can settle your position with
poke. They cannot take anything from you and they cannot reduce what is already claimable. They can decide, at a moment of their choosing, which price the interval up to that point is paid at. Settling you at a low price is free for them and costs you.
TVL is priced the same way, at the moment it is read. A price spike that happens to land in the same block as an interaction can carry the mine into the next level.
Emission above the band
Past $1,000,000 the design keeps daily emission between 50,000 and 100,000 WINZE. That holds only while the level matches the TVL.
The level moves when someone touches the mine, never on its own. A price rise lifts TVL with no transaction behind it. Between the rise and the next interaction, the mine can sit at a TVL that belongs to a deeper level while still paying the old rate.
TVL at $4,000,000 belongs to level 3. If the mine is still at level 1 because nobody has interacted, it emits 200,000 WINZE a day, which is 2 times the top of the band, until the next interaction corrects it.
Anyone can end that state, for free, by calling poke on any miner. There is no keeper doing it automatically in V1.
The last of the pool is first come
The mine counts what it has settled. When a settlement would pay more than what is left, it pays the remainder, marks itself exhausted and appends a final rate epoch at zero.
The miner whose transaction happens to cross that line takes what is left, up to their whole pending amount. Every other miner's unsettled tribute at that instant is not paid. After the mine is exhausted, settlement stamps the time and accrues nothing.
So the end of the pool is a race, and because poke is public, it is a race anyone can enter on anyone's behalf. What is already settled into claimable is safe and still claimable afterwards. Staked tokens are never at risk: unstake works at every point, before and after.
The views are honest about this in advance. pendingTribute caps the unsettled part at what is left in the pool, so nobody is shown a figure the mine could not pay.
What the owner can do
The mine has an owner. On Robinhood Chain the owner address comes from the deploy configuration and is not published yet. These are the powers it holds.
- List a token with
listToken, and choose its price source. - Delist a token with
delistToken, which blocks new stakes of it. - Point a token at a different price source with
setPriceSource. - Hand the mine its pool once, with
setWinze, before it opens. It cannot be called twice. - Transfer ownership, or give it up.
- On a manual price source, push prices, or grant the keeper role to something that does.
The price source is the real power in that list. Whoever controls a token's price controls what that token is worth to the mine, which sets TVL, which sets the level. A price can push the mine deeper. It can never bring it back.
These are the things the owner cannot do.
- Mint WINZE. The supply is fixed at deploy and the token has no mint function.
- Change the rate table, the thresholds or the size of the pool. They are constants.
- Lower the level, or restore a rate after a halving.
- Move a staked token, or take the pool. There is no rescue function, and no path sends a staked token anywhere except back to the miner who staked it.
- Stop you unstaking or claiming.
Rounding
The rate is stored per second, scaled by 10^36, and the division that produces it is floored. The daily figure the contract reports therefore sits a wei or two under the table value.
| Level | Table value, wei | What the mine reports, wei |
|---|---|---|
| 0 | 100000000000000000 | 99999999999999999 |
| 1 | 50000000000000000 | 49999999999999999 |
| 3 | 12500000000000000 | 12499999999999999 |
On a position of $10,000 at level 0 that is 999.99999999999999 WINZE a day instead of 1,000.
Accrual floors again, once per epoch segment of each settlement. A position settled in many small steps therefore receives a few wei less than the same position settled in one. The difference is measured in wei and does not compound into anything visible, but it is real and it always rounds toward the mine.
What is explicitly V2
None of the following is built. They are named so nobody reads them into what is here.
- Time weighted prices and price checkpoints.
- A keeper that syncs the level automatically when a price moves.
- A leaderboard.
- Notifications when a level is close.
- A Farcaster frame for the level gauge.
- A WINZE and USDC pool with a hook.
- A mobile first pass on the scene.
- Other languages.
What is built is on the other pages. Contracts has the addresses and the full interface, so anything on this page can be checked against the source.