## Gain full visibility into the SUI, Solana, Eclipse and Ton data with Nimbus Data Service - the most trusted independent data source.
Monitor your metrics in real-time with automatic updates every few
seconds.
Visualize your data with beautiful, interactive charts and graphs.
Keep track of all important events and activities in your system.
Access frequently used actions with a single click from the dashboard.
# Get DEFI positions for an address
Source: https://docs.getnimbus.io/api-reference/address/get-defi-positions-for-an-address
/api-reference/openapi.json get /v2/address/{address}/positions
Retrieves DEFI position information for a given address across various chains and protocols
# Get DIDs for an address
Source: https://docs.getnimbus.io/api-reference/address/get-dids-for-an-address
/api-reference/openapi.json get /v2/address/{address}/dids
Retrieves Decentralized Identifier (DID) associated with an address. Currently supports SUI Name Service (SNS) for Sui addresses and domain TLDs for SOL addresses.
# Get NFT holding by address
Source: https://docs.getnimbus.io/api-reference/address/get-nft-holding-by-address
/api-reference/openapi.json get /v2/address/{address}/nft-holding
Retrieves NFT holding information for a given address, including collection details and token information
# Get Token holding by address
Source: https://docs.getnimbus.io/api-reference/address/get-token-holding-by-address
/api-reference/openapi.json get /v2/address/{address}/holding
Retrieves holding information for a given address, including token balances and their values
# Get transaction payload for DEFI actions
Source: https://docs.getnimbus.io/api-reference/defi-actions/get-transaction-payload-for-defi-actions
/api-reference/openapi.json post /v2/farming/tx/payload
Generate transaction payload based on operation type and parameters. The required fields are determined by the response from /v2/farming/tx/prepare API.
# Prepare transaction fields for DEFI actions
Source: https://docs.getnimbus.io/api-reference/defi-actions/prepare-transaction-fields-for-defi-actions
/api-reference/openapi.json get /v2/farming/tx/prepare
# Get APR data for a specific protocol
Source: https://docs.getnimbus.io/api-reference/farming/get-apr-data-for-a-specific-protocol
/api-reference/openapi.json get /v2/farming/apr/{protocol}
# Get historical APY data for a specific vault
Source: https://docs.getnimbus.io/api-reference/farming/get-historical-apy-data-for-a-specific-vault
/api-reference/openapi.json get /v2/farming/{id}/apy-historical
# Get investment vaults
Source: https://docs.getnimbus.io/api-reference/farming/get-investment-vaults
/api-reference/openapi.json get /v2/farming/vaults
# Simulate yield farming returns
Source: https://docs.getnimbus.io/api-reference/farming/simulate-yield-farming-returns
/api-reference/openapi.json post /v2/farming/{id}/simulate
Calculates potential returns for yield farming based on investment amount and price changes
# Introduction
Source: https://docs.getnimbus.io/api-reference/introduction
Please go to [GetNimbus Portal](https://portal.getnimbus.io/) to get an API key.
Also, you can find our OpenAPI spec [here](https://api.getnimbus.io/api-spec.json).
**Note**: As of **August 2025**, we have updated our policy that some API endpoints now require API key to access. You must include header `x-api-key` in your requests to access these APIs.
# Get SUI coins list with pagination
Source: https://docs.getnimbus.io/api-reference/token/get-sui-coins-list-with-pagination
/api-reference/openapi.json get /sui/coinsList
Retrieves a paginated list of SUI tokens with optional filtering and sorting
# Get SUI Token Prices (single)
Source: https://docs.getnimbus.io/api-reference/token/get-sui-token-prices-single
/api-reference/openapi.json get /tokens/sui/{address}/price
Retrieves the current price of one SUI token based on provided address and an optional timestamp.
# Get token price chart data
Source: https://docs.getnimbus.io/api-reference/token/get-token-price-chart-data
/api-reference/openapi.json get /tokens/sui/price/chart
Retrieves historical price data for a SUI token with different time intervals based on the range
Unix timestamp in seconds. If not provided, returns data for last 24 hours.
Different ranges will have different intervals:
- < 1 day: 5-minute intervals
- < 7 days: 1-hour intervals
- ≥ 7 days: 1-day intervals
# Get token price history for SUI
Source: https://docs.getnimbus.io/api-reference/token/get-token-price-history-for-sui
/api-reference/openapi.json get /tokens/sui/price-history
Retrieves historical price data for a token with different time ranges and intervals
# Retrieve SUI Token Price
Source: https://docs.getnimbus.io/api-reference/token/retrieve-sui-token-price
/api-reference/openapi.json get /tokens/sui/price
Fetches the price of one or more SUI tokens for specified addresses and an optional timestamp.
# Retrieve SUI Token Price
Source: https://docs.getnimbus.io/api-reference/token/retrieve-sui-token-price-1
/api-reference/openapi.json post /tokens/sui/price
Fetches the price of one or more SUI tokens for specified addresses and an optional timestamp.
# Brand Kit
Source: https://docs.getnimbus.io/brand-kit
# Nimbus
Nimbus - visual signature
Nimbus - visual signature short
Nimbus - logo
Nimbus - logo white full
Nimbus - logo dark full
# DEFI Actions
Source: https://docs.getnimbus.io/defi-actions
Yield farming across DeFi third-party protocol platforms instantly interact with Nimbus.
## Value of the API
* **Instant Interaction**: These APIs allow developers to quickly prepare and execute transactions with third-party DeFi protocols without needing to understand the underlying complexities of each protocol.
* **Standardization**: By providing a standardized way to prepare transaction fields and generate payloads, these APIs reduce the risk of errors and improve the efficiency of integrating with multiple DeFi protocols.
* **Flexibility**: Developers can easily switch between different protocols and action types, making it easier to build versatile DeFi applications that can interact with various services.
* **Enhanced User Experience**: These APIs streamline the user experience by automating the preparation of transaction fields and payloads. This allows users to focus on their investment strategies rather than the technical details of transaction construction.
***
## How to use?
**1. Prepare Transaction Fields for DEFI Actions**
* **Endpoint**: `/v2/farming/tx/prepare`
* **Description**: This API prepares the necessary transaction fields required for various DeFi actions based on the specified protocol and action type. It ensures that the client knows what parameters are needed for the transaction.
* **Usage**:
```javascript Get started theme={null}
GET /v2/farming/tx/prepare?chain=SUI&protocol=alpha-fi&type=STAKING
```
The response will provide the necessary fields to be included in the transaction payload.
**2. Get Transaction Payload for DEFI Actions**
* **Endpoint**: `/v2/farming/tx/payload`
* **Description**: This API generates the transaction payload based on the operation type and parameters provided. It uses the required fields determined by the `/v2/farming/tx/prepare` API.
* **Usage**:
```javascript Get started theme={null}
POST /v2/farming/tx/payload
{
"chain": "SUI",
"protocol": "alpha-fi",
"type": "STAKING",
"poolId": "0xd013a1a0c6f2bad46045e3a1ba05932b4a32f15864021d7e0178d5c2fdcc85e3",
"sender": "0xYourWalletAddress",
"amount": "200000000",
"isSinglePool": true
}
```
The response will provide the transaction payload that can be sent to the blockchain for execution.
**3. Execute Transaction Payload for DEFI Actions**
* **Description**: Sign and Execute Transaction from API generates transaction payload.
* **Usage**:
```javascript Get started theme={null}
import { useWallet } from "@suiet/wallet-kit";
import { Transaction } from "@mysten/sui/transactions";
const wallet = useWallet();
const txBlock = Transaction.from(responseTrxPayload);
await wallet.signAndExecuteTransactionBlock({
transactionBlock: txBlock,
options: {
showInput: true,
showEffects: true,
showEvents: true,
showObjectChanges: true,
showBalanceChanges: true,
},
});
```
**4. Supported Protocol Types and Actions**
The following protocols and actions are currently supported by the API:
* **Supported Protocols**
* `alpha-fi`
* `navi`
* `scallop`
* `suilend`
* `native-staking`
* **Supported Actions**
* `LENDING`: Borrowing assets from a liquidity pool.
* `BORROW`: Taking a loan against collateral.
* `REPAY`: Paying back a borrowed amount.
* `ADD_LP`: Adding liquidity to a liquidity pool.
* `REMOVE_LP`: Removing liquidity from a liquidity pool.
* `STAKING`: Locking assets to earn rewards.
* `UNSTAKING`: Unlocking staked assets.
* `LENDING_WITHDRAW`: Withdrawing lent assets from a pool.
***
## Learn more API
* [Prepare API](https://docs.getnimbus.io/api-reference/defi-actions/prepare-transaction-fields-for-defi-actions)
* [Get Transaction Payload API](https://docs.getnimbus.io/api-reference/defi-actions/get-transaction-payload-for-defi-actions)
# Introduction
Source: https://docs.getnimbus.io/introduction
We provide insightful on-chain data, focusing on SUI, Solana, Eclipse and Ton. Additionally, we help users optimize their yield farming profits. Our open-source SUI Agent Kit, integrated with AI, makes interacting with the SUI chain seamless and easy.
We provide real-time data and customized analysis to help you make informed decisions tailored to your needs.
An open-source toolkit for connecting AI agents to Sui protocols.
You can start exploring the API endpoints for free. When you need API keys, simply sign up for the API dashboard. For questions, ideas, or feedback, feel free to reach out to the team!
### Need help?
Need help finding something? Contact us—we respond in under an hour.
Telegram
Email
# Aerodrome
Source: https://docs.getnimbus.io/list-protocol/Aerodrome
* **URL**: [Aerodrome](https://aerodrome.finance/)
* **Twitter**: [@AerodromeFi](https://x.com/AerodromeFi)
* **Blockchain**: Base
* **Category**: Dex, AMM, CLMM
# Aftermath Finance
Source: https://docs.getnimbus.io/list-protocol/AftermathFinance
* **URL**: [Aftermath Finance](https://aftermath.finance/)
* **Twitter**: [@aftermathfi](https://x.com/aftermathfi)
* **Blockchain**: Sui
* **Category**: Lending, Yield, Liquid Staking, Dex
# AlphaFi
Source: https://docs.getnimbus.io/list-protocol/AlphaFi
* **URL**: [AlphaFi](https://alphafi.xyz/)
* **Twitter**: [@AlphaFiSUI](https://x.com/AlphaFiSUI)
* **Blockchain**: Sui
* **Category**: Yield
# AlphaLend
Source: https://docs.getnimbus.io/list-protocol/AlphaLend
* **URL**: [AlphaLend](https://alphalend.xyz/)
* **Twitter**: [@AlphaLendSui](https://x.com/AlphaLendSui)
* **Blockchain**: Sui
* **Category**: Lending
# BlueMove
Source: https://docs.getnimbus.io/list-protocol/BlueMove
* **URL**: [BlueMove](https://dex.bluemove.net/)
* **Twitter**: [@BlueMove\_OA](https://x.com/BlueMove_OA)
* **Blockchain**: Sui
* **Category**: AMM
# Bluefin
Source: https://docs.getnimbus.io/list-protocol/Bluefin
* **URL**: [Bluefin](https://trade.bluefin.io/)
* **Blockchain**: Sui
* **Category**: Perpeptual, CLMM
# Bucket
Source: https://docs.getnimbus.io/list-protocol/BucketProtocol
* **URL**: [Bucket Protocol](https://app.bucketprotocol.io/)
* **Twitter**: [@bucket\_protocol](https://x.com/bucket_protocol)
* **Blockchain**: Sui
* **Category**: Lending, Staking, Yield
# Cetus
Source: https://docs.getnimbus.io/list-protocol/Cetus
* **URL**: [Cetus](https://www.cetus.zone/)
* **Twitter**: [@CetusProtocol](https://x.com/CetusProtocol)
* **Email**: [hello@cetus.zone](mailto:hello@cetus.zone)
* **Blockchain**: Sui
* **Category**: Dex, CLMM, DLMM
* **Whitepaper**: Not provided
# DeDust
Source: https://docs.getnimbus.io/list-protocol/DeDust
* **URL**: [DeDust](https://dedust.io/)
* **Twitter**: [@dedust\_io](https://x.com/dedust_io)
* **Blockchain**: Ton
* **Category**: Dex, AMM
# DeepR
Source: https://docs.getnimbus.io/list-protocol/DeepR
* **URL**: [DeepR](https://www.deepr.finance/)
* **Twitter**: [@DeeprFinance](https://x.com/DeeprFinance)
* **Blockchain**: Shimmer
* **Category**: Lending, Liquid Staking
# DoubleUp
Source: https://docs.getnimbus.io/list-protocol/DoubleUp
* **URL**: [DoubleUp](https://www.doubleup.fun/)
* **Twitter**: [@doubleup\_app](https://x.com/doubleup_app)
* **Blockchain**: Sui
* **Category**: Casino, Perpetual, Liquid Staking
# EVAA
Source: https://docs.getnimbus.io/list-protocol/EVAA
* **URL**: [EVAA](https://app.evaa.finance/)
* **Twitter**: [@evaaprotocol](https://x.com/evaaprotocol)
* **Blockchain**: Ton
* **Category**: Lending
# Elixir
Source: https://docs.getnimbus.io/list-protocol/Elixir
* **URL**: [Elixir](https://agg.elixir.xyz/)
* **Blockchain**: Sui
* **Category**: Perpeptual
# FlowX
Source: https://docs.getnimbus.io/list-protocol/FlowX
* **URL**: [FlowX](https://flowx.finance/)
* **Twitter**: [@FlowX\_finance](https://x.com/FlowX_finance)
* **Email**: [contact@flowx.finance](mailto:contact@flowx.finance)
* **Blockchain**: Sui
* **Category**: Dex, Yield
# Full Sail
Source: https://docs.getnimbus.io/list-protocol/FullSail
* **URL**: [Full Sail](https://fullsail.finance/)
* **Twitter**: [@FullSailFi](https://x.com/FullSailFi)
* **Blockchain**: Sui
* **Category**: Dex, CLMM
# Haedal
Source: https://docs.getnimbus.io/list-protocol/Haedal
* **URL**: [Haedal](https://www.haedal.xyz/)
* **Twitter**: [@HaedalProtocol](https://x.com/HaedalProtocol)
* **Blockchain**: Sui
* **Category**: Liquid Staking, Yield, LP Vault
# Hawksight
Source: https://docs.getnimbus.io/list-protocol/Hawksight
* **URL**: [Hawksight](https://www.hawksight.co/)
* **Twitter**: [@HawksightCo](https://x.com/HawksightCo)
* **Blockchain**: Solana
* **Category**: Yield
# Ika
Source: https://docs.getnimbus.io/list-protocol/Ika
* **URL**: [Ika](https://ika.xyz/)
* **Twitter**: [@ikadotxyz](https://x.com/ikadotxyz)
* **Blockchain**: Sui
* **Category**: MPC
# Invariant
Source: https://docs.getnimbus.io/list-protocol/Invariant
* **URL**: [Invariant](https://eclipse.invariant.app/)
* **Twitter**: [@invariant\_labs](https://x.com/invariant_labs)
* **Blockchain**: Eclipse
* **Category**: CLMM, Yield, Lending, DEX
# Iotabee
Source: https://docs.getnimbus.io/list-protocol/Iotabee
* **URL**: [Iotabee](https://iotabee.com/)
* **Twitter**: [@iotabee](https://x.com/iotabee)
* **Blockchain**: Shimmer
* **Category**: Dex, Yield, Liquid Staking
# Kai Finance
Source: https://docs.getnimbus.io/list-protocol/KaiFinance
* **URL**: [Kai Finance](https://kai.finance/)
* **Twitter**: [@kai\_finance\_sui](https://x.com/kai_finance_sui)
* **Blockchain**: Sui
* **Category**: Dex, CLMM
# Kamino
Source: https://docs.getnimbus.io/list-protocol/Kamino
* **URL**: [Kamino](https://app.kamino.finance/)
* **Twitter**: [@KaminoFinance](https://x.com/KaminoFinance)
* **Blockchain**: Solana
* **Category**: Yield, Lending
# Kriya
Source: https://docs.getnimbus.io/list-protocol/Kriya
* **URL**: [Kriya](https://www.kriya.finance/)
* **Twitter**: [@KriyaDEX](https://x.com/KriyaDEX)
* **Blockchain**: Sui
* **Category**: Dex, AMM
* **Whitepaper**: [Kriya Whitepaper](https://github.com/Galxe/protocol-whitepaper/blob/main/Galxe_Protocol_Whitepaper.pdf)
# Lotus Finance
Source: https://docs.getnimbus.io/list-protocol/LotusFinance
* **URL**: [Lotus Finance](https://app.lotusfinance.io/)
* **Twitter**: [@Lotusfinance\_io](https://x.com/Lotusfinance_io)
* **Blockchain**: Sui
* **Category**: CLMM
# Magma Finance
Source: https://docs.getnimbus.io/list-protocol/MagmaFinance
* **URL**: [Magma Finance](https://magmafinance.io/)
* **Twitter**: [@Magma\_Finance](https://x.com/Magma_Finance)
* **Blockchain**: Sui
* **Category**: Dex, CLMM
# Mole
Source: https://docs.getnimbus.io/list-protocol/Mole
* **URL**: [Mole](https://mole.fi/)
* **Twitter**: [@moledefi](https://x.com/moledefi)
* **Blockchain**: Sui
* **Category**: Yield, Staking
# Momentum
Source: https://docs.getnimbus.io/list-protocol/Momentum
* **URL**: [Momentum](https://app.mmt.finance/)
* **Twitter**: [@Momentum](https://x.com/MMTFinance)
* **Blockchain**: Sui
* **Category**: Dex, CLMM
# Navi
Source: https://docs.getnimbus.io/list-protocol/Navi
* **URL**: [Navi](https://naviprotocol.io/)
* **Twitter**: [@navi\_protocol](https://x.com/navi_protocol)
* **Blockchain**: Sui
* **Category**: Yield, Lending, Liquid Staking, DeFi
# Nemo Protocol
Source: https://docs.getnimbus.io/list-protocol/NemoProtocol
* **URL**: [Nemo Protocol](https://www.nemoprotocol.com/)
* **Twitter**: [@nemoprotocol](https://x.com/nemoprotocol)
* **Blockchain**: Sui
* **Category**: Yield
# NODO
Source: https://docs.getnimbus.io/list-protocol/Nodo
* **URL**: [NODO](https://ai.nodo.xyz/)
* **Twitter**: [@Official\_NODO](https://x.com/Official_NODO)
* **Blockchain**: Sui
* **Category**: LP Vault
# Orca
Source: https://docs.getnimbus.io/list-protocol/Orca
* **URL**: [Orca](https://www.orca.so/)
* **Twitter**: [@orca\_so](https://x.com/orca_so)
* **Blockchain**: Solana, Eclipse
* **Category**: Dex, CLMM, Yield
# Quickswap V3
Source: https://docs.getnimbus.io/list-protocol/QuickswapV3
* **URL**: [Quickswap V3](https://quickswap.exchange/)
* **Twitter**: [@QuickswapDEX](https://x.com/QuickswapDEX)
* **Blockchain**: Matic
* **Category**: CLMM, Dex
# Raydium
Source: https://docs.getnimbus.io/list-protocol/Raydium
* **URL**: [Raydium](https://raydium.io/)
* **Twitter**: [@RaydiumProtocol](https://x.com/RaydiumProtocol)
* **Blockchain**: Solana
* **Category**: Dex, CLMM
# STEAMM
Source: https://docs.getnimbus.io/list-protocol/STEAMM
* **URL**: [STEAMM](https://steamm.fi/)
* **Twitter**: [@steammfi](https://x.com/steammfi)
* **Blockchain**: Sui
* **Category**: LP Vault
# STON.fi
Source: https://docs.getnimbus.io/list-protocol/STONfi
* **URL**: [STON.fi](https://ston.fi/)
* **Twitter**: [@ston\_fi](https://x.com/ston_fi)
* **Blockchain**: Ton
* **Category**: Dex, AMM
# Scallop
Source: https://docs.getnimbus.io/list-protocol/Scallop
* **URL**: [Scallop](https://scallop.io/)
* **Twitter**: [@Scallop\_io](https://x.com/Scallop_io)
* **Email**: [support@scallop.io](mailto:support@scallop.io)
* **Blockchain**: Sui
* **Category**: Dex, Lending
# ShimmerSea
Source: https://docs.getnimbus.io/list-protocol/ShimmerSea
* **URL**: [ShimmerSea](https://shimmersea.finance/)
* **Twitter**: [@ShimmerSeaDex](https://x.com/ShimmerSeaDex)
* **Blockchain**: Shimmer
* **Category**: DeFi, Launchpad, Yield, Liquid Staking, AMM
# Storm Trade
Source: https://docs.getnimbus.io/list-protocol/StormTrade
* **URL**: [Storm Trade](https://storm.tg/)
* **Twitter**: [@storm\_trade\_ton](https://x.com/storm_trade_ton)
* **Blockchain**: Ton
* **Category**: Dex, Perpeptual
# Sudo Finance
Source: https://docs.getnimbus.io/list-protocol/SudoFinance
* **URL**: [Sudo Finance](https://app.sudo.finance/)
* **Twitter**: [@sudofinance](https://x.com/sudofinance)
* **Blockchain**: Sui
* **Category**: Perpetual, Staking
# SuiNS
Source: https://docs.getnimbus.io/list-protocol/SuiNS
* **URL**: [SuiNS](https://suins.io/)
* **Blockchain**: Sui
* **Category**: DAO
# Sui Native Staking
Source: https://docs.getnimbus.io/list-protocol/SuiNativeStaking
* **Blockchain**: Sui
* **Category**: Validator
# SuiSwap
Source: https://docs.getnimbus.io/list-protocol/SuiSwap
* **URL**: [SuiSwap](https://suiswap.app/)
* **Twitter**: [@suiswap\_app](https://x.com/suiswap_app)
* **Blockchain**: Sui
* **Category**: Dex, Liquid Staking, CLMM, AMM
# Suilend
Source: https://docs.getnimbus.io/list-protocol/Suilend
* **URL**: [Suilend](https://www.suilend.fi/)
* **Twitter**: [@suilendprotocol](https://x.com/suilendprotocol)
* **Blockchain**: Sui
* **Category**: Lending
# Swapline
Source: https://docs.getnimbus.io/list-protocol/Swapline
* **URL**: [Swapline](https://swapline.com/home)
* **Twitter**: [@SwaplineDEX](https://x.com/SwaplineDEX)
* **Blockchain**: Shimmer
* **Category**: Dex, Launchpad
# TangleSwap
Source: https://docs.getnimbus.io/list-protocol/TangleSwap
* **URL**: [TangleSwap](https://app.tangleswap.exchange/)
* **Twitter**: [@TangleSwap](https://x.com/TangleSwap)
* **Blockchain**: Shimmer
* **Category**: Dex, Yield, Liquid Staking
* **Whitepaper**: [TangleSwap Whitepaper](https://whitepaper.tangleswap.exchange/)
# Turbos Finance
Source: https://docs.getnimbus.io/list-protocol/TurbosFinance
* **URL**: [Turbos Finance](https://turbos.finance/)
* **Twitter**: [@Turbos\_finance](https://x.com/Turbos_finance)
* **Blockchain**: Sui
* **Category**: CLMM, AMM, Dex
* **Whitepaper**: [Turbos Whitepaper](https://turbos.gitbook.io/turbos)
# Typus
Source: https://docs.getnimbus.io/list-protocol/Typus
* **URL**: [Typus](https://typus.finance/)
* **Twitter**: [@TypusFinance](https://x.com/TypusFinance)
* **Blockchain**: Sui
* **Category**: Yield
# Uniswap V2
Source: https://docs.getnimbus.io/list-protocol/UniswapV2
* **URL**: [Uniswap V2](https://uniswap.org/)
* **Twitter**: [@Uniswap](https://x.com/Uniswap)
* **Blockchain**: Ethereum, Optimism, Avalanche, Arbitrum, Polygon, Base, BNB
* **Category**: AMM, Dex
# Uniswap V3
Source: https://docs.getnimbus.io/list-protocol/UniswapV3
* **URL**: [Uniswap V3](https://uniswap.org/)
* **Twitter**: [@Uniswap](https://x.com/Uniswap)
* **Blockchain**: Ethereum, Optimism, Avalanche, Arbitrum, Polygon, Base, BNB
* **Category**: CLMM, Dex
# Velodrome
Source: https://docs.getnimbus.io/list-protocol/Velodrome
* **URL**: [Velodrome](https://velodrome.finance/)
* **Twitter**: [@VelodromeFi](https://x.com/VelodromeFi)
* **Blockchain**: Optimism
* **Category**: Dex, AMM, CLMM
# Vfat
Source: https://docs.getnimbus.io/list-protocol/Vfat
* **URL**: [Vfat](https://vfat.io/)
* **Twitter**: [@vfat\_io](https://x.com/vfat_io)
* **Blockchain**: Optimism, Base
* **Category**: Dex, AMM, CLMM
# Volo
Source: https://docs.getnimbus.io/list-protocol/Volo
* **URL**: [Volo](https://www.volosui.com/)
* **Twitter**: [@volo\_sui](https://x.com/volo_sui)
* **Blockchain**: Sui
* **Category**: Yield
# SuiNS
Source: https://docs.getnimbus.io/list-protocol/Walrus
* **URL**: [SuiNS](https://stake-wal.wal.app/)
* **Blockchain**: Sui
* **Category**: Validator
# Privacy Policy
Source: https://docs.getnimbus.io/privacy-policy
How Nimbus collects, uses, and protects your personal information
**Last Updated: Feb 14, 2025**
## 1. Introduction
Nimbus ("we," "our," or "us") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our personalized portfolio service for tracking Web3 investments across multiple blockchains ("Service").
## 2. Information We Collect
### 2.1 Information You Provide
* **Wallet Information**: Public wallet addresses you connect to our Service
* **Portfolio Data**: Information about your DeFi positions, tokens, NFTs, and assets
* **Communication Data**: Messages sent through our support channels
* **Feedback**: User feedback, surveys, and support requests
### 2.2 Automatically Collected Information
* **Usage Data**: How you interact with our Service, features used, time spent
* **Device Information**: Browser type, operating system, device identifiers
* **Log Data**: IP addresses, access times, pages viewed, errors encountered
* **Blockchain Data**: Publicly available on-chain transaction data
* **Analytics Data**: Performance metrics and user behavior patterns
### 2.3 Third-Party Information
* **Blockchain Networks**: Public transaction data from SUI, Solana, Eclipse, and Ton blockchains
* **DeFi Protocols**: Position data from integrated DeFi protocols across supported chains
* **Market Data**: Cryptocurrency prices, NFT valuations, and market information from data providers
## 3. How We Use Your Information
### 3.1 Service Provision
* Track and display your DeFi positions across multiple blockchains
* Monitor your tokens and NFTs holdings
* Provide yield farming suggestions
* Display portfolio analytics and performance metrics
* Provide customer support
### 3.2 Service Improvement
* Analyze usage patterns to improve our tracking accuracy
* Develop new features and enhance existing ones
* Conduct research and analytics
* Monitor and ensure Service security
* Troubleshoot technical issues
### 3.3 Communication
* Send important Service updates and notifications
* Respond to your inquiries and support requests
* Provide educational content about DeFi and our Service
* Send marketing communications (with your consent)
### 3.4 Legal and Security
* Comply with legal obligations and regulatory requirements
* Detect and prevent fraud, abuse, and security threats
* Enforce our Terms of Service
* Protect our rights and the rights of our users
## 4. Information Sharing and Disclosure
### 4.1 We Do Not Sell Your Personal Information
We do not sell, rent, or trade your personal information to third parties for monetary consideration.
### 4.2 Service Providers
We may share information with trusted third-party service providers who assist us in:
* Cloud hosting and data storage
* Analytics and performance monitoring
* Customer support services
* Payment processing
* Security and fraud prevention
### 4.3 Legal Requirements
We may disclose your information when required by law or to:
* Comply with legal processes, court orders, or government requests
* Enforce our Terms of Service
* Protect our rights, property, or safety
* Protect the rights, property, or safety of our users or others
* Prevent fraud or security threats
### 4.4 Business Transfers
In the event of a merger, acquisition, or sale of assets, your information may be transferred to the new entity, subject to the same privacy protections.
### 4.5 Blockchain Transparency
**Important Note**: Blockchain transactions are publicly visible. While we don't directly share your personal information, your wallet addresses and transaction history are publicly available on the blockchain.
## 5. Data Security
### 5.1 Security Measures
We implement appropriate technical and organizational measures to protect your information:
* Encryption of data in transit and at rest
* Regular security assessments and updates
* Access controls and authentication systems
* Monitoring for security threats and vulnerabilities
* Employee training on data protection
### 5.2 Limitations
While we strive to protect your information, no method of transmission or storage is 100% secure. We cannot guarantee absolute security of your data.
## 6. Data Retention
### 6.1 Retention Periods
* **Account Data**: Retained while your account is active and for a reasonable period after closure
* **Transaction Data**: Retained for legal and regulatory compliance requirements
* **Support Communications**: Retained for customer service purposes
* **Analytics Data**: May be retained in aggregated, anonymized form
### 6.2 Deletion
You may request deletion of your personal information, subject to:
* Legal and regulatory retention requirements
* Legitimate business needs
* Technical limitations of blockchain data
## 7. Your Privacy Rights
### 7.1 Access and Control
You have the right to:
* Access your personal information we hold
* Correct inaccurate or incomplete information
* Request deletion of your personal information
* Object to processing of your information
* Request data portability
* Withdraw consent (where applicable)
### 7.2 Communication Preferences
You can:
* Opt out of marketing communications
* Update your communication preferences
* Unsubscribe from newsletters and promotional emails
### 7.3 Exercising Your Rights
To exercise your privacy rights, contact us at [privacy@nimbus.io](mailto:privacy@nimbus.io). We will respond to your request within a reasonable timeframe and in accordance with applicable laws.
## 8. International Data Transfers
Your information may be transferred to and processed in countries other than your country of residence. We ensure appropriate safeguards are in place to protect your information during such transfers.
## 9. Children's Privacy
Our Service is not intended for individuals under 18 years of age. We do not knowingly collect personal information from children under 18. If we become aware of such collection, we will take steps to delete the information.
## 10. Cookies and Tracking Technologies
### 10.1 Types of Cookies
We use various types of cookies and similar technologies:
* **Essential Cookies**: Necessary for Service functionality
* **Analytics Cookies**: Help us understand Service usage
* **Preference Cookies**: Remember your settings and preferences
* **Marketing Cookies**: Used for targeted advertising (with consent)
### 10.2 Cookie Management
You can control cookies through your browser settings. However, disabling certain cookies may affect Service functionality.
## 11. Third-Party Links and Services
Our Service may contain links to third-party websites or integrate with third-party services. This Privacy Policy does not apply to such third parties. We encourage you to review their privacy policies.
## 12. Geographic Restrictions
**Important Notice**: As stated in our Terms of Service, we restrict access from certain jurisdictions where cryptocurrency activities may be prohibited. Users are responsible for ensuring compliance with local laws regarding data privacy and cryptocurrency usage.
## 13. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. We will notify you of material changes by:
* Posting the updated policy on our website
* Sending email notifications (if you've provided an email address)
* Displaying prominent notices in our Service
Continued use of the Service after changes constitutes acceptance of the updated Privacy Policy.
## 14. Data Protection Officer
For privacy-related inquiries, you can contact our Data Protection Officer at:
* Email: [dpo@nimbus.io](mailto:dpo@nimbus.io)
## 15. Regulatory Compliance
We strive to comply with applicable data protection laws, including:
* General Data Protection Regulation (GDPR)
* California Consumer Privacy Act (CCPA)
* Other applicable regional privacy laws
## 16. Contact Information
For questions about this Privacy Policy or our privacy practices, please contact us:
* **Email**: [privacy@nimbus.io](mailto:privacy@nimbus.io)
* **Discord**: [https://discord.gg/X5MaQaR8](https://discord.gg/X5MaQaR8)
* **Address**: \[Company Address]
## 17. Effective Date
This Privacy Policy is effective as of the date listed at the top of this document.
***
**Your Privacy Matters**: We are committed to protecting your privacy and being transparent about our data practices. If you have any questions or concerns, please don't hesitate to contact us.
# Refund Policy
Source: https://docs.getnimbus.io/refund-policy
Refund terms for Nimbus products and subscriptions
# Refund Policy
**Last updated:** April 14, 2026
Thank you for purchasing from **Nimbus Data Labs LLC**. We want you to be satisfied with your purchase. This Refund Policy explains when refunds are available and how to request one.
## 1. Eligibility for Refunds
You may request a refund if:
* The request is submitted within **7 days** of the purchase date; and
* You provide proof of purchase (for example: receipt, invoice, or order number); and
* The product or service meets the refund conditions below.
Refunds are **not** available for:
* Products or services marked as non-refundable at checkout;
* Customized or personalized services already delivered;
* Misuse, abuse, or violation of our Terms of Service.
## 2. Digital Products and Subscriptions
For digital products, refunds may be granted if:
* You were charged in error; or
* You experienced a technical issue that we could not resolve.
For subscriptions:
* You may cancel anytime.
* Cancellation stops future billing.
* **No prorated refunds for partial billing periods.**
## 3. Physical Products (if applicable)
To qualify for a refund on physical items:
* Item must be returned within **7 days** of delivery;
* Item must be unused and in original packaging;
* Return shipping is paid by **the customer**, unless the item is defective or incorrect.
## 4. How to Request a Refund
To request a refund, contact us at:
* **Email:** [thanhle@getnimbus.io](mailto:thanhle@getnimbus.io)
* **Subject line:** `Refund Request – [Order Number]`
* Include your order number, purchase date, and reason for request.
We will review your request within **7 business days**.
## 5. Refund Processing
If approved:
* Refunds are issued to the original payment method.
* Processing time is typically **5–10 business days**, depending on your payment provider.
If denied, we will explain the reason.
## 6. Chargebacks
Please contact us before filing a chargeback so we can try to resolve the issue quickly.
Fraudulent or abusive chargebacks may result in account suspension.
## 7. Changes to This Policy
We may update this Refund Policy from time to time.
Changes become effective when posted on this page with an updated "Last updated" date.
## 8. Contact
If you have questions about this Refund Policy, contact:
**Nimbus Data Labs LLC**\
**Registered office:** 8 The Green, Suite B, Dover, DE 19901, USA\
**Support email:** [thanhle@getnimbus.io](mailto:thanhle@getnimbus.io)
# Create Pool CLMM
Source: https://docs.getnimbus.io/sui-ai-agent/features/cetus/create-pool-clmm
Learn how to create new pool clmm on Cetus
Create pool CLMM Cetus
## Usage
```javascript theme={null}
// Create pool clmm
const form: ICreateTokenForm = {
coinTypeA:
"0x92aad4e078dded45773628adc3a9977d546b178bdadabcae351ce1818c5bb1fb::sc::SC",
coinTypeB: "0x2::sui::SUI",
initializePrice: 1,
tickSpacing: 10,
inputTokenAmount: 1,
isTokenAInput: true,
slippage: 0.07,
};
const result = await agent.createPoolCetusCLMM(form);
```
## Parameters
| Parameter | Type | Required | Description |
| ---------------- | ------- | -------- | ------------------------------------------------------------- |
| coinTypeA | string | Yes | Address or symbol of the first token |
| coinTypeB | string | Yes | Address or symbol of the second token |
| initializePrice | number | Yes | Initial price for the token pair |
| tickSpacing | number | Yes | The spacing between ticks in the liquidity pool |
| inputTokenAmount | number | Yes | Amount of tokens to be provided as input |
| isTokenAInput | boolean | Yes | true means fixed coinA amount, false means fixed coinB amount |
| slippage | number | Yes | Maximum allowable slippage (e.g., 0.07 for 7%) |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"Create a Cetus CLMM pool with the following parameters:
coinTypeA: 0x92aad4e078dded45773628adc3a9977d546b178bdadabcae351ce1818c5bb1fb::sc::SC
coinTypeB: 0x2::sui::SUI
Initialize Price: 1
Tick Spacing: 10
Input Token Amount: 1
Is Token A Input: true
Slippage: 0.07"
```
### LangChain Tool Prompts
```javascript theme={null}
{
coinTypeA:
"0x92aad4e078dded45773628adc3a9977d546b178bdadabcae351ce1818c5bb1fb::sc::SC",
coinTypeB: "0x2::sui::SUI",
initializePrice: 1,
tickSpacing: 10,
inputTokenAmount: 1,
isTokenAInput: true,
slippage: 0.07,
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit, ICreateTokenForm } from "@getnimbus/sui-agent-kit";
async function unStake(agent: SuiAgentKit) {
try {
const form: ICreateTokenForm = {
coinTypeA:
"0x92aad4e078dded45773628adc3a9977d546b178bdadabcae351ce1818c5bb1fb::sc::SC",
coinTypeB: "0x2::sui::SUI",
initializePrice: 1,
tickSpacing: 10,
inputTokenAmount: 1,
isTokenAInput: true,
slippage: 0.07,
};
const result = await agent.createPoolCetusCLMM(form);
console.log("Create pool result:", result);
} catch (error) {
console.error("Create pool failed:", error);
}
}
```
## Implementation Details
* Initialize the sqrt price and current tick index based on initializePrice
* Build the tick range
* Estimate liquidity and token amounts from a single input
* Calculate the required amounts of Token A and Token B
* Once all parameters are set, prepare the transaction payload
* Sign and execute the transactionn
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
// Create pool clmm
const form: ICreateTokenForm = {
coinTypeA:
"0x92aad4e078dded45773628adc3a9977d546b178bdadabcae351ce1818c5bb1fb::sc::SC",
coinTypeB: "0x2::sui::SUI",
initializePrice: 1,
tickSpacing: 10,
inputTokenAmount: 1,
isTokenAInput: true,
slippage: 0.07,
};
const result = await agent.createPoolCetusCLMM(form);
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Balance Verification
* Account for transaction fees
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
## Related Functions
* get\_holding: Check token balances
# Check Native Staking
Source: https://docs.getnimbus.io/sui-ai-agent/features/defi/getstake
Learn how to check native staking
Check your native staking
## Usage
```javascript theme={null}
// Get native staking
const result = await agent.getStake();
```
## Parameters
No
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"get my native staking"
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function getStake(agent: SuiAgentKit) {
try {
const result = await agent.getStake();
console.log("Stake list:", result);
} catch (error) {
console.error("Get stake failed:", error);
}
}
```
## Implementation Details
* Read your native staking on chain
## Response Format
```javascript theme={null}
// Successful response
[
{
"validatorAddress": "0x00ae78d3e5ba5d6b8de32455474f52811b95617cbad39ebf4f9e2daf67187407",
"stakingPool": "0x3b29dc1e8e7e9e358e21c93d5ecb61f94ade7f9a39a944dd3396bacb29cbc9ed",
"stakes": [
{
"stakedSuiId": "0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623",
"stakeRequestEpoch": "672",
"stakeActiveEpoch": "673",
"principal": "1000000000",
"status": "Pending"
}
]
}
]
// Error response
{
throw new Error
}
```
## Error Handling
```javascript theme={null}
try {
const result = await agent.getStake(amount, poolId);
} catch (error) {
// Handle error
}
```
# Native Staking
Source: https://docs.getnimbus.io/sui-ai-agent/features/defi/stake
Learn how to stake SUI - native staking
Stake your SUI tokens with native staking to earn staking rewards. This creates liquid staking positions using SUI token.
## Usage
```javascript theme={null}
// Stake 1 SUI
const result = await agent.stake(1, "0xce8e537664ba5d1d5a6a857b17bd142097138706281882be6805e17065ecde89");
// Stake 0.5 SUI
const result = await agent.stake(0.5, "0xce8e537664ba5d1d5a6a857b17bd142097138706281882be6805e17065ecde89");
```
## Parameters
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ------------------------ |
| amount | number | Yes | Amount to be staked |
| poolId | string | Yes | Pool address to stake to |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"Stake 1 SUI to pool 0xce8e537664ba5d1d5a6a857b17bd142097138706281882be6805e17065ecde89"
```
### LangChain Tool Prompts
```javascript theme={null}
// Stake 1 SUI
{
"amount": 1,
"poolId": "0xce8e537664ba5d1d5a6a857b17bd142097138706281882be6805e17065ecde89"
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function stakeSUI(agent: SuiAgentKit) {
try {
// Stake 1 SOL
const result = await agent.stake(1, "0xce8e537664ba5d1d5a6a857b17bd142097138706281882be6805e17065ecde89");
console.log("Staking successful:", result);
} catch (error) {
console.error("Staking failed:", error);
}
}
```
## Implementation Details
* Uses `sui system` for staking
* Automatically handles transaction versioning
* Includes proper transaction confirmation
* Provides liquid staking position
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const result = await agent.stake(amount, poolId);
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Balance Verification
* Check SUI balance before staking
* Account for transaction fees
* Consider minimum stake amounts
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
## Important Notes
* Minimum staking amount: 1 SUI
* Staking rewards auto-compound
* No unbonding period required
## Related Functions
* get\_holding: Check token balances
# 7k Protocol Swap
Source: https://docs.getnimbus.io/sui-ai-agent/features/defi/swap
Learn how to swap tokens using 7k Protocol integration
Execute token swaps on Sui using the 7K Protocol for aggregation, ensuring slippage protection.
## Usage
```javascript theme={null}
// Swap token use symbol
const result = await agent.swap({
fromToken: "SUI";
toToken: "USDC";
inputAmount: 1;
slippage: 0.01; // 1%
})
// Swap token use address
const result = await agent.swap({
fromToken: "SUI";
toToken: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
inputAmount: 1;
slippage: 0.01; // 1%
})
```
## Parameters
| Parameter | Type | Required | Description |
| ----------- | ------ | -------- | ---------------------------------------------- |
| fromToken | string | Yes | Address or symbol of the input token |
| toToken | string | Yes | Address or symbol of the output token |
| inputAmount | number | Yes | Amount of the input token to swap |
| slippage | number | No | Maximum allowable slippage (e.g., 0.01 for 1%) |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"Swap 1 SUI for USDC"
"Exchange 100 USDC for SUI with 1% slippage"
"Convert 50 USDT to SUI"
```
### LangChain Tool Prompts
```javascript theme={null}
// Swap Sui for USDC
{
"fromToken": "SUI";
"toToken": "USDC";
"inputAmount": 1;
"slippage": 0.01; // 1%
}
// Swap Sui for USDC
{
"fromToken": "SUI";
"toToken": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
"inputAmount": 1;
"slippage": 0.01; // 1%
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "sui-agent-kit";
async function executeSwaps(agent: SuiAgentKit) {
try {
const res = await agent.swap({
fromToken: "SUI",
toToken: "USDC",
inputAmount: 100,
slippage: 0.01, // 1%
});
console.log("Swap result:", res);
} catch (error) {
console.error("Swap failed:", error);
}
}
```
## Implementation Details
* Uses 7k Protocol for best prices
* Dynamic compute unit limits
* Auto-calculated priority fees
* Direct route optimization
## Error Handling
```javascript theme={null}
try {
const res = await agent.swap({
fromToken: "SUI",
toToken: "USDC",
inputAmount: 100,
slippage: 0.01, // 1%
});
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Slippage Management
* Use appropriate slippage for token
* Consider market volatility
* Monitor price impact
* Handle failed transactions
2. Amount Calculation
* Account for token decimals
* Check minimum amounts
* Consider fees
* Verify available balance
3. Error Handling
* Implement retries
* Monitor transaction status
* Handle timeouts
* Verify swap results
4. Performance
* Use direct routes when possible
* Set appropriate compute limits
* Monitor network conditions
* Consider priority fees
## Response Format
```
// Successful response
{
status: "success",
result: {
tx_hash: "5JvBtQveYFsZFYxXMfSxYzUJgzGfyRgkH9YuZxpvuR9Y",
tx_status: "success",
},
}
// Error response
{
status: "error",
message: "Error message here",
code: "ERROR_CODE"
}
```
## Related Functions
* get\_holding: Check token balances
* transfer: Transfer token.
# Unstake Native
Source: https://docs.getnimbus.io/sui-ai-agent/features/defi/unstake
Learn how to unstake SUI - native staking
Unstake your SUI native staking
## Usage
```javascript theme={null}
// Unstake
const stakedSuiId = '0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623'
const result = await agent.unstake(stakedSuiId);
```
## Parameters
| Parameter | Type | Required | Description |
| ----------- | ------ | -------- | ----------------------------------- |
| stakedSuiId | string | Yes | StakedID of the position to unstake |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"unstake this position 0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623"
```
### LangChain Tool Prompts
```javascript theme={null}
{
"stakedSuiId": "0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623",
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function unStake(agent: SuiAgentKit) {
try {
const stakeId =
"0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623";
const result = await agent.unStake(stakeId);
console.log("Unstake result:", result);
} catch (error) {
console.error("Unstake failed:", error);
}
}
```
## Implementation Details
* Uses `sui system` for unstaking
* Automatically handles transaction versioning
* Includes proper transaction confirmation
* Remove liquid staking position
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const stakeId =
"0xb73a5f2fc8ee3ca60f5efcd93242921e7138ab25f02df1d59c45d94d96411623";
const result = await agent.unStake(stakeId);
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Gas Verification
* Account for transaction fees
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
## Related Functions
* get\_holding: Check token balances
# Lend Suilend
Source: https://docs.getnimbus.io/sui-ai-agent/features/suilend/lend
Learn to lend on Suilend protocool
Lend tokens on Suilend to earn rewards or use them as collateral to borrow other tokens. Enjoy a secure, efficient way to maximize your assets with passive income and flexible liquidity.
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"lend suilend 1 ssui"
```
### LangChain Tool Prompts
```javascript theme={null}
// Lend 1 sSUI
{
amount: 1;
symbol: 'ssui';
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function lendingSuilend(agent: SuiAgentKit) {
try {
const result = await agent.lendingSuilend({
type: "LENDING";
amount: 1,
symbol: "ssui",
});
console.log("Result:", result);
} catch (error) {
console.error("Stake failed:", error);
}
}
```
## Implementation Details
* Check user balance
* Initialize data from Suilend SDK
* Prepare the transaction payload
* Sign & execute the transaction
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const res = await agent.lendingSuilend({
type: "LENDING",
amount: 1,
symbol: "ssui",
});
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Balance Verification
* Check SUI balance before staking
* Account for transaction fees
* Consider minimum stake amounts
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
## Related Functions
* get\_holding: Check token balances
# Stake LST Suilend
Source: https://docs.getnimbus.io/sui-ai-agent/features/suilend/stake-LST
Learn to stake LST to Suilend protocool
Stake your SUI on Suilend to receive liquid staking tokens (LST). Use LSTs to earn trading fees in liquidity pools or as collateral to borrow stablecoins.
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"stake suilend 1 msui"
```
### LangChain Tool Prompts
```javascript theme={null}
// Stake 1 SUI
{
amount: 1;
symbol: 'msui';
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function stakeSuilend(agent: SuiAgentKit) {
try {
const result = await agent.stakeSuilend({
type: "STAKING",
amount: 1,
symbol: "msui",
});
console.log("Result:", result);
} catch (error) {
console.error("Stake failed:", error);
}
}
```
## Implementation Details
* Check user balance
* Initialize data from Suilend SDK
* Prepare the transaction payload
* Sign & execute the transaction
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const res = await agent.stakeSuilend({
type: "STAKING",
amount: 1,
symbol: "msui",
});
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Balance Verification
* Check SUI balance before staking
* Account for transaction fees
* Consider minimum stake amounts
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
# Withdraw Suilend
Source: https://docs.getnimbus.io/sui-ai-agent/features/suilend/withdraw
Learn to withdraw from Suilend protocool
Withdraw your tokens from Suilend to your wallet.
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"withdraw 1 ssui"
```
### LangChain Tool Prompts
```javascript theme={null}
// Withdraw 1 sSUI
{
amount: 1;
symbol: 'ssui';
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function withdrawSuilend(agent: SuiAgentKit) {
try {
const result = await agent.withdrawSuilend({
type: "UNSTAKING",
amount: 1,
symbol: "ssui",
});
console.log("Result:", result);
} catch (error) {
console.error("Withdraw failed:", error);
}
}
```
## Implementation Details
* Check user balance
* Initialize data from Suilend SDK
* Prepare the transaction payload
* Sign & execute the transaction
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const res = await agent.lendingSuilend({
type: "UNSTAKING",
amount: 1,
symbol: "ssui",
});
} catch (error) {
// Handle error
}
```
## Best Practices
1. Balance Verification
* Account for transaction fees
2. Transaction Management
* Monitor transaction status
* Implement proper error handling
* Use appropriate commitment levels
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
* Display staking rewards
## Related Functions
* get\_holding: Check token balances
# Register Sui Name System
Source: https://docs.getnimbus.io/sui-ai-agent/features/suins/register
Learn how to register Sui Name System
Register your custom domain on the Sui Name System using @mysten/suins.
## Usage
```javascript theme={null}
// Register Suins
const result = await agent.registerSns("yourname", 1, "SUI");
```
## Parameters
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ----------------------------------------------- |
| name | string | Yes | The name to be registered |
| years | number | Yes | Number of years to register |
| payToken | string | Yes | The token used for registration (SUI, NS, USDC) |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
// with or without the .sui suffix
"Register the domain name mydomain for 1 year"
```
### LangChain Tool Prompts
```javascript theme={null}
// Register domain 1 year
{
"name": "mydomain",
"years": 1,
"payToken": "SUI"
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function registerSns(agent: SuiAgentKit) {
try {
const result = await agent.registerSns("mydomain", 1, "SUI");
console.log("Register successful:", result);
} catch (error) {
console.error("Register failed:", error);
}
}
```
## Implementation Details
* Registers via mysten/suins
* Holds the new NFT domain in the generated wallet
* Transfers the domain from the generated wallet to yours
## Response Format
```javascript theme={null}
// Successful response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "success",
}
// Error response
{
tx_hash: "DHGKz1EZDnDHbiRC2P3dZd7xuLnfGdncDaBvaExyTAfM",
tx_status: "failed",
}
```
## Error Handling
```javascript theme={null}
try {
const result = await agent.registerSns("mydomain", 1, "SUI");
} catch (error) {
if (error.message.includes("Insufficient balance")) {
// Handle insufficient balance
} else {
// Handle other transaction failures
}
}
```
## Best Practices
1. Check domain is not used
* Check if the domain is available on SuiNS
* Use our tool to resolve the domain name
2. Balance Check
* Ensure sufficient funds for payment
* Supported tokens: SUI, NS, USDC
3. Security
* Verify transaction details
* Double-check amounts
* Keep private keys secure
4. User Experience
* Show transaction progress
# Read Domain Sui Name System
Source: https://docs.getnimbus.io/sui-ai-agent/features/suins/resolve
Learn how to read domain Sui Name System
Read data from your custom domain on the Sui Name System using @mysten/suins.
## Usage
```javascript theme={null}
// Register Suins
const result = await agent.getSnsNameRecord("yourname");
```
## Parameters
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ------------------ |
| name | string | Yes | The name of domain |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
// with or without the .sui suffix
"Check for this domain suins customdomain"
"Check for this domain suins customdomain.sui"
```
### LangChain Tool Prompts
```javascript theme={null}
// Register domain 1 year
{
"name": "customdomain",
}
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function getSnsNameRecord(agent: SuiAgentKit) {
try {
const result = await agent.getSnsNameRecord("customdomain");
console.log("Domain's data:", result);
} catch (error) {
console.error("Get domain's data failed:", error);
}
}
```
## Implementation Details
* Uses mysten/suins for resolve domain's data
## Response Format
```javascript theme={null}
// Successful response
{
name: 'nimbus.sui',
nftId: '0xcefcd5c8ca143ba86566d5face2fffc1361d24d19deeb94a8576e83319731609',
targetAddress: '0x692853c81afc8f847147c8a8b4368dc894697fc12b929ef3071482d27339815e',
expirationTimestampMs: '1740448978459',
data: {},
avatar: undefined,
contentHash: undefined,
walrusSiteId: undefined,
humanReadableExpirationTimestampMs: '2025-02-25'
}
// Error response
{
null
}
```
# Deploy Token
Source: https://docs.getnimbus.io/sui-ai-agent/features/token/deploy
Learn how to deploy token
Deploy fungible tokens on Sui with customizable parameters, including name, symbol, decimals, image URL, description, and initial supply. This guide covers the entire deployment process.
## Usage
```javascript theme={null}
const result = await agent.deployToken({
"My Token", // name
"https://...", // imageUrl
"MTK", // symbol
9, // decimals (optional)
"1000000", // totalSupply
true, // fixedSupply
"this is my token" // description
}
);
console.log("Transaction result:", result);
```
## Parameters
| Parameter | Type | Required | Description |
| ----------- | ------- | -------- | --------------------------- |
| name | string | Yes | Name of the token |
| imageUrl | string | No | URL of the token image |
| symbol | string | Yes | Token symbol |
| decimals | number | No | Decimal places |
| totalSupply | string | Yes | Total token supply |
| fixedSupply | boolean | Yes | Whether the supply is fixed |
| description | string | Yes | Token description |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"Deploying a token with the name My Token (symbol: MTK), featuring an image at https://getnimbus.io/_next/image?url=%2Fstatic%2FlogoNimbusLight.webp&w=128&q=75. It has 9 decimals, a total supply of 100,000, a fixed supply, and the description: 'my token'"
```
### LangChain Tool Prompts
```javascript theme={null}
// Basic token deployment
{
"name": "Basic Token",
"symbol": "BS",
"totalSupply": 1000000,
"fixedSupply": true,
"description": "This is an basic token!"
}
// Token with custom decimals
{
"name": "Gaming Credits",
"symbol": "GCRED",
"decimals": 6,
"totalSupply": 1000000,
"fixedSupply": true,
"description": "This is an awesome token!"
}
// Token with custom imageUrl
{
"name": "Reward Points",
"symbol": "RWPT",
"imageUrl": "https://arweave.net/reward-points.json",
"decimals": 9,
"totalSupply": 1000000,
"description": "This is a reward token!"
}
```
The LangChain tool expects a JSON string as input with the required parameters. It will handle parsing and execute the deployment seamlessly.
## Example Implementation
```javascript theme={null}
import { SuiAgentKit, ICreateTokenForm } from "@getnimbus/sui-agent-kit";
async function deployGamingToken(agent: SuiAgentKit) {
const token_metadata = ICreateTokenForm{
name: "Gaming Credits",
symbol: "GCRED",
imageUrl: "https://example.com/token-metadata.json",
decimals: 6,
totalSupply: "1000000",
fixedSupply: true,
description: "Gaming Credits are used to purchase in-game items.",
};
const result = await agent.deployToken(token_metadata);
return result;
}
```
## Implementation Details
* Supports the fungible token standard
* Creates a token with zero seller fee basis points
* Optionally mints the initial supply to the deployer’s wallet
## Error Handling
```javascript theme={null}
try {
const result = await agent.deployToken(...);
} catch (error) {
// Handle deployment failures
console.error("Token deployment failed:", error.message);
}
```
## Best Practices
1. Name Selection
* Choose a unique and descriptive name.
2. Initial Supply
* Consider token economics when determining supply.
* Ensure that supply \* decimals remains below 1E28, the maximum value convertible to BigInt.
3. Symbol Selection
* Use 2-5 characters.
* Uppercase letters are recommended.
4. Security Considerations
* Secure private keys.
* Validate all input parameters.
* Use trusted RPC endpoints.
# Check Holding Asset
Source: https://docs.getnimbus.io/sui-ai-agent/features/token/holding
Learn how to check your wallet
The toolkit provides method:
* **getWalletHolding**: Check balances your own wallet
## Usage
```
// Check your wallet's asset
const balance = await agent.getWalletHolding();
```
## Parameters
No
## Example Prompts
### Natural Language Prompts
```
"What do I have in my wallet?" / "Check my wallet"
```
## Example Implementation
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function checkBalances(agent: SuiAgentKit) {
const myWalletBalance = await agent.getWalletHolding();
console.log("My wallet balance:", myWalletBalance);
}
```
## Implementation Details
* Returns balances in UI units (e.g., 0.1 SUI)
* Returns 0 for non-existent token
## Error Handling
* Invalid privateKey
* Empty wallet
## Best Practices
1. **Error Handling**
* Handle non-existent tokens gracefully
* Validate addresses before querying
* Consider caching for frequent checks
2. **Performance**
* Batch balance checks when possible
* Cache results for short periods
3. **UI Display**
* Format numbers appropriately
* Show proper decimal places
* Include token symbols
# Transfer Tokens
Source: https://docs.getnimbus.io/sui-ai-agent/features/token/transfer
Learn how to transfer tokens to other wallets
Transfer tokens to another wallet address. This function automatically manages both native SUI and other token transfers, ensuring proper decimal adjustments.
## Usage
```javascript theme={null}
// Transfer Stoken
const result = await agent.transferToken(
SUI,
0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76,
1
);
```
## Parameters
| Parameter | Type | Required | Description |
| ------------- | ------ | -------- | ------------------------------- |
| token\_symbol | string | Yes | Symbol of the token to transfer |
| to | string | Yes | Wallet address to transfer to |
| amount | number | Yes | Amount to be transferred |
## Example Prompts
### Natural Language Prompts
```javascript theme={null}
"Send 1 SUI to wallet 0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76"
"Transfer 100 USDC to 0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76"
```
### LangChain Tool Prompts
```javascript theme={null}
{
"token_symbol": "SUI"
"to": "0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76",
"amount": 1
}
```
## Example Implementation
Here’s a complete example
```javascript theme={null}
import { SuiAgentKit } from "@getnimbus/sui-agent-kit";
async function executeTransfers(agent: SuiAgentKit) {
// Transfer native SUI
const suiTransfer = await agent.transferToken(
"SUI",
"0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76",
1.5 // 1.5 SUI
);
console.log("SUI transfer:", suiTransfer);
// Transfer USDC
const usdcTransfer = await agent.transfer(
"USDC",
"0x15610fa7ee546b96cb580be4060fae1c4bb15eca87f9a0aa931512bad445fc76",
100, // 100 USDC
);
console.log("USDC transfer:", usdcTransfer);
}
```
## Implementation Details
* Handles decimal adjustment for tokens
* Check wallet's balance
* Sign and execute transaction
## Error Handling
```javascript theme={null}
try {
const result = await agent.transferToken(token_symbol, to, amount);
} catch (error) {
// throw error when insufficient balance, execute transfer failed
throw error;
}
```
## Best Practices
1. Amount Validation
* Always verify token decimals
* Check balances before transfer
* Account for transaction fees
2. Address Validation
* Validate recipient addresses
3. Transaction Management
* Monitor transaction status
* Implement retry logic
* Handle timeouts appropriately
4. Security
* Verify recipient addresses carefully
* Implement confirmation dialogs
* Consider using transaction previews
## Common Token Symbol
* SUI
* USDC
# Add your own tool
Source: https://docs.getnimbus.io/sui-ai-agent/guides/add-tool
Documentation guides to add your tool
# How to add your own tool
Enhancing the **Sui Agent Kit** with custom tools enables you to incorporate specialized functionalities designed to meet your specific requirements. This guide provides step-by-step instructions for creating and integrating a new tool into the existing framework.
## Overview
1. Create a new tool file
2. Export the new tool
3. Add supporting functions in SuiAgentKit
4. Implement the Langchain tool class
5. Export the Langchain tool
6. Export your protocol’s langchain tools (if not already exported)
7. Define Action class for given tool
8. Export Action
9. Use the custom tool
## Step-by-Step
### 1. Create a New Tool File
Create a new TypeScript file in the `src/tools/your_protocol` directory for your tool (e.g., `custom_tool.ts`). If the `src/tools/your_protocol` directory does not exist, create it.
### 2. Export the Tool (if not already exported)
> `src/tools/index.ts`
```
export * from "./token";
export * from "./defi";
export * from "./your_protocol"; // Add your protocol here if it's not already in the list
```
### 3. Add Supporting Functions to SuiAgentKit
> `src/agent/index.ts`
```
export class SuiAgentKit {
// ... existing code ...
async customFunction(input: string): Promise {
// Implement your custom functionality
return `Processed input: ${input}`;
}
}
```
### 4. Implement the Langchain Tool Class
> `src/langchain/your_protocol/custom_tool.ts`
```
import { Tool } from "langchain/tools";
import { SuiAgentKit } from "../../agent";
export class CustomTool extends Tool {
name = "custom_tool";
description = "Description of what the custom tool does.";
constructor(private SuiKit: SuiAgentKit) {
super();
}
protected async _call(input: string): Promise {
try {
const result = await this.customFunction(input);
return JSON.stringify({
status: "success",
message: "Custom tool executed successfully",
data: result,
});
} catch (error: any) {
return JSON.stringify({
status: "error",
message: error.message,
code: error.code || "UNKNOWN_ERROR",
});
}
}
}
```
### 5. Export Langchain Tool
> `src/langchain/your_protocol/index.ts`
```
export * from "./custom_tool";
```
### 6. Export your protocol’s langchain tools (if not already exported)
> `src/langchain/index.ts`
```
export * from "./tiplink";
export * from "./your_protocol"; // Add your protocol here if it's not already in the list
```
### 7. Define Action class for given tool
> `src/actions/your_protocol/custom_action.ts`
```
import { Action } from "../../types/action";
import { SuiAgentKit } from "../../agent";
import { z } from "zod";
import { custom_tool } from "../../tools";
const customAction: Action = {
name: "CUSTOM_ACTION",
similes: ["custom tool"],
description: "Description of what the custom tool does.",
examples: [
{
input: {},
output: {
status: "success",
message: "Custom tool executed successfully",
data: result,
},
explanation: "Custom tool executed successfully",
},
],
schema: z.object({
input: z.string(),
}),
handler: async (agent: SuiAgentKit, input: Record) => {
const result = await agent.customFunction(input);
return result;
},
};
```
### 8. Export Action
> `src/actions/index.ts`
```
import customAction from "./your_protocol/custom_action";
export const ACTIONS = {
// ... existing actions ...
CUSTOM_ACTION: customAction,
}
```
### 9. Usage Example
Add a code example in the README.md file.
```
import { SuiAgentKit, createSuiTools } from "sui-agent-kit";
// Initialize with private key and optional RPC URL
const agent = new SuiAgentKit(
"your_sui_private_key",
"https://fullnode.mainnet.sui.io:443",
"your-openai-api-key"
);
const tools = createSuiTools(agent);
const customTool = tools.find(tool => tool.name === "custom_tool");
if (customTool) {
const result = await customTool._call("your-input");
console.log(result);
}
// or alternatively
const result = await agent.customFunction("your-input"); // assuming you have implemented `customFunction` method in SuiAgentKit
console.log(result);
```
# Best Practices
* Implement robust error handling
* Add security checks for sensitive operations
* Document your tool’s purpose and usage
* Write tests for reliability
* Keep tools focused on single responsibilities
# Need Help?
If you face any challenges while implementing your custom tool, you can:
* Open an issue in the repository.
* Reach out to the maintainer for assistance.
* Review existing tools for implementation examples.
# Setup locally
Source: https://docs.getnimbus.io/sui-ai-agent/guides/setup
Documentation guides to setup locally
# How to Setup Locally
To set up the **Sui Agent Kit** on your local machine, you'll need to clone the repository, install the required dependencies, configure environment variables, and build the project. Follow the steps below to begin.
## Prerequisites
* Node: Ensure you have Node version 23.x or higher installed. You can download it from [Node Official Website](https://nodejs.org/en).
* Package Manager: Node’s package manager comes bundled with Node. Verify installation by running `npm -v`.
* Git: Ensure Git is installed and configured. Download from [Git Official Website](https://git-scm.com/).
## Step-by-Step
1. **Clone the Repository**
```
git clone https://github.com/yourusername/sui-agent-kit.git
```
2. **Navigate to the Project Directory**
```
cd sui-agent-kit
```
3. **Install Dependencies**
```
pnpm install
```
4. **Configure Environment Variables**
Create a `.env` file in the project's root directory to securely store your environment variables. Ensure the file includes the following variables:
```
OPENAI_API_KEY=your_openai_api_key
RPC_URL=your_rpc_url
SUI_PRIVATE_KEY=your_sui_private_key
```
OPENAI\_API\_KEY: Your OpenAI API key for generating images and interacting with OpenAI services.
RPC\_URL: Your RPC\_URL for Sui blockchain interactions.
SUI\_PRIVATE\_KEY: Your Sui wallet’s private key.
**Note**: Ensure that the `.env` file is added to `.gitignore` to prevent exposing sensitive information.
5\. **Build the Project**
```
pnpm run build
```
This will generate the compiled files in the `dist/` directory.
6\. **Generate Documentation (Optional)**
```
pnpm run docs
```
The documentation will be available in the docs/ directory.
# Test it out
Source: https://docs.getnimbus.io/sui-ai-agent/guides/test
Documentation guides to test
# How to Test it out
Testing the **Sui Agent Kit** helps confirm that all functionalities are working as intended. You can perform automated tests or interact with the agent in various modes to validate its operations.
## Running Automated Tests
The project includes a test script located at `test/index.ts`. To execute the tests:
1. **Ensure Dependencies are Installed**
If you haven’t installed the dependencies yet, refer to the [Setup Locally](https://docs.getnimbus.io/sui-ai-agent/guides/setup) guide.
2. **Run the Test Script**
```
pnpm run test
```
This will run the `test/index.ts` script using ts-node. Ensure that your environment variables are correctly set in the `.env` file before running the tests.
## Interactive Modes
### Available Modes
1. **Chat Mode**
Allows you to interact with the agent in a conversational manner.
2. **Autonomous Mode**
Enables the agent to perform actions on the blockchain autonomously at regular intervals.
### Starting the Agent
1. **Launch the Agent**
```
pnpm start
```
2. **Select Your Mode**
* For Chat Mode: Enter `1` or `chat`
* For Autonomous Mode: Enter `2` or `auto`
### Using Each Mode
#### Chat Mode
* Start chatting by entering prompts after the Prompt: indicator
* Type exit to end the chat session
#### Autonomous Mode
* The agent executes predefined actions every 10 seconds
* Actions and outputs are displayed in the console
## Best Practices
### Environment Setup
* Verify .env file contains correct and secure values
* Ensure all required environment variables are set
### Testing
* Maintain comprehensive test coverage
* Monitor console logs during testing
* Clean up test assets after deployment
## Troubleshooting
### Test Failures
#### Missing Environment Variables
* **Issue**: Tests fail due to missing environment variables
* **Solution**: Check .env file for all required variables
#### Network Problems
* **Issue**: Network-related errors
* **Solution**: Verify internet connection and Solana RPC endpoint accessibility
### Agent Issues
#### Startup Problems
* **Issue**: Agent doesn’t prompt for mode selection
* **Solution**: Verify successful build and dependency installation
# Introduction
Source: https://docs.getnimbus.io/sui-ai-agent/introduction
Connect AI agents to Sui Chain with Sui Agent Kit
# Sui Agent Kit
An open-source toolkit for connecting AI agents to Sui chain. Now, any agent, using any model can autonomously perform Sui actions.
Try our implement [here](https://agent.getnimbus.io/)
# Quick start
```
npm i @getnimbus/sui-agent-kit
```
```javascript Quick start theme={null}
import { SuiAgentKit, createSuiTools } from "@getnimbus/sui-agent-kit";
// Initialize with private key and optional RPC URL
const agent = new SuiAgentKit(
"your_sui_private_key",
"https://fullnode.mainnet.sui.io:443",
"your-openai-api-key"
);
// Create LangChain tools
const tools = createSuiTools(agent);
```
# Core features
## Blockchain Operations
* **Token Operations**
* Balance checks
* Transfer assets
* Deploy tokens
* **DeFi Integration**
* Native staking
* Unstaking
* Watch stake
* **SuiNS**
* Register
* Resolve
* **Cetus**
* Create pool CLMM
## AI Integration Features
* **LangChain Integration**
* Ready-to-use LangChain tools
* Autonomous agent support with React
* Memory management
* Streaming responses
* **Autonomous Modes**
* Interactive chat mode
* Autonomous mode
* Configurable intervals
* Error handling and recovery
* **AI Tools**
* Natural language processing
* Price feed integration
* Automated decision-making
# Example Usage
## Deploy Tokens
Effortlessly deploy a new token using the provided metadata.
```javascript theme={null}
import { SuiAgentKit, deploy_token } from '@getnimbus/sui-agent-kit';
const agent = new SuiAgentKit(
"your_sui_private_key",
"https://fullnode.mainnet.sui.io:443",
"your-openai-api-key"
);
const result = await deploy_token(agent, {
name: 'TOKEN_NAME',
symbol: 'TOKEN_SYMBOL',
totalSupply: 'TOKEN_SUPPLY',
description: 'TOKEN_DESCRIPTION',
fixedSupply: true,
imageUrl: 'TOKEN_IMAGE_URL',
decimals: TOKEN_DECIMAL,
});
console.log('Token deployed:', result);
```
## Check Your Wallet's Assets
Easily view your wallet's assets with a single message.
```javascript theme={null}
import { SuiAgentKit, get_holding } from '@getnimbus/sui-agent-kit';
const agent = new SuiAgentKit(
"your_sui_private_key",
"https://fullnode.mainnet.sui.io:443",
"your-openai-api-key"
);
const assets = await get_holding(agent);
console.log('Wallet's assets:', assets);
```
***
## Transfer Tokens
Just tell the Agent the token symbol, the amount, and the recipient address, and it will handle the transaction instantly.
```javascript theme={null}
import { SuiAgentKit, transfer_token } from '@getnimbus/sui-agent-kit';
const agent = new SuiAgentKit(
"your_sui_private_key",
"https://fullnode.mainnet.sui.io:443",
"your-openai-api-key"
);
const result = await transfer_token(agent, "SUI", destination_address, amount);
console.log('Transaction:', result);
```
# Sui Price Feed via Kafka
Source: https://docs.getnimbus.io/sui-price-feed-kafka
Consume real-time Sui token price updates via Kafka topic
## Overview
The Kafka-based Sui Price Feed provides real-time token price updates from on-chain. Developers can consume these messages to power DeFi dashboards, automate trading logic, or monitor asset valuations in near real-time.
This document describes how to connect to the Kafka topic and consume structured price feed messages for Sui-based tokens.
## Kafka Consumer Setup
### Prerequisites
* Kafka info (connect our team to subscribe with supported plan)
* Node.js (or Python/Java, depending on your preference).
* Kafka client library (e.g., `kafkajs` for Node.js).
### Example Kafka Message Payload
Each message published to the Kafka topic contains structured price data:
```json theme={null}
{
"contract_address": "0x2::sui::SUI",
"timestamp": 1747753504,
"price": 3.8052,
"decimals": 9,
"symbol": "SUI",
"name": "Sui"
}
```
### Field Descriptions
| Field | Description |
| ------------------ | ------------------------------------------------------ |
| `contract_address` | On-chain address of the token contract. |
| `timestamp` | Unix timestamp in seconds when the price was recorded. |
| `price` | Adjusted price based on the on-chain data. |
| `decimals` | Number of decimal places for the token. |
| `symbol` | Token symbol (e.g., `SUI`). |
| `name` | Full name of the token. |
***
## Consuming Messages (Node.js Example)
Install the KafkaJS client:
```bash theme={null}
npm install kafkajs
```
### Kafka Consumer Script
```js theme={null}
const { Kafka } = require('kafkajs');
const kafka = new Kafka({
clientId: 'sui-price-feed-consumer',
brokers: ['your-kafka-broker:9092'], // Replace with our Kafka broker address
});
const topic = 'sui-price-feed';
const consumer = kafka.consumer({ groupId: 'price-feed-group' });
const run = async () => {
await consumer.connect();
await consumer.subscribe({ topic, fromBeginning: false });
await consumer.run({
eachMessage: async ({ message }) => {
const payload = JSON.parse(message.value.toString());
console.log(`Received price update for ${payload.symbol}:`);
console.log(`Price: ${payload.price}`);
console.log(`Timestamp: ${new Date(payload.timestamp).toISOString()}`);
},
});
};
run().catch(console.error);
```
***
### Best Practices
* **Use Consumer Groups**: Assign consumers to groups to avoid duplicate processing.
* **Graceful Failure Handling**: Add retry logic.
* **Number Consumers**: Best performance is typically achieved with 3 consumers.
# Supported Chains
Source: https://docs.getnimbus.io/supported-chain
Nimbus supports a diverse range of chains, including SUI, TON, Solana and more—empowering users with extensive crypto portfolio flexibility.
| **Title** | **Token Holding** | **NFT Holding** | **DeFi** | **Yields Farming** |
| ------------ | ----------------- | --------------- | -------- | ------------------ |
| **SUI** | ✅ | ✅ | ✅ | ✅ |
| **TON** | ✅ | ✅ | ✅ | ✅ |
| **Alephium** | ✅ | ✅ | ✅ | ❌ |
| **Soon** | ✅ | ❌ | ✅ | ❌ |
| **svmBNB** | ✅ | ❌ | ✅ | ❌ |
| **U2U** | ✅ | ✅ | ❌ | ❌ |
| **Near** | ✅ | ❌ | ❌ | ❌ |
| **Bitcoin** | ✅ | ❌ | ❌ | ❌ |
# Supported Protocols
Source: https://docs.getnimbus.io/supported-protocol
A comprehensive list of blockchain protocols integrated with Nimbus across SUI, TON, Eclipse, Soon and Solana networks.
Nimbus support many on-chain protocols
| Chain | Protocol | Category |
| ----- | ------------------------------------------------------------------------------ | ------------------------------------ |
| SUI | [Cetus](https://docs.getnimbus.io/list-protocol/Cetus) | Dex, CLMM, DLMM |
| | [Suilend](https://docs.getnimbus.io/list-protocol/Suilend) | Lending |
| | [FlowX](https://docs.getnimbus.io/list-protocol/Flowx) | Dex, Yield |
| | [Kriya](https://docs.getnimbus.io/list-protocol/Kriya) | Dex, AMM |
| | [Aftermath Finance](https://docs.getnimbus.io/list-protocol/AftermathFinance) | Lending, Yield, Liquid Staking, Dex |
| | [Scallop](https://docs.getnimbus.io/list-protocol/Scallop) | Dex, Lending |
| | [Navi](https://docs.getnimbus.io/list-protocol/Navi) | Yield, Lending, Liquid Staking, DeFi |
| | [Turbos Finance](https://docs.getnimbus.io/list-protocol/Turbos) | CLMM, AMM, Dex |
| | [Typus](https://docs.getnimbus.io/list-protocol/Typus) | Yield |
| | [AlphaFi](https://docs.getnimbus.io/list-protocol/AlphaFi) | Yield |
| | [SuiSwap](https://docs.getnimbus.io/list-protocol/SuiSwap) | Dex, Liquid Staking, CLMM, AMM |
| | [Bluemove](https://docs.getnimbus.io/list-protocol/bluemove) | AMM |
| | [Bluefin](https://docs.getnimbus.io/list-protocol/Bluefin) | Perpetual, CLMM |
| | [Elixir](https://docs.getnimbus.io/list-protocol/Elixir) | Perpetual |
| | [SuiNS](https://docs.getnimbus.io/list-protocol/SuiNS) | DAO |
| | [Sui Native Staking](https://docs.getnimbus.io/list-protocol/SuiNativeStaking) | Validator |
| | [Walrus](https://docs.getnimbus.io/list-protocol/Walrus) | Validator |
| | [Sudo Finance](https://docs.getnimbus.io/list-protocol/SudoFinance) | Perpetual, Staking |
| | [Bucket Protocol](https://docs.getnimbus.io/list-protocol/BucketProtocol) | Lending, Staking, Yield |
| | [DoubleUp](https://docs.getnimbus.io/list-protocol/DoubleUp) | Casino, Perpetual, Liquid Staking |
| | [Haedal](https://docs.getnimbus.io/list-protocol/Haedal) | Liquid Staking, Yield |
| | [Kai Finance](https://docs.getnimbus.io/list-protocol/KaiFinance) | Dex, CLMM |
| | [Momentum](https://docs.getnimbus.io/list-protocol/Momentum) | Dex, CLMM |
| | [STEAMM](https://docs.getnimbus.io/list-protocol/STEAMM) | LP Vault |
| | [Magma Finance](https://docs.getnimbus.io/list-protocol/MagmaFinance) | Dex, CLMM |
| | [Ika](https://docs.getnimbus.io/list-protocol/Ika) | MPC |
| | [AlphaLend](https://docs.getnimbus.io/list-protocol/AlphaLend) | Lending |
| | [Lotus Finance](https://docs.getnimbus.io/list-protocol/LotusFinance) | CLMM |
| | [Volo](https://docs.getnimbus.io/list-protocol/Volo) | Yield |
| | [NODO](https://docs.getnimbus.io/list-protocol/Nodo) | LP Vault |
| | [Nemo Protocol](https://docs.getnimbus.io/list-protocol/NemoProtocol) | Yield |
| | [Mole](https://docs.getnimbus.io/list-protocol/Mole) | Yield, Staking |
| | [Full Sail](https://docs.getnimbus.io/list-protocol/FullSail) | Dex, CLMM |
| | [Ferra](https://docs.getnimbus.io/list-protocol/Ferra) | CLMM, DLMM |
| TON | [Storm Trade](https://docs.getnimbus.io/list-protocol/StormTrade) | Dex, Perpeptual |
| | [STON.fi](https://docs.getnimbus.io/list-protocol/STONfi) | Dex, AMM |
| | [DeDust](https://docs.getnimbus.io/list-protocol/DeDust) | Dex, AMM |
| | [EVAA](https://docs.getnimbus.io/list-protocol/EVAA) | Lending |
| Soon | [Portal Finance](https://docs.getnimbus.io/list-protocol/PortalFinance) | Lending |
| | [CobaltX](https://docs.getnimbus.io/list-protocol/CobaltX) | Dex, CLMM |
# Terms of Service
Source: https://docs.getnimbus.io/terms-of-service
Terms and conditions for using Nimbus portfolio data onchain service
**Last Updated: Feb 14, 2025**
## 1. Acceptance of Terms
By accessing or using Nimbus ("the Service"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, please do not use the Service.
## 2. Description of Service
Nimbus is a personalized portfolio service that allows you to track your Web3 investment across all chains in one single place, including SUI, Solana, Eclipse, and Ton blockchains. Nimbus is not an investment service and does not provide investment advice or manage investments on behalf of users. The Service includes:
* DeFi position tracking
* Tokens tracking
* NFTs tracking
* Yield farming suggestion
* Cross-chain portfolio management
## 3. Geographic Restrictions and User Responsibility
### 3.1 Restricted Jurisdictions
**IMPORTANT NOTICE**: Nimbus restricts access from countries that prohibit or heavily regulate cryptocurrency usage, **including but not limited to Vietnam and other jurisdictions where crypto activities may be restricted or illegal**.
### 3.2 User Responsibility
**YOU ARE SOLELY RESPONSIBLE FOR:**
* Ensuring compliance with all applicable laws and regulations in your jurisdiction
* Understanding the legal status of cryptocurrency and DeFi activities in your country
* Any legal consequences arising from your use of the Service
* Verifying that your use of Nimbus does not violate local laws
**By using Nimbus, you represent and warrant that:**
* You are legally permitted to use cryptocurrency and DeFi services in your jurisdiction
* You will not use the Service if prohibited by local laws
* You understand the risks associated with cryptocurrency trading and DeFi protocols
## 4. Eligibility
To use Nimbus, you must:
* Be at least 18 years old (or the age of majority in your jurisdiction)
* Have the legal capacity to enter into these Terms
* Not be located in a restricted jurisdiction
* Comply with all applicable laws and regulations
## 5. Risk Disclosure
### 5.1 Financial Risks
**CRYPTOCURRENCY AND DEFI ACTIVITIES INVOLVE SUBSTANTIAL RISK OF LOSS:**
* Cryptocurrency values are highly volatile and can result in significant losses
* DeFi protocols may contain smart contract vulnerabilities
* Market conditions can change rapidly
* Past performance does not guarantee future results
* Nimbus provides data only and does not manage or execute transactions on your behalf
### 5.2 Technology Risks
* Blockchain networks may experience congestion or failures
* Smart contracts may contain bugs or vulnerabilities
* Data accuracy depends on blockchain network reliability
* Technical issues may temporarily affect data availability
### 5.3 Regulatory Risks
* Cryptocurrency regulations are evolving and may change
* Future regulatory changes may affect the Service's availability
* Tax implications vary by jurisdiction
## 6. User Responsibilities
You agree to:
* Provide accurate information when using the Service
* Maintain the security of your wallet and private keys
* Not use the Service for illegal activities
* Not attempt to manipulate or exploit the Service
* Comply with all applicable laws and regulations
* Take full responsibility for your investment decisions
## 7. Prohibited Activities
You may not:
* Use the Service from restricted jurisdictions
* Engage in money laundering or terrorist financing
* Manipulate markets or engage in fraudulent activities
* Attempt to hack or compromise the Service
* Use the Service to violate any laws or regulations
* Create multiple accounts to circumvent restrictions
## 8. Intellectual Property
All content, features, and functionality of Nimbus are owned by Nimbus and protected by intellectual property laws. You may not:
* Copy, modify, or distribute our content without permission
* Reverse engineer or attempt to extract source code
* Use our trademarks or branding without authorization
## 9. Privacy and Data
Your privacy is important to us. Please review our Privacy Policy, which explains how we collect, use, and protect your information.
## 10. Disclaimers
### 10.1 Service Availability
* The Service is provided "as is" without warranties
* We do not guarantee uninterrupted access
* Maintenance may temporarily affect availability
### 10.2 Data and Analytics
* Portfolio data and analytics are for informational purposes only
* Not financial advice or investment recommendations
* Users must make their own investment decisions
* We are not responsible for any financial losses
### 10.3 Third-Party Protocols
* We integrate with third-party DeFi protocols
* We are not responsible for third-party protocol failures
* Users interact with protocols at their own risk
## 11. Limitation of Liability
TO THE MAXIMUM EXTENT PERMITTED BY LAW:
* Nimbus shall not be liable for any indirect, incidental, or consequential damages
* Our total liability shall not exceed the fees paid by you in the past 12 months
* We are not liable for losses due to market volatility, protocol failures, or user error
## 12. Indemnification
You agree to indemnify and hold harmless Nimbus from any claims, damages, or expenses arising from:
* Your use of the Service
* Your violation of these Terms
* Your violation of applicable laws
* Your investment activities and decisions
## 13. Termination
We may terminate or suspend your access to the Service:
* For violation of these Terms
* For illegal activities
* For security reasons
* At our sole discretion with notice
## 14. Changes to Terms
We reserve the right to modify these Terms at any time. Changes will be effective upon posting. Continued use of the Service constitutes acceptance of modified Terms.
## 15. Governing Law
These Terms are governed by the laws of \[Jurisdiction], without regard to conflict of law principles.
## 16. Dispute Resolution
Any disputes arising from these Terms or the Service shall be resolved through binding arbitration in accordance with the rules of \[Arbitration Organization].
## 17. Severability
If any provision of these Terms is found unenforceable, the remaining provisions shall remain in full force and effect.
## 18. Contact Information
For questions about these Terms, please contact us at:
* Email: [legal@nimbus.io](mailto:legal@nimbus.io)
* Discord: [https://discord.gg/X5MaQaR8](https://discord.gg/X5MaQaR8)
## 19. Acknowledgment
By using Nimbus, you acknowledge that you have read, understood, and agree to be bound by these Terms of Service.
***
**IMPORTANT REMINDER**: You are solely responsible for ensuring that your use of Nimbus complies with all applicable laws in your jurisdiction. If cryptocurrency or DeFi activities are restricted or prohibited in your country, you should not use this Service.