# Rebalancing

Permissionless Rebalance (cannot change range, cannot do swap): `rebalance`

The standard permissionless rebalance harvests fees, and re-adds it maximally into the LP without doing any swap.  This can be called by anyone.  In general, permissionless rebalances are called at least once per day on all Islands by bots.

Basic Rebalance (change range, can only do swap in own pool): `executiveRebalance`&#x20;

The basic permissioned rebalance can be used to change the range, but it can only swap within the underlying Kodiak V3 pool.  This function is generally only used to change the range when no swap is required (such as setting up a new island).  Only the `manager` role can call this function.  This function and underlying mechanism was taken from ArrakisV1 contracts.

Full Rebalance (change range, swap through any whitelisted router): `executiveRebalanceWithRouter`

The full rebalance function is a Kodiak native feature, that allows rebalance operations to occur while routing liquidity through any whitelisted external router.  All rebalance with swaps now use the Full Rebalance feature, using all available liquidity on Berachain.

*Routing through external routers*:

* Rebalances use Kodiak's meta-aggregator [kX](/protocol/kx.md), which routes through all possible liquidity sources to give the best possible quote for the Island (including routing through all non-Kodiak venues)
* The minimum output / slippage is strictly enforced to have a very tight slippage, both off-chain and using an on-chain TWAP on the pool itself
* Each rebalance swap is monitoring for potential MEV impacts

*The size and pace of rebalance swaps are limited by*:

* Liquidity (slippage cannot be too high) through Berachain
* Volumes (Kodiak rebalances cannot be too large a share of the pool volume)
* Current price relative to recent TWAP ("Opportunistic" rebalancing)

:warning: Kodiak Islands cannot arbitrarily change asset ratios, only gradually with rebalances (+ swaps) that are constrained by the parameters listed above.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.kodiak.finance/protocol/islands/island-mechanics/rebalancing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
