> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hadron.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Reading Pool State

## **refetchStates**

Re-fetches all on-chain accounts (config, oracle, curve metadata, prefabs) in parallel and updates the instance in-place. Best to run first to get the latest pool data.

```typescript theme={null}
await pool.refetchStates();
```

## **getMidprice**

Current midprice decoded from the on-chain Q32 oracle value.

```typescript theme={null}
const mid = pool.getMidprice(); // e.g. 1.0023
```

**Returns**`number`

### [**​**](https://docs.hadron.fi/sdk/reference/pool-functions#getspreadfactor)**getSpreadFactor**

Current base-spread factor decoded from the on-chain Q32 oracle value. A factor of 0.9995 means 5 bps of spread.

```typescript theme={null}
const factor = pool.getSpreadFactor(); // e.g. 0.9995
const bps = pool.getSpreadBps();       // e.g. 5
```

**Returns**`number`

### [**​**](https://docs.hadron.fi/sdk/reference/pool-functions#getactivecurveslots)**getActiveCurveSlots**

Returns the slot index for each active curve.

```typescript theme={null}
const slots = pool.getActiveCurveSlots();
// { priceBid: 0, priceAsk: 0, riskBid: 0, riskAsk: 0 }
```

**Returns**`{ priceBid: number, priceAsk: number, riskBid: number, riskAsk: number }`

## **getActiveCurves**

Decodes and returns all four active curves from the appropriate prefab data.

```typescript theme={null}
const curves = pool.getActiveCurves();
// curves.priceBid.points, curves.priceAsk.points, etc.
```

**Returns**`{ priceBid: CurveSide, priceAsk: CurveSide, riskBid: CurveSide, riskAsk: CurveSide }`

Each`CurveSide`contains:

| **Field**              | **Type**        | **Description**                   |
| :--------------------- | :-------------- | :-------------------------------- |
| `numPoints`            | `number`        | Number of curve points            |
| `defaultInterpolation` | `Interpolation` | Default interpolation mode        |
| `xMode`                | `CurveXMode`    | X-axis mode (Native or Alternate) |
| `riskMode`             | `RiskMode`      | Virtual or Integrated             |
| `points`               | `CurvePoint[]`  | The curve point array             |

## **getCurveSlot**

Decode a specific curve slot by type and index.

```typescript theme={null}
const curve = pool.getCurveSlot(CurveType.PriceBid, 1);
```

**Returns**`CurveSide`

| **Param**   | **Type**    | **Description**                                     |
| :---------- | :---------- | :-------------------------------------------------- |
| `curveType` | `CurveType` | One of `PriceBid`, `PriceAsk`, `RiskBid`, `RiskAsk` |
| `slot`      | `number`    | Slot index                                          |

***

## [**​**](https://docs.hadron.fi/sdk/reference/pool-functions#building-instructions)
