# CLMM

- [Typescript SDK](https://docs.ferra.ag/integration/clmm/typescript-sdk.md): The typescript SDK to interact with Ferra CLMM protocol
- [Get CLMM Pools](https://docs.ferra.ag/integration/clmm/typescript-sdk/get-clmm-pools.md): Retrieve pool information from the Ferra protocol.
- [Get Positions](https://docs.ferra.ag/integration/clmm/typescript-sdk/get-positions.md): Retrieve liquidity positions from Ferra pools.
- [Get Pool Position Rewards](https://docs.ferra.ag/integration/clmm/typescript-sdk/get-pool-position-rewards.md): Check reward amounts for liquidity positions.
- [Create CLMM Pool](https://docs.ferra.ag/integration/clmm/typescript-sdk/create-clmm-pool.md): Ferra is a permissionless liquidity infrastructure where anyone can create a CLMM pool.
- [Open Position](https://docs.ferra.ag/integration/clmm/typescript-sdk/open-position.md): Create a new liquidity position NFT in a Ferra pool.
- [Add Liquidity](https://docs.ferra.ag/integration/clmm/typescript-sdk/add-liquidity.md): Add tokens to a liquidity position in Ferra pools.
- [Remove Liquidity](https://docs.ferra.ag/integration/clmm/typescript-sdk/remove-liquidity.md): Withdraw tokens from a liquidity position in Ferra pools.
- [Close Position](https://docs.ferra.ag/integration/clmm/typescript-sdk/close-position.md): Remove all liquidity and close a position permanently.
- [Collect Rewards](https://docs.ferra.ag/integration/clmm/typescript-sdk/collect-rewards.md): Claim trading fees and pool rewards from liquidity positions.
- [Calculate Swap Rates](https://docs.ferra.ag/integration/clmm/typescript-sdk/calculate-swap-rates.md)
- [PreSwap](https://docs.ferra.ag/integration/clmm/typescript-sdk/preswap.md): Calculate swap amounts and check price impact before executing trades.
- [Swap](https://docs.ferra.ag/integration/clmm/typescript-sdk/swap.md): Execute token swaps on Ferra pools.
- [Calculate Pool Metrics](https://docs.ferra.ag/integration/clmm/typescript-sdk/calculate-pool-metrics.md): Calculate key performance indicators for liquidity pools.
- [Router Swap](https://docs.ferra.ag/integration/clmm/typescript-sdk/router-swap.md): Execute optimized swaps through Ferra's smart router for best rates.
- [Price Impact](https://docs.ferra.ag/integration/clmm/typescript-sdk/price-impact.md): Calculate and manage price impact for swaps in CLMM pools.
- [Smart Contract](https://docs.ferra.ag/integration/clmm/smart-contract.md): Smart contract interface to interact with CLMM protocol
- [Interface Documentation](https://docs.ferra.ag/integration/clmm/smart-contract/interface-documentation.md): This repository contains the Move interface definitions for the Ferra Concentrated Liquidity Market Maker (CLMM) protocol. These interfaces provide type definitions and function signatures without imp
- [Factory Module](https://docs.ferra.ag/integration/clmm/smart-contract/factory-module.md): The Factory module is responsible for creating and managing pools. It maintains a registry of all pools and ensures proper initialization.
- [Pool Module](https://docs.ferra.ag/integration/clmm/smart-contract/pool-module.md): The pool module is the core component of the CLMM protocol, defining trading pairs and handling all operations related to trading and liquidity management.
- [Position Module](https://docs.ferra.ag/integration/clmm/smart-contract/position-module.md): Manages liquidity position NFTs and their associated metadata.
- [Rewarder Module](https://docs.ferra.ag/integration/clmm/smart-contract/rewarder-module.md): Implements liquidity mining rewards to incentivize liquidity provision.
- [Tick](https://docs.ferra.ag/integration/clmm/smart-contract/tick.md): Manages the discrete price points and liquidity distribution across the price curve.


---

# 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://docs.ferra.ag/integration/clmm.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.
