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.
exports.py
1"""2CoinGecko skill exports — script-mode skill.34Usage from a bash block:5python3 - <<'EOF'6import sys7sys.path.insert(0, "/data/workspace/skills/coingecko")8from exports import coin_price, cg_trending9print(coin_price(coin_ids="bitcoin,ethereum"))10EOF11"""12import os, sys1314# tools/ contains all sub-modules; make them importable regardless of cwd.15_TOOLS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "tools")16if _TOOLS_DIR not in sys.path:17sys.path.insert(0, _TOOLS_DIR)1819from coin_prices import get_coin_prices_at_timestamps20from coin_ohlc_range_by_id import get_coin_ohlc_range_by_id21from coin_historical_chart_range_by_id import get_coin_historical_chart_range_by_id22from coins import (get_coins_list, get_coins_markets, get_coin_data, get_coin_tickers)23from market_discovery import get_trending, get_top_gainers_losers, get_new_coins24from global_data import get_global, get_global_defi25from search import search as _search26from derivatives import get_derivatives, get_derivatives_exchanges, get_categories27from exchanges import (get_exchanges, get_exchange, get_exchange_tickers,28get_exchange_volume_chart)29from infrastructure import (get_asset_platforms, get_exchange_rates,30get_vs_currencies, get_categories_list)31from nfts import get_nfts_list, get_nft, get_nft_by_contract32from contracts import get_token_price, get_coin_by_contract333435# ── Price tools ──3637def coin_price(coin_ids, timestamps=None, vs_currency="usd"):38"""Get coin prices. coin_ids: comma-separated IDs or symbols (bitcoin,BTC,ETH)."""39return get_coin_prices_at_timestamps(40coin_ids=coin_ids,41timestamps=timestamps or ["now"],42vs_currency=vs_currency43)4445def coin_ohlc(coin_id, days=30, vs_currency="usd"):46"""Get OHLC candlestick data for the last N days.4748Wraps get_coin_ohlc_range_by_id which expects unix timestamps.49"""50import time as _time51to_ts = int(_time.time())52from_ts = to_ts - int(days) * 8640053return get_coin_ohlc_range_by_id(54coin_id, from_timestamp=from_ts, to_timestamp=to_ts55)565758def coin_chart(coin_id, days=30, vs_currency="usd"):59"""Get historical price chart for the last N days (timestamp + price points).6061Wraps get_coin_historical_chart_range_by_id which expects unix timestamps.62"""63import time as _time64to_ts = int(_time.time())65from_ts = to_ts - int(days) * 8640066return get_coin_historical_chart_range_by_id(67coin_id,68vs_currency=vs_currency,69from_timestamp=from_ts,70to_timestamp=to_ts,71)727374# ── Discovery tools ──7576def cg_trending():77"""Get trending coins, NFTs, categories."""78return get_trending()7980def cg_top_gainers_losers(vs_currency="usd", duration="24h"):81"""Get top gainers and losers."""82return get_top_gainers_losers(vs_currency, duration)8384def cg_new_coins():85"""Get recently added coins."""86return get_new_coins()8788def cg_search(query):89"""Search for coins, exchanges, categories by name."""90return _search(query)919293# ── Global data ──9495def cg_global():96"""Get global crypto market stats."""97return get_global()9899def cg_global_defi():100"""Get global DeFi market stats."""101return get_global_defi()102103104# ── Coins ──105106def cg_coins_list(include_platform=False):107"""Get list of all coins (id, symbol, name)."""108return get_coins_list(include_platform)109110def cg_coins_markets(vs_currency="usd", order="market_cap_desc", per_page=100,111page=1, sparkline=False, price_change_percentage="24h",112category=None, ids=None):113"""Get coin market data (price, mcap, volume, change%)."""114return get_coins_markets(vs_currency, order, per_page, page, sparkline,115price_change_percentage, category, ids)116117def cg_coin_data(coin_id, localization=False, tickers=False, market_data=True,118community_data=False, developer_data=False, sparkline=False):119"""Get detailed data for a specific coin."""120return get_coin_data(coin_id, localization, tickers, market_data,121community_data, developer_data, sparkline)122123def cg_coin_tickers(coin_id, exchange_ids=None, include_exchange_logo=False,124page=1, order="volume_desc", depth=False):125"""Get coin trading tickers across exchanges."""126return get_coin_tickers(coin_id, exchange_ids, include_exchange_logo,127page, order, depth)128129130# ── Categories ──131132def cg_categories(order="market_cap_desc"):133"""Get coin categories with market data."""134return get_categories(order)135136def cg_categories_list():137"""Get list of all categories (id + name only)."""138return get_categories_list()139140141# ── Derivatives ──142143def cg_derivatives(include_tickers="unexpired"):144"""Get derivatives tickers (futures/perpetuals)."""145return get_derivatives(include_tickers)146147def cg_derivatives_exchanges(order="open_interest_btc_desc", per_page=50):148"""Get derivatives exchanges ranked by open interest."""149return get_derivatives_exchanges(order, per_page)150151152# ── Exchanges ──153154def cg_exchanges(per_page=100, page=1):155"""Get list of exchanges with volume data."""156return get_exchanges(per_page, page)157158def cg_exchange(exchange_id):159"""Get specific exchange data."""160return get_exchange(exchange_id)161162def cg_exchange_tickers(exchange_id, coin_ids=None, include_exchange_logo=False,163page=1, order="volume_desc", depth=False):164"""Get tickers for a specific exchange."""165return get_exchange_tickers(exchange_id, coin_ids, include_exchange_logo,166page, order, depth)167168def cg_exchange_volume_chart(exchange_id, days=30):169"""Get exchange volume chart data."""170return get_exchange_volume_chart(exchange_id, days)171172173# ── NFTs ──174175def cg_nfts_list(order="market_cap_usd_desc", per_page=100, page=1):176"""Get NFT collections list."""177return get_nfts_list(order, per_page, page)178179def cg_nft(nft_id):180"""Get specific NFT collection data."""181return get_nft(nft_id)182183def cg_nft_by_contract(asset_platform, contract_address):184"""Get NFT data by contract address."""185return get_nft_by_contract(asset_platform, contract_address)186187188# ── Infrastructure ──189190def cg_asset_platforms(filter=None):191"""Get list of asset platforms (blockchains)."""192return get_asset_platforms(filter)193194def cg_exchange_rates():195"""Get BTC exchange rates to other currencies."""196return get_exchange_rates()197198def cg_vs_currencies():199"""Get list of supported vs currencies."""200return get_vs_currencies()201202203# ── Contract/Token tools ──204205def cg_token_price(platform, contract_addresses, vs_currencies="usd",206include_market_cap=False, include_24hr_vol=False,207include_24hr_change=False, include_last_updated_at=False):208"""Get token price by contract address."""209return get_token_price(platform, contract_addresses, vs_currencies,210include_market_cap, include_24hr_vol,211include_24hr_change, include_last_updated_at)212213def cg_coin_by_contract(platform, contract_address):214"""Get coin data by contract address."""215return get_coin_by_contract(platform, contract_address)216