---
updatedAt: 2025-09-22T22:35:12.000Z
agentTools:
  projectIndex: https://bluefin-exchange.readme.io/v2.0.1/llms.txt
---

# Introduction

## Understanding Bluefin's Spot CLMM

Developers can interact with Bluefin's Spot CLMM through off-chain and on-chain components.

The off-chain components are a series of exposed API endpoints that enables users to retrieve data such as:

* [Exchange Data](https://bluefin-exchange.readme.io/v2.0.1/reference/spot-api-getexchangeinfo) (TVL, total volume and total fees on the protocol).
* [Pools Data](https://bluefin-exchange.readme.io/v2.0.1/reference/spot-api-getpoolsinfo) (Addresses, transactions, TVL, fees, etc.).
* [Tokens Data](https://bluefin-exchange.readme.io/v2.0.1/reference/spot-api-gettokensinfo) (Symbol, address, price, etc.).

However, these APIs are only for collecting the information, and in order to perform actions such as swapping, opening/closing positions, claiming fees/rewards and providing/removing liquidity to a pool, users must interact with the on-chain contracts. Bluefin offers two alternatives for this interaction:

* The first being through our [Spot SDK](https://bluefin-exchange.readme.io/v2.0.1/reference/spot-api-sdk-installation), which enables developers to make the contract calls through Typescript functions. If a user wanted to set up their own SDK in any other language, they can reference the `on-chain-calls.ts` interface from Bluefin's Typescript SDK and adapt the required functions to the corresponding language.
* The second option is to directly interact with our move contracts through the users own smart contracts. For this purpose we've created [interfaces](https://bluefin-exchange.readme.io/v2.0.1/reference/spot-api-contracts-getting-started) with all of the methods available in our deployment.