https://github.com/fireflyprotocol/bluefin7k-typescript-sdk
Bluefin7k aggregator SDK
https://github.com/fireflyprotocol/bluefin7k-typescript-sdk
library team-eng-expansion
Last synced: 4 months ago
JSON representation
Bluefin7k aggregator SDK
- Host: GitHub
- URL: https://github.com/fireflyprotocol/bluefin7k-typescript-sdk
- Owner: fireflyprotocol
- License: mit
- Created: 2025-06-04T17:05:03.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-04T18:07:10.000Z (4 months ago)
- Last Synced: 2026-03-05T00:06:39.496Z (4 months ago)
- Topics: library, team-eng-expansion
- Language: TypeScript
- Homepage:
- Size: 182 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Bluefin7k Aggregator TypeScript SDK
## Installation
```bash
npm i @bluefin-exchange/bluefin7k-aggregator-sdk
```
This package requires `@pythnetwork/pyth-sui-js` as a peer dependency. If your
project does not have it, you need to install it.
```bash
npm i @pythnetwork/pyth-sui-js
```
## Usage
You can import the entire SDK as a module:
```typescript
import SevenK from "@bluefin-exchange/bluefin7k-aggregator-sdk";
```
or import specific functions as needed:
```typescript
import { getQuote, buildTx } from "@bluefin-exchange/bluefin7k-aggregator-sdk";
```
## Config
Configuration is optional, but if provided, it must be set before invoking any
SDK functions.
### Set API Key
You can use our SDK with a default rate limit of **5 requests per second**
without needing an API key.
- For **frontend (in-browser) usage**, no API key is required, and the rate
limit cannot be increased.
- For **backend (server-side) usage**, the API key is **optional** for default
usage. However, to request a **higher rate limit**, you must provide both an
**API key** and **partner information**.
To request a rate limit increase, please submit your request at our [Discord](https://discord.gg/bluefinapp).
Create a ticket to request an API key for Bluefin7k Aggregator.
| Usage | API Key Required | Default Rate Limit | Can Request Higher Rate Limit |
| -------- | ------------------------------------- | ------------------------------- | -------------------------------------------- |
| Frontend | No | 5 requests/second | No |
| Backend | Optional (required to increase limit) | 5 requests/second (without key) | Yes (requires API Key & partner information) |
```typescript
import { Config } from "@bluefin-exchange/bluefin7k-aggregator-sdk";
Config.setApiKey("YOUR_API_KEY");
console.log("API key", Config.getApiKey());
```
### Set BluefinX API key
Setting a BluefinX API key is optional. However, if you'd like to use one — for
example, to avoid rate limits when routing through BluefinX — you'll need to
request an API key directly from Bluefin.
```typescript
import { Config } from "@7kprotocol/sdk-ts";
Config.setBluefinXApiKey("YOUR_BLUEFINX_API_KEY");
console.log("BluefinX API key", Config.getBluefinXApiKey());
```
### Set Sui Client
```typescript
import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { Config } from "@bluefin-exchange/bluefin7k-aggregator-sdk";
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
Config.setSuiClient(suiClient);
console.log("Sui client", Config.getSuiClient());
```
Note: this package only supports **mainnet**.
### Set Endpoint Provider (API Version)
You can toggle between different API versions:
- `"Bluefin7k"` (default) - Uses `v2/quote` endpoint
- `"Bluefin7kV2"` - Uses `v3/quote` endpoint with RFQ support
```typescript
import { Config } from "@bluefin-exchange/bluefin7k-aggregator-sdk";
// Use v2 API (default)
Config.setEndpointProvider("Bluefin7k");
// Use v3 API with RFQ support
Config.setEndpointProvider("Bluefin7kV2");
```
## Swap
See [Swap](docs/SWAP.md).
## BluefinX
See [BluefinX](docs/BLUEFINX.md).
## Limit Orders
See [Limit Orders](docs/LIMIT.md).
## DCA Orders
See [DCA Orders](docs/DCA.md).
## Prices
```typescript
import { getTokenPrice, getTokenPrices, getSuiPrice } from "@bluefin-exchange/bluefin7k-aggregator-sdk";
const tokenPrice = await getTokenPrice(
"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
);
const tokenPrices = await getTokenPrices([
"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
]);
const suiPrice = await getSuiPrice();
```
## Miscellaneous
If you encounter issues when importing functions from this SDK in a Node.js
environment, refer to [src/examples/nodejs/](./src/examples/nodejs/) for
guidance.
## License
Bluefin7k Aggregator TypeScript SDK released under the MIT license. See the [LICENSE](./LICENSE)
file for details.