Using the CoinGecko Manager Tool
All methods in the CoingeckoManager are static asynchronous methods. You call them directly from the CoingeckoManager class and must use await.
1. get_trending_tokens
Description: Fetches the current list of cryptocurrencies that are trending on CoinGecko. This is often based on recent search popularity.
Endpoint: Uses CoinGecko's public /search/trending endpoint. May use the demo API key if available and no Pro key is set.
Method Signature:
async def get_trending_tokens(agent: SolanaAgentKit) -> dict:Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance.
Returns:
A dict containing the trending tokens data. The exact structure is determined by the CoinGecko API response, but typically includes a coins key which is a list of trending coin objects, each with details like id, coin_id, name, symbol, market_cap_rank, etc.
Example:
import asyncio
from agentipy.agent import SolanaAgentKit
from agentipy.tools.use_coingecko import CoingeckoManager
# Assuming 'agent' is your initialized SolanaAgentKit instance
async def fetch_trending():
try:
trending_data = await CoingeckoManager.get_trending_tokens(agent)
print("Currently Trending Tokens:")
for coin in trending_data.get('coins', []):
item = coin.get('item', {})
print(f"- {item.get('symbol', 'N/A')} ({item.get('name', 'N/A')}): Rank {item.get('market_cap_rank', 'N/A')}")
except Exception as e:
print(f"Error fetching trending tokens: {e}")
# asyncio.run(fetch_trending()) # Example of how to run2. get_trending_pools
Description: Fetches liquidity pools that are currently trending on CoinGecko, filtered specifically for the Solana network. This endpoint is valuable for identifying pools with high recent trading volume or activity.
Endpoint: Uses CoinGecko's Pro API endpoint /onchain/networks/solana/trending_pools.
Method Signature:
Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance with a CoinGecko Pro API key configured.
duration (str): Optional. The time window to consider for trending activity. Defaults to "24h". Allowed values based on the code: "5m", "1h", "6h", "24h".
Returns:
A dict containing the trending pools data. The structure includes a data key which is a list of pool objects, with details about the pool address, network, base/quote tokens, volume, etc.
Example:
3. get_top_gainers
Description: Retrieves a list of top-performing tokens by percentage change over a specified duration, including both gainers and losers.
Endpoint: Uses CoinGecko's Pro API endpoint /coins/top_gainers_losers.
Method Signature:
Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance with a CoinGecko Pro API key configured.
duration (str): Optional. The time window for calculating price changes. Defaults to "24h". Supports various periods like "1h", "7d", "30d", etc.
top_coins (int | str): Optional. Limits the scope to tokens within the top N market capitalization ranks. Defaults to "all". Can be specific integers (300, 500, 1000) or "all".
Returns:
A dict containing top_gainers and top_losers keys, each holding a list of token objects with relevant performance data.
Example:
4. get_token_price_data
Description: Fetches current price (vs. USD), market cap, 24h volume, and 24h price change for a list of specific token addresses on the Solana network.
Endpoint: Uses CoinGecko's public /simple/token_price/{network_id} endpoint (with network_id=solana). May use the demo API key if available and no Pro key is set.
Method Signature:
Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance. Accesses API keys if available.
token_addresses (list[str]): Required. A list of token contract addresses on the Solana network, provided as strings.
Returns:
A dict where the keys are the requested token addresses (strings) and the values are dictionaries containing the price and market data (e.g., usd, usd_market_cap, usd_24h_vol, usd_24h_change, last_updated_at).
Example:
5. get_token_info
Description: Fetches detailed information for a single token address on the Solana network. This can include links (website, explorer, social media), descriptions, and other metadata.
Endpoint: Uses CoinGecko's Pro API endpoint /onchain/networks/solana/tokens/{token_address}/info.
Method Signature:
Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance with a CoinGecko Pro API key configured.
token_address (str): Required. The contract address of the token (as a string).
Returns:
A dict containing detailed information about the specified token.
Example:
6. get_latest_pools
Description: Fetches the most recently created liquidity pools on the Solana network. This is useful for agents looking for new trading opportunities as soon as they arise.
Endpoint: Uses CoinGecko's Pro API endpoint /onchain/networks/solana/new_pools.
Method Signature:
Parameters:
agent (SolanaAgentKit): Required. The initialized agent instance with a CoinGecko Pro API key configured.
Returns:
A dict containing the latest pools data, typically under a data key, which is a list of pool objects similar in structure to trending pools.
Example:
Last updated
