Index rebalancing ensures that PONY Index represents attractive and high quality yield opportunities.
The objective of $PONY token is to track Scalara's Passive Omnichain Net Yield (PONY) Index. This means that anytime Scalara, the index publisher, changes the composition of PONY Index, $PONY has to be rebalanced to reflect the current index.
$PONY token is implemented through asset management protocol Kuiper Finance. Kuiper Finance allows for the creation and maintenance of basket tokens. The main two features a basket token contract has to provide in order to be suitable for tracking a composite index are:
- Mint and redeem: These functions allow anyone to swap all index constituents for the corresponding amount of index tokens and vice versa.
- Rebalance: This function allows the index publisher to change the index composition. Kuiper uses an auction to execute the rebalancing.
PONY DAO's Governor and Treasury address is the designated basket publisher of $PONY. Therefore, only PONY DAO can initiate a rebalancing of $PONY and any transaction necessary in that process has to pass a DAO vote.
- 2.A representative of Pony Finance initiates a Tally vote to call $PONY's
publishNewIndexfunction from Governor address with the following parameters:
_tokens: ["0x11...","0x22...",...] an array of token addresses of the new constituents of PONY Index, provided by Scalara
_weights: [12345,67890,...] an array of weightfactors corresponding to the above token addresses (times
10E18), provided by Scalara
_minIbRatio: 9999999999999999999 minimum ibRatio that will be required after a successful rebalance (times
10E18). The difference between this value and the current ibRatio determines the maximum loss in net asset value accepted in the auction.
- 3.The Tally vote runs for 2 days with a 4% quorum.
- 4.A successful vote allows the DAO representative to call the
publishNewIndexfunction which triggers a 24 hour time lock that serves as a means to protect token holders.
- 5.After 24 hours have passed, Kuiper requires the index publisher to call
publishNewIndexagain with the identical inputs to start the auction.
- 6.The second Tally vote runs again for 2 days with a 4% quorum.
- 7.A successful second vote allows the DAO representative to call of the
publishNewIndexfunction and by that start the rebalancing auction.
- 8.After the auction starts anyone can bid on the ibRatio. The auctioned new ibRatio decreases from 2 times the current level in decrements of 0.0001 per block until the minimum ibRatio. Anyone can bond 0.25% of the basket token supply and settle the auction by rebalancing the basket with at least the ibRatio level from the time of bonding. The auction winner has 24 hours to deliver the new input tokens: delta of current and new
_weights(where positive) *