# 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: 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://fxprotocol.gitbook.io/fx-docs/developers/processing-the-rebalances-and-liquidations/short-pool-integration.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.
