> For the complete documentation index, see [llms.txt](https://fxprotocol.gitbook.io/fx-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fxprotocol.gitbook.io/fx-docs/developers/processing-the-rebalances-and-liquidations/short-pool-integration.md).

# Short Pool Integration

### 1. Contract Interface

```
interface IShortPoolManager {
    /**
     * @notice Rebalance positions in a specific tick
     * @param pool The address of short pool
     * @param receiver The address to receive fxUSD
     * @param tick The tick to rebalance
     * @param maxRawDebts Maximum raw debt tokens to use
     */
    function rebalance(
        address pool,
        address receiver,
        int16 tick,
        uint256 maxRawDebts
    ) external returns (uint256 colls, uint256 debts);

    /**
     * @notice Rebalance entire pool
     * @param pool The address of short pool
     * @param receiver The address to receive fxUSD
     * @param maxRawDebts Maximum raw debt tokens to use
     */
    function rebalance(
        address pool,
        address receiver,
        uint256 maxRawDebts
    ) external returns (uint256 colls, uint256 debts);

    /**
     * @notice Liquidate high-risk short positions
     * @param pool The address of short pool
     * @param receiver The address to receive fxUSD
     * @param maxRawDebts Maximum raw debt tokens to use
     */
    function liquidate(
        address pool,
        address receiver,
        uint256 maxRawDebts
    ) external returns (uint256 colls, uint256 debts);
}
```

### 2. Short Pool Specifics

**Key Differences from Long Pool:**

1. **Collateral**: fxUSD tokens
2. **Debt**: External tokens (ETH, BTC, etc.)

**Rebalance Example:**

```
// Get debt token for the short pool
address debtToken = IShortPool(shortPoolAddress).debtToken();

// Approve debt tokens for rebalancing
IERC20(debtToken).approve(shortPoolManager, maxDebtAmount);

// Execute rebalance
(uint256 fxUSDReceived, uint256 debtUsed) = 
    IShortPoolManager(shortPoolManager).rebalance(
        shortPoolAddress,    // target short pool
        msg.sender,          // receive fxUSD
        maxDebtAmount        // max debt tokens to use
    );
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://fxprotocol.gitbook.io/fx-docs/developers/processing-the-rebalances-and-liquidations/short-pool-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
