# Initiating an auction

A rebalancing auction is started when the basket publisher calls the `publishNewIndex` function on the basket contract.&#x20;

This function takes the following arguments:

<table data-header-hidden><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden></th></tr></thead><tbody><tr><td><code>_tokens</code></td><td>an array of token addresses</td><td></td><td></td></tr><tr><td><code>_weights</code></td><td>an array of weights. The weight is the amount of a given token for each </td><td></td><td></td></tr><tr><td><code>_minIbRatio</code></td><td>the minimum ibRatio that will be required after a successful rebalance</td><td></td><td></td></tr></tbody></table>

{% hint style="info" %}
The **ibRatio** (index to basket ratio) is a parameter that tracks the amount of each token in the basket over time.&#x20;

Number of tokens\[i] in 1 basket token = weights\[i] \* ibRatio

The ibRatio is 1 at basket creation.

The ibRatio will decrease when fees are collected.

The ibRatio can increase if rebalancing auctions are favorable to basket token holders\
\

{% endhint %}

The first time the publisher calls `publishNewIndex` , the new index will be queued for a 24 hour timelock. After the required time has elapsed, the publisher will be able to call `publishNewIndex` again to start the auction.
