[RFC] $OPEN Stablecoin Index ReGenesis - Q3 2025

Glad to be here and honored to participate!

I’ve read through the protocol proposals within, reviewed the spreadsheet metrics, and re-read the OPEN articles. As you mention above, I also feel that the OPEN mandate might be fleshed out more clearly.

It’s possible the mandate needs sharper language—that’s a valuable conversation for the OPEN community to explore separately, and might take a few weeks longer than available for the 1st snapshot vote cycle happening in 4 days.

Yes, this is a larger conversation and something that will likely not happen prior to the upcoming vote. In anticipation of this exciting community exploration, I’ve gathered what I’ve found mentioned so far regarding stablecoins and networks that fit OPEN index inclusion:

  • governance token
  • permissionless
  • value-sharing
  • user-aligned
  • leading network
  • advance transparency
  • composable
  • user-led governance
  • asset-backed

Evaluated via:

  • peg design
  • mint/redeem logic
  • safety mechanisms
  • yield-sharing
  • decentralized control

Components should generally exceed:

  • $10M market capitalization
  • $1M DEX liquidity

There’s also the comment about:

I love what’s going on so far and it’s amazing to see the many respected protocols wishing to be included. With many new airdrop-fueled SQUILL holders becoming SQUILL lockers and voters, clear qualifications for inclusion in the OPEN basket would help governors.

This sharper OPEN mandate may also act as the highly valued expectations and requirements for protocols and networks to strive towards.

Snapshot to weighted-vote 10 constituents of the Open Stablecoin Index for Q3 2025 is live till July 2 2025, 8am PT.

:1234: 12 tokens proposed
:bullseye:Only 10 make the index
:ballot_box_with_ballot:vlSQUILL holders decide

Voters encouraged to spread their weight across 10 tokens.
Final 10 selected become equal-weight in the index.

Link:
https://snapshot.box/#/s:reserveprotocol.eth/proposal/0xa621a18a4c25948de8231adf4bd285a5cc51a5bf73a28a18451961b5fab01155

This proposal has been moved onchain. The Request for Comments period has ended.

Link to onchain proposal:
IP: OPEN Stablecoin Index Q3 Index Regenesis - add ALCX, OGN, FXN…remove ENA

Analysing the OPEN Q3 Rebalance

In this post we’ll deep dive into why the OPEN Q3 portfolio rebalance failed to reach its target allocations. Our findings show the root cause to be a flawed auction mechanism, which led to the sandwiching of the rebalance swaps, trades failing to execute, and tokens being oversold or overbought.

What is OPEN?

OPEN is a community-governed index of stablecoin infrastructure tokens. vlSQUILL token holders vote on which tokens are included and quarterly rebalances align the portfolio to an equal-weighted allocation. Under the hood, OPEN leverages Reserve Protocol’s Decentralized Token Folio (DTF) smart contracts to manage the index and its rebalances.

What is the Reserve Index DFT Protocol?

Reserve’s DTF protocol is a system of smart contracts for managing token portfolios, including functionality for minting, redeeming, and rebalancing.

In the Reserve Index DTF Protocol 2.0.0, a portfolio rebalance is first proposed, then voted on, and finally executed over an auction period. Each proposed rebalance trade must specify a pair of two tokens to be sold/bought, as well as the min/max amount of each that can be sold/bought. It’s necessary to specify a range, as this gives the auction mechanism enough leeway to execute over the auction period. If the range is too tight, price movements between auction proposal, start, and end could cause the trade to fail to execute. To avoid such failures, the Reserve App allows a price range to be set according to the Expected Volatility (EV) of the token.

The Rebalance

When the Q3 rebalance vote passed it had two stated aims:

“(1) adding FXN, OGN, ALCX and removing ENA from the OPEN basket and (2) equal-weighting the basket 10% per each of the ten constituents.”

However, following the rebalance the target weights had not been met.

The following table shows the change in token balance and value before and after the rebalance:

As we can see, the rebalanced portfolio was overweight OGN and SKY, whilst being underweight everything else.

We attribute the failure of the rebalance to two primary causes:

  1. Losses due to poor execution
  2. Incorrect allocation due to price volatility

Although the net portfolio value actually increased when comparing the before and after, this is attributable to the rise in token values during the rebalance period. The rebalance itself lost value for the portfolio in avoidable ways, which we will now detail.

The Execution

The rebalance incurred losses due to poor execution, with value being extracted by MEV bots sandwiching transactions.

The OPEN Q3 rebalance vote was proposed on July 6th, 2025 and was executed four days later on July 10th. During this time there was significant volatility in the market, which led to token prices drifting considerably from where they were at the proposal of the auction. As a result, stale prices were used for the auction, which is equivalent to setting slippage very high. As the swaps were broadcast to the public mempool, MEV bots were able to sandwich the transactions, leading to poor execution prices.

For example, trade 3 was intended to sell all 140,115.5542059 ENA for a specified minimum amount of FXN, expressed as a range of buyLimit values. In the time between proposal and execution, the price of FXN rose 49% whilst the price of ENA rose 27%, a considerable deviation in the relative prices of this pair from when the proposal parameters were set.

In this transaction, 44,369.92 was sold for 148.69 FXN through the ENA → WETH → FXN route, settling at a relative price of 0.00335 FXN per ENA. At this time, ENA was trading for $0.3015, whilst FXN traded for $82.60, so the relative price should have been approximately 0.00365 FXN per ENA. However, the order had broadcast a willingness to accept a lower price, effectively setting a high slippage tolerance. An MEV bot took advantage by sandwiching the trade to extract the difference between the actual market price and the lower price which the auction would accept, with OPEN losing 7.11% in slippage.

This poor execution was repeated across other swaps, resulting in avoidable losses.

Our analysis of token flows estimates that approximately $4382 of value was lost during the rebalancing process, the majority of which was lost on the ENA/FXN pairing. This is understandable, given that FXN had the greatest price volatility and the lowest liquidity of all the tokens and is therefore most susceptible to sandwich attacks.

A detailed analysis of the ENA->FXN trades shows the losses on each swap during the auction:

In summary, the root cause of the poor execution was that the auction mechanism led to poor price setting whilst the swaps were executed without any MEV protection, exposing the rebalance to value extraction.

The Allocation

The portfolio ended up greatly overweight in OGN, slightly overweight SKY, and underweight all others. Aside from losses incurred due to poor execution, this is due to some trades not executing, whilst other tokens were oversold/bought.

Volatility in the relative prices of the pairs between the auction proposal and end meant that some of the max/min sell/buy limits could not be respected. As a result, of the 10 approved trades only 6 executed:

  1. LQTY → ACLX - Executed
  2. AAVE → OGN - Executed
  3. ENA → FXN - Executed
  4. SKY → CRV - Not executed
  5. LQTY → FXN - Not executed
  6. FXS → OGN - Executed
  7. SKY → RSR - Not executed
  8. INV → OGN - Executed
  9. LQTY → RSR - Not executed
  10. LQTY → OGN - Executed

As SKY was not sold, this led to an overweight allocation, whilst RSR and CRV were not bought, leaving them underweight.

This volatility also led to some tokens being oversold/overbought. If multiple trades selling/buying the same token execute using close to the max sell/buy limit, the token can end up being oversold/bought in the portfolio as a whole. The more trades there are involving the same token, the more likely this outcome will be. The problem here is that each token pair trade has no context about the result of the other trades and so cannot adjust accordingly. In this case, OGN was overbought whilst other tokens were oversold.

Variations in prices during the auction period can also leave tokens under/overweight by the end, even if the correct amount was traded. For example, if near the start of the auction a 10% allocation in a token is achieved, by the end of the period price movements could bring this down to 9%. This effect also contributed to the misallocation.

In summary, the root cause of the misallocation is that the rebalancing was done on a token pair basis, which introduces significant complexity and unpredictability into the auction. Due to the large number of variables at play, it is very challenging - if not impossible - to define limits and pairings correctly several days in advance to achieve the target allocations for a holistic portfolio rebalance.

The Upgrade

Reserve has recognised these flaws in the auction mechanism and is rolling out an upgrade to 4.0.0 to introduce three principal changes:

  1. Rebalancing the entire basket holistically
  2. Using CoWSwap to fill MEV-protected orders
  3. Enabling more flexible control of price ranges

By rebalancing the portfolio as a whole to reach target allocations, market participants can bid on any surplus:deficit token pair until the tokens in the basket reach their respective target ratios. This mitigates the impact of volatility in the relative prices of arbitrary token pairings during the auction process and ensures the target portfolio allocations are achieved.

Reserve is also introducing the concept of Trusted Fillers, who are tasked with finding optimal routes to fill rebalance trades. CoW Swap will be the first filler to be integrated. This ensures that bids remain competitive, with optimal execution achieved through CoW Swap’s best-price guarantees and access to deep liquidity. As CoW Swap trades are MEV-protected, they should not be vulnerable to sandwiching as before.

Lastly, the new system allows for greater flexibility when setting price ranges. Similar to before, when a Rebalance Manager proposes a new rebalance they will specify new basket tokens, target ratios (limits), and price ranges for each asset. However, for a restricted period, the Auction Launcher has the ability to fine-tune parameters within governance-set bounds. For example, if a token’s price had risen since proposing the rebalance, they could raise the token’s starting price for the auction.

Conclusion

In conclusion, the OPEN Q3 rebalance incurred avoidable losses and failed to meet target allocations, as it suffered from poor execution and misallocation due to flaws in the Reserve Index DTF Protocol 2.0.0 auction mechanism. The upgrade to 4.0.0 introduces mechanisms intended to provide better execution during rebalances and ensure target allocations are achieved. With the vote to upgrade to v4 already passed, we look to the next rebalance to see if the new mechanisms have the intended effect.

About us

Pangea is a permissionless orchestration layer for self-sovereign infrastructure providing colocated streaming for the most demanding workflows.

Our data analysis tooling and DeFi expertise alerted us to the MEV activity in the Q3 rebalance and facilitated our investigation. To find out more about how we can help with your data and infrastructure needs, reach out on our socials.

4 Likes

The $OPEN Q3 rebalance

This post will explore the $OPEN Q3 rebalance, focusing more on the why and what, as the specific number have already been covered by the previous post by @Pangea and I have no reason to doubt them unlike the rest of their production which is rather shallow and misses the forest for the tree.

This approach will allow me to show that v4.0.0 doesn’t do what u think it do rather than hand-waving my way trough it just to meet some requirement.

But first let me present you the ecosystem :purple_heart:

What is $OPEN

The $OPEN stablecoin token index is an index much like the famous S&P 500 or MSCI World to name a few. An index is something that will track the value of a mix of other assets (be it stock, raw materials or even other index!).

However $OPEN is unique in few way:

  • what it track: the index is made of equally weighted tokens of various protocol that issue stablecoins on the EVM ecosystem who meet the $OPEN standard
  • who decide it’s composition: the token making up the index are decided by $SQUILL holder through a governance process. Meanning you can participate in the adventure if you want.
  • fully backed: you can redeem your index token for the underlying whenever you want without having to ask for anyone permission. Moreover with a few click anyone can audit the backing, no need to wait for a trusted (by who?) third party to do their once in a blue-moon audit!
  • on_chain: $OPEN is issued on ethereum as a regular ERC-20. This means it is compatible and benefit from the broader ethereum landscape, swap it on Uniswap, lend/borrow it on Ajna, integrate it in another DTF (moar on them later)
  • flexibility: $OPEN can be divided up to the 18th decimals place. (granted on a $2 per share index it is not a killer feature)

What is Reserve

Long story short Reserve is a DTF as a Service. They offer an infrastructure to create DTF just by snapping your fingers, just like some web2 platform let you create your e-shop in a few clicks.

Thus to understand Reserve and it’s offering it is necessary to understand DTF. DTF stand for Decentralized Token Folio, it is amazing branding to designate what is basically an ETF enhanced by being on_chain with the advantage mentioned earlier (redeem/mint 24/7, composable with DeFi, auditable by anyone).

To do this Reserve offer the infrastructure to create your own DTF, once it’s done anyone can mint or redeem your newly created index according to the weighting you specified. Moreover they offer the means to pilot those weight either directly or via a governance system. As such when you or the governance decide that those weight needs to be changed their re-balancing infrastructure will do it for you.

You can watch the following video if you can’t read: https://www.youtube.com/watch?v=EL9OHjIab_w

The Q3 re-balance situation

At launch 8 tokens where selected to be equal part of the index, a few month later the composition had shifted as some tokens performed better than other over this period of time. As decided at launch, a first discussion on what token to keep, remove or add was scheduled to happen in June to engage the community on the project. $ENA was showed the exit while $FXN, $OGN and ALCX were to be on-boarded.

Once this was decided a governance proposal to sell/buy token was launched with the goal to end up with the index composed of equal part (pricewise) of the 10 tokens selected. It didn’t went as planned and you can look up the number in the post above if you want the number as I won’t be discussing them.

At what cost ?

How do you determine the price of something ? This question is fundamental to the working of the society, the finance sector and DeFi. Yet, despite it’s importance it is a really hard question to get right. In finance (and defi) we often use the “market price”, it means whatever price peoples are willing to buy/sell. Depending on the number of peoples and their degree of agreement this metric can be more or less usable. As such for highly traded assets like EUR<>USD in the Forex it is easier to answer the question than if someone asked you the price of a wenllama (hint: wenllama are priceless).

Food for though

Now let’s imagine that you learn that someone is going to trade a lot of EUR for USD in a couple of hours at market price, how do you profit from it? That’s right you swap as much as possible for USD and wait for it to happen to sell back for your original currency hopping the trade was enough to move the price. This is what happened in the late 200X with the Forex Cartel.

This is easily transferable to Defi as transaction tends to be submitted to the public mempool, the place were transaction wait to be executed, and with far less liquidity than the Forex. One main problem, it is public and anyone can see you are going to trade a lots of USDC for a lots of Ether, leaving them free to buy as much Ether as possible before you (as you can pay for your transaction to happen faster on ethereum) and once you bought Ether at an inflated price then can sell it back pocketing the difference. This is the essence of a sandwich attack.

For most case this is trivial to fix, just sets up limit on what price you are willing to take. This is the approach taken by most front-end when they ask you to select a slippage.

However $OPEN needs to go through a governance were the transaction needs to be sets in stone 3-4 days in advance for peoples to vote on whether or not it should be executed. But how can you sets up price limit for a trade that will happen in 4 days? in a volatile market like crypto? knowing that if the trade is not accepted due to setting price limit too tight you are good for a new vote ?

The trade limit approach is fundamentally flawed for slow entity. No amount of effort to avoid MEV can fix this! You just broadcasted for the last 4 days that you are going to sell a certain amount of asset for an obsolete price. Any person with access to the internet and 2 neurons can just go to Uniswap a few minutes before the execution do the same trade as you, wait for the governance to execute and do the trade in reverse to pocket a few bucks on your back.

A give and take relationship

I hope that the last section was enough to argue my case on the needs of a different approach than price limit. This is solved by a secret technique to be sure you get the best price: sell to the highest bidder through an auction!

In defi the teacher’s favourite is called Dutch auction. It is use by a lots by protocols, including Ethereum Name Service, Yearn or Ajna to name a few. They work by starting at a price no sane person would take and gradually decrease the price over time. First one to pay the price get the product. They work great for defi as they integrate quite well with flashloan-based-MEV, if price go too low a bot can just flashloan the money to get the stuff, dump it on Uniswap and pay back the flashloan pocketing the change. This may seems bad, but this is great, because MEV is GOOD! When there are multiple bot competing to do the same, the “change” amount grow rapidly to “what covers the gas cost plus a few Gwei” ensuring that the protocol get a fair price with no manipulation possible.

This can be explained by the fact that MEV is a winner take all game. Let’s say you write a bot that take a $1 profit per dutch auction. But I set up mine to take only a 0.99$ profit and we participate in the same auction. I will get $0.99 and you get nothing. The only way to win for you is to take only 0.98$ profit, this way next auction you will get $0.98 and I get nothing. If I want to win against you I have to further lower my margin, this is a chase that ends up with both of us optimizing our bot to the opcode level to compete for a few Gwei of profit. Furthermore as it is happening on a permission-less chain we can’t agree on something like both setting a $1 profit limit and taking turn as any third party could come and set their bot to 0.99$ and we would get nothing.

The v4.0.0

I know what you are thinking right now, “Surely all that build up was to tell us that v2.0.0 was directly swapping and setting price limit while v4.0.0 will use dutch auction so that it doesn’t happen again!”. Well let me tell you anon that you are wrong~

technically v4.0.0 does solve MEV sandwich that happened but not how you think it does

v2.0.0 use dutch auction too and price limit are just set up to speed up the auction and guarantee a minimal price if no bidder participate. “But how could a sandwich happen then? You just told us dutch auction fixed this ?” I hear you say. Reread what I wrote and you will see there is a pretty big assumption, we need at least 2 competing actor to get a fair price with dutch auction.

in a theoretical world after an infinite amount of auction 2 is enough, in practice just assume the more participant the merrier for the auctioneer

It’s a dog-eat-dog world out there

During the Q3 rebalance there was not enough participant in the auction, allowing a bot to get assets from the $OPEN index under their fair value. However in a twist of fate this first bot got sandwiched by a more sophisticated bot. What you see in this tweet isn’t the $OPEN protocol being sandwiched, but a bot trying to profit from the lack of participation in the auction getting back-stabbed by another one in the on_chain jungle. Not once, not twice but many time (I don’t have time to dig & analyse all of them, but here a few pic of the one I found by just doing basic research).

The root of all evil

The root cause was the lack of participation in the auction, not “poor execution” (whatever that means), got nothing to do with price limit settings and cannot be fixed by MEV protection or any amount of infra. The only fix is to ensure there will be enough participant in the auction for it to be fair. This is the whole point of the CoW integration in v4.0.0, it increase the odd of the CoW resolvers participating in the auction, increasing the number auction participant and thus minimizing the risk of the protocol getting an unfair offer!

I repeat, unlike stated by @Pangea the CoWswap integration has nothing to do with MEV protection, it is written white on black in the docs

The remaining upgrade brought by the v4.0.0 aren’t here to get a better price during rebalance, their only goal is to help index get closer to the desired ratio after a rebalance

Conclusion

The MEV “problem” (read protocol getting unfair price) should be fixed thanks to the CoW integration, however writing a small-run-it-yourself-bot using Silverback for the community to run during rebalance can only strengthen the protocol and could make for a fun community bonding exercise.

However the uneven balance at the end of rebalance operation are here to stay. But they shouldn’t be as wide as before as the auction process is now more flexibility on how it happen (+ introduction of trusted third party that can refine some non critical parameter)

alice@wonderland:~$ whoami

I am an idol :microphone: wannabe currently working for the Aave-chan initiative where I mainly write part of the code so that the AAVE DAO’s will can be executed on_chain permissionlessly. (BTW I wrote a smoll utils to make proposal for the $OPEN governance)

V curious, I really enjoy searching for info on_chain and reading smart contract to understand how stuff work. Same goes for OSInt in general. :woman_detective:

Squidllionnaire, I am following $OPEN progress with an attentive eye. (considerin’ settin’ up a delegate platform)

Know for surviving the consequence of my action and wielding word as my weapons, I am usually sweet as long as you don’t waste my time :purple_heart:

3 Likes

Hey everyone, I got a chance to read through the write-ups on the Q3 rebalances and wanted to offer my thoughts.

Both contributions from @Pangea and @Alice touched on different aspects of what went wrong, and what is now going right with the upgrade to release 4.0.0. In summary, the auction model from 2.0.0 was suboptimal in how it was attempting to target the new basket (by locking in trades at the beginning of the governance cycle), and (not just in Reserve, but everywhere in DeFi) dutch auctions rely on a rich ecosystem of participants in order to guarantee a good price.

It’s a bit pedantic, but one simple clarification I want to offer is something I noticed in Pangea’s post: “Each proposed rebalance trade must specify a pair of two tokens to be sold/bought, as well as the min/max amount of each that can be sold/bought.”

  • “Amount” is not correct. A proposed auction specifies ranges [high, spot, low] of values for the ratio of token units to DTF units. Each of the buy and sell tokens have their own ratio ranges. When the auction is launched, a value (within range) is used for each of the buy and sell tokens, defining the ratio limit to which tokens can be bought or sold, respectively.

I would also note that the $4382 in lost value calculated by pangea is mostly due to the low liquidity of the tokens being traded and the inevitable slippage being incurred. Only about $1.3K was lost due to the sandwich attacks. As DTFs grow in size, there will inevitably be more scenarios in which a rebalance auction is looking to trade more value than the onchain DEX liquidity can handle in a single trade. The ABC Labs team is actively working on how to navigate and test this scenario so that future large rebalances can be executed efficiently and with reliable best-pricing.

Onward and upward! :rocket:

3 Likes

Adding a Snapshot vote to pick bounty winners on the Q3 rebalance post mortem. 72 hour voting window is open for vlSQUILL-OPEN holders.

Click here to vote.

1 Like

Final chapter in this RFC’s story:
The Q3 $OPEN rebalance went live on July 28, 2025.
Post-mortem bounties landed well, and the Snapshot vote closed August 7, 2025.
Plenty of takeaways surfaced—thanks to everyone who contributed.

See you in the governance wilds.

2 Likes

Has anyone considered flow based rebalancing to help the dtf be closer to the allocation during mint / redeem ?