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.

Technical Background

$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.


  1. Scalara publishes a new composition of PONY Index on scalara.xyz.

  2. A representative of Pony Finance initiates a Tally vote to call $PONY's publishNewIndex function from Governor address with the following parameters:

    1. _tokens: ["0x11...","0x22...",...] an array of token addresses of the new constituents of PONY Index, provided by Scalara

    2. _weights: [12345,67890,...] an array of weightfactors corresponding to the above token addresses (times 10E18), provided by Scalara

    3. _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 publishNewIndex function 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 publishNewIndex again 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 publishNewIndex function 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) * ibRatio * supply.

Last updated