Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Access CoinGecko crypto market data: spot prices, OHLC, trending coins, exchange listings, NFTs, and global stats.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
__init__.py
1"""2CoinGecko Extension - Crypto Market Data Tools34Provides comprehensive crypto market data including:5- Price data, charts, OHLC candles6- Market discovery (trending, top gainers/losers, new coins)7- Coin information and tickers8- Exchange data9- NFT collections10- Global market stats1112Environment Variables Required:13- COINGECKO_API_KEY: CoinGecko Pro API key1415Usage:16This extension is auto-loaded by the ExtensionLoader.17Tools are available to agents configured with these tools in agents.yaml.18"""19import os20import sys21import logging22from typing import List2324try:25from core.tool import ToolRegistry26except Exception:27ToolRegistry = None # Standalone script usage2829logger = logging.getLogger(__name__)3031# Add local tools directory to path for imports32TOOLS_DIR = os.path.join(os.path.dirname(__file__), 'tools')33if TOOLS_DIR not in sys.path:34sys.path.insert(0, TOOLS_DIR)353637def register(api) -> List[str]:38"""39Extension entry point - register all CoinGecko tools.4041Args:42api: ExtensionApi instance with registry and config4344Returns:45List of registered tool names46"""47registered = []4849try:50from .coingecko import (51# Original tools (11)52CoinPriceTool,53CoinOHLCTool,54CoinChartTool,55CoinGeckoTrendingTool,56CoinGeckoTopGainersLosersTool,57CoinGeckoNewCoinsTool,58CoinGeckoGlobalTool,59CoinGeckoGlobalDefiTool,60CoinGeckoDerivativesTool,61CoinGeckoDerivativesExchangesTool,62CoinGeckoCategoriesjTool,63# New coin data tools (4)64CoinGeckoCoinsListTool,65CoinGeckoCoinsMarketsTool,66CoinGeckoCoinDataTool,67CoinGeckoCoinTickersTool,68# New exchange tools (4)69CoinGeckoExchangesTool,70CoinGeckoExchangeTool,71CoinGeckoExchangeTickersTool,72CoinGeckoExchangeVolumeChartTool,73# New NFT tools (3)74CoinGeckoNFTsListTool,75CoinGeckoNFTTool,76CoinGeckoNFTByContractTool,77# New infrastructure tools (4)78CoinGeckoAssetPlatformsTool,79CoinGeckoExchangeRatesTool,80CoinGeckoVsCurrenciesTool,81CoinGeckoCategoriesListTool,82# New search tool (1)83CoinGeckoSearchTool,84# New contract tools (2)85CoinGeckoTokenPriceTool,86CoinGeckoCoinByContractTool,87)88# Register original tools89api.register_tool(CoinPriceTool())90api.register_tool(CoinOHLCTool())91api.register_tool(CoinChartTool())92api.register_tool(CoinGeckoTrendingTool())93api.register_tool(CoinGeckoTopGainersLosersTool())94api.register_tool(CoinGeckoNewCoinsTool())95api.register_tool(CoinGeckoGlobalTool())96api.register_tool(CoinGeckoGlobalDefiTool())97api.register_tool(CoinGeckoDerivativesTool())98api.register_tool(CoinGeckoDerivativesExchangesTool())99api.register_tool(CoinGeckoCategoriesjTool())100# Register new coin data tools101api.register_tool(CoinGeckoCoinsListTool())102api.register_tool(CoinGeckoCoinsMarketsTool())103api.register_tool(CoinGeckoCoinDataTool())104api.register_tool(CoinGeckoCoinTickersTool())105# Register new exchange tools106api.register_tool(CoinGeckoExchangesTool())107api.register_tool(CoinGeckoExchangeTool())108api.register_tool(CoinGeckoExchangeTickersTool())109api.register_tool(CoinGeckoExchangeVolumeChartTool())110# Register new NFT tools111api.register_tool(CoinGeckoNFTsListTool())112api.register_tool(CoinGeckoNFTTool())113api.register_tool(CoinGeckoNFTByContractTool())114# Register new infrastructure tools115api.register_tool(CoinGeckoAssetPlatformsTool())116api.register_tool(CoinGeckoExchangeRatesTool())117api.register_tool(CoinGeckoVsCurrenciesTool())118api.register_tool(CoinGeckoCategoriesListTool())119# Register new search tool120api.register_tool(CoinGeckoSearchTool())121# Register new contract tools122api.register_tool(CoinGeckoTokenPriceTool())123api.register_tool(CoinGeckoCoinByContractTool())124registered.extend([125# Original (11)126"coin_price",127"coin_ohlc",128"coin_chart",129"cg_trending",130"cg_top_gainers_losers",131"cg_new_coins",132"cg_global",133"cg_global_defi",134"cg_derivatives",135"cg_derivatives_exchanges",136"cg_categories",137# New coin data (4)138"cg_coins_list",139"cg_coins_markets",140"cg_coin_data",141"cg_coin_tickers",142# New exchanges (4)143"cg_exchanges",144"cg_exchange",145"cg_exchange_tickers",146"cg_exchange_volume_chart",147# New NFTs (3)148"cg_nfts_list",149"cg_nft",150"cg_nft_by_contract",151# New infrastructure (4)152"cg_asset_platforms",153"cg_exchange_rates",154"cg_vs_currencies",155"cg_categories_list",156# New search (1)157"cg_search",158# New contracts (2)159"cg_token_price",160"cg_coin_by_contract",161])162logger.info("Registered CoinGecko tools (29 tools)")163except Exception as e:164logger.warning(f"Failed to load CoinGecko tools: {e}")165166return registered167168169# Extension metadata170EXTENSION_INFO = {171"name": "coingecko",172"version": "1.0.0",173"description": "CoinGecko crypto market data tools",174"tools": [175# Price & Chart (3)176"coin_price",177"coin_ohlc",178"coin_chart",179# Market Discovery (3)180"cg_trending",181"cg_top_gainers_losers",182"cg_new_coins",183# Global & Categories (3)184"cg_global",185"cg_global_defi",186"cg_categories",187# Derivatives (2)188"cg_derivatives",189"cg_derivatives_exchanges",190# Coin Data (4)191"cg_coins_list",192"cg_coins_markets",193"cg_coin_data",194"cg_coin_tickers",195# Exchanges (4)196"cg_exchanges",197"cg_exchange",198"cg_exchange_tickers",199"cg_exchange_volume_chart",200# NFTs (3)201"cg_nfts_list",202"cg_nft",203"cg_nft_by_contract",204# Infrastructure (5)205"cg_asset_platforms",206"cg_exchange_rates",207"cg_vs_currencies",208"cg_categories_list",209"cg_search",210# Contracts (2)211"cg_token_price",212"cg_coin_by_contract",213],214"env_vars": [215"COINGECKO_API_KEY",216],217}218