coingecko · v2.0.3 · 2026-05-04 · sha256 3dab565bcca2734c

coingecko v2.0.3A

Immutable. This exact content is served forever at /api/v1/blob/3dab565bcca2734c.

---
name: coingecko
version: 2.0.3
description: CoinGecko crypto price data, charts, market discovery, and global stats
delivery: script
metadata:
  starchild:
    emoji: 🦎
    skillKey: coingecko
    requires:
      env:
      - COINGECKO_API_KEY
user-invocable: false
disable-model-invocation: false
---

## Script Usage

Script-mode skill — read this file, then invoke from a `bash` block:

```bash
python3 - <<'EOF'
import sys, json
sys.path.insert(0, "/data/workspace/skills/coingecko")
from exports import coin_price, cg_trending, cg_global

print(coin_price(coin_ids="bitcoin,ethereum"))
print(cg_trending())
EOF
```

Read `exports.py` for the full list of available functions. Common ones:
`coin_price`, `coin_ohlc`, `coin_chart`, `cg_trending`,
`cg_top_gainers_losers`, `cg_new_coins`, `cg_global`, `cg_global_defi`,
`cg_categories`, `cg_derivatives`, `cg_coins_markets`, `cg_coin_data`,
`cg_coin_tickers`, `cg_search`, `cg_token_price`, `cg_coin_by_contract`.


# CoinGecko Skill


## Function Reference (signatures)

All public functions are in `exports.py`. `coin_id` is the CoinGecko id
(e.g. `bitcoin`, `ethereum`) — use `cg_search(query)` first if unsure.
`vs_currency` defaults to `usd`.

### Prices & Charts
| Function | Description |
|---|---|
| `coin_price(coin_ids, timestamps=None, vs_currency='usd')` | Current or historical price. `coin_ids` = comma-string like `"bitcoin,ethereum"`. `timestamps` = list of unix ts for historical (default: now). |
| `coin_ohlc(coin_id, days=30, vs_currency='usd')` | OHLC bars for last N days. Returns list of `[ts, o, h, l, c]`. Granularity auto-selected: 1d=30min, 7-30d=4h, 30d+=4h. |
| `coin_chart(coin_id, days=30, vs_currency='usd')` | Price + market_cap + total_volume timeseries. Returns `{prices, market_caps, total_volumes}` (each list of `[ts, val]`). |

### Discovery
| Function | Description |
|---|---|
| `cg_trending()` | Trending coins, NFTs, categories (last 24h). |
| `cg_top_gainers_losers(vs_currency='usd', duration='24h')` | Top gainers/losers. `duration` = `1h`/`24h`/`7d`/`14d`/`30d`/`60d`/`1y`. |
| `cg_new_coins()` | Recently listed coins. |
| `cg_search(query)` | Search coins/exchanges/categories by name. |

### Market Data
| Function | Description |
|---|---|
| `cg_global()` | Global crypto market: total market_cap, volume, dominance. |
| `cg_global_defi()` | Global DeFi: TVL, dominance, top protocols. |
| `cg_coins_markets(vs_currency='usd', order='market_cap_desc', per_page=100, page=1, sparkline=False, price_change_percentage='24h', category=None, ids=None)` | Top coins with full market data. |
| `cg_coin_data(coin_id, localization=False, tickers=False, market_data=True, community_data=False, developer_data=False, sparkline=False)` | Detailed data for one coin. |
| `cg_coin_tickers(coin_id, exchange_ids=None, include_exchange_logo=False, page=1, order='volume_desc', depth=False)` | Where a coin trades + volumes. |
| `cg_coins_list(include_platform=False)` | All coin ids/symbols (for resolving). |

### Categories / Derivatives / NFTs
| Function | Description |
|---|---|
| `cg_categories(order='market_cap_desc')` | Top categories with market_cap and volume. |
| `cg_categories_list()` | Just category ids/names. |
| `cg_derivatives(include_tickers='unexpired')` | Derivatives tickers across exchanges. |
| `cg_derivatives_exchanges(order='open_interest_btc_desc', per_page=50)` | Derivatives exchange rankings. |
| `cg_nfts_list(order='market_cap_usd_desc', per_page=100, page=1)` | Top NFT collections. |
| `cg_nft(nft_id)` | NFT collection detail. |
| `cg_nft_by_contract(asset_platform, contract_address)` | NFT by contract address. |

### Exchanges
| Function | Description |
|---|---|
| `cg_exchanges(per_page=100, page=1)` | Exchange rankings. |
| `cg_exchange(exchange_id)` | One exchange's detail. |
| `cg_exchange_tickers(exchange_id, ...)` | Tickers on an exchange. |
| `cg_exchange_volume_chart(exchange_id, days=30)` | Exchange volume history. |

### Contracts / Tokens (by platform)
| Function | Description |
|---|---|
| `cg_token_price(platform, contract_addresses, vs_currencies='usd', include_market_cap=False, include_24hr_vol=False, include_24hr_change=False, include_last_updated_at=False)` | Price by contract address on a platform. |
| `cg_coin_by_contract(platform, contract_address)` | Coin metadata by contract. |
| `cg_asset_platforms(filter=None)` | Supported chains. |
| `cg_vs_currencies()` | Supported quote currencies. |
| `cg_exchange_rates()` | BTC-denominated rates for fiat/major coins. |

## 🚫 CRITICAL: STOP — READ THIS BEFORE CALLING ANY TOOL

**The #1 error is calling Coinglass tools instead of CoinGecko tools.** They have similar names but are COMPLETELY DIFFERENT systems.

### WRONG → RIGHT Tool Substitution Table

| ❌ NEVER call this | ✅ Call this instead | How to tell them apart |
|---|---|---|
| `cg_coins_market_data` | **`cg_coins_markets`** | market_data=Coinglass derivatives. markets=CoinGecko spot. |
| `cg_ohlc_history` | **`coin_ohlc`** | ohlc_history=Coinglass futures candles. coin_ohlc=CoinGecko spot candles. |
| `cg_pair_market_data` | **`cg_coin_tickers`** | pair_market_data=Coinglass futures pair. coin_tickers=CoinGecko spot pairs. |
| `cg_supported_exchanges` | **`cg_exchanges`** | supported_exchanges=Coinglass futures. exchanges=CoinGecko spot. |
| `cg_taker_exchanges` | **`cg_exchange`** | taker=Coinglass volume. exchange=CoinGecko exchange info. |
| `cg_aggregated_taker_volume` | **`cg_coin_tickers`** | taker_volume=Coinglass. coin_tickers=CoinGecko volume across exchanges. |
| `defillama_chains` | **`cg_global_defi`** | For DeFi stats from CoinGecko, use cg_global_defi(). |

### Also FORBIDDEN:
- ❌ `web_search` / `web_fetch` — ALL data is available via native CoinGecko tools above. NEVER use web_search for crypto market data.
- ❌ `bash` for data processing — CoinGecko tools return clean data. No bash needed.
- ❌ **NEVER answer with training data** — all prices, rankings, OHLC are stale. CALL THE TOOL.

## ⚠️ MANDATORY TOOL CALLS — You MUST call a tool before answering these

| Request type | You MUST call | Why |
|---|---|---|
| K线 / OHLC / candlestick / open high low close | `coin_ohlc(coin_id, days)` | Price data is real-time; training data is stale |
| 走势图 / price chart / 价格趋势 | `coin_chart(coin_id, days)` | Same reason |
| 当前价格 / price right now | `coin_price(coin_ids)` | Training data has no live prices |

**DO NOT return any numeric market data (prices, OHLC values, percentages) without calling a tool first.**

## ⚡ Question → Tool Map (match first keyword, call immediately)

| Question keyword | Tool to call | Example |
|---|---|---|
| 价格 / price / 多少钱 (single coin) | `coin_price(coin_id)` | `coin_price(coin_ids="bitcoin")` |
| K线 / OHLC / candlestick / 蜡烛图 | `coin_ohlc(coin_id, days)` | `coin_ohlc(coin_id="ethereum", days=7)` |
| 走势 / trend / price chart / 价格历史 | `coin_chart(coin_id, days)` | `coin_chart(coin_id="solana", days=30)` |
| 热门 / trending / 趋势币 | `cg_trending()` | `cg_trending()` |
| 涨幅最大 / 跌幅最大 / gainers / losers | `cg_top_gainers_losers()` | `cg_top_gainers_losers()` |
| 新币 / 新上线 / new coins / recently added | `cg_new_coins()` | `cg_new_coins()` |
| 总市值 / BTC市占率 / global / 晨报 / 市场概况 | `cg_global()` | `cg_global()` |
| DeFi总市值 / DeFi TVL / DeFi dominance | `cg_global_defi()` | `cg_global_defi()` |
| 板块 / sector / category / L1 / L2 / Meme / AI coins | `cg_categories()` | `cg_categories()` |
| 板块内个币 / Meme前10 / AI币排名 / DeFi币排名 | `cg_coins_markets(category=X)` | `cg_coins_markets(category="meme-token", per_page=10)` |
| 市值排名 / top 10 / ranking / 前10币 | `cg_coins_markets(per_page=N)` | `cg_coins_markets(per_page=10)` |
| ATH / 历史最高 / 社区 / dev / 研究 / fundamentals | `cg_coin_data(coin_id)` | `cg_coin_data(coin_id="solana", community_data=True)` |
| 对比两个币 / compare / XX vs YY | `cg_coin_data()` × 2 | call once per coin |
| NFT排名 / NFT市场 / floor price / top NFTs | `cg_nfts_list()` | `cg_nfts_list()` |
| 某个NFT (BAYC/Punks/Azuki) | `cg_nft(nft_id)` | `cg_nft(nft_id="bored-ape-yacht-club")` |
| 交易所详情 / Binance详情 / exchange data | `cg_exchange(exchange_id)` | `cg_exchange(exchange_id="binance")` |
| 交易所列表 / exchange ranking | `cg_exchanges()` | `cg_exchanges()` |
| 交易对 / trading pairs / 流动性分布 | `cg_coin_tickers(coin_id)` | `cg_coin_tickers(coin_id="bitcoin")` |
| 交易所交易量趋势 / volume chart | `cg_exchange_volume_chart(exchange_id)` | `cg_exchange_volume_chart(exchange_id="binance", days=30)` |
| 合约地址价格 / token price on-chain | `cg_token_price(platform, contract)` | `cg_token_price(platform="ethereum", contract_addresses="0xa0b...")` |
| 搜索币 / 找币 / coin lookup / search | `cg_search(query)` | `cg_search(query="pepe")` |
| 永续合约交易所 / derivatives exchange / OI排名 | `cg_derivatives_exchanges()` | `cg_derivatives_exchanges()` |
| 合约ticker / perpetual / funding / basis | `cg_derivatives()` | `cg_derivatives()` |
| 交易所对比 + 永续交易所 | `cg_exchanges()` + `cg_derivatives_exchanges()` | both calls |

## 🌳 Decision Tree

```
How many coins?
├─ ONE coin
│   ├─ Just price? → coin_price()
│   ├─ ATH/community/dev/deep? → cg_coin_data()
│   ├─ OHLC candles? → coin_ohlc()
│   ├─ Price trend? → coin_chart()
│   └─ Unknown ID? → cg_search() first
├─ MULTIPLE coins / ranking
│   ├─ Sector aggregate (板块总市值)? → cg_categories()
│   ├─ Sector individual (Meme前10)? → cg_coins_markets(category=X)
│   └─ General ranking? → cg_coins_markets(per_page=N)
├─ NFTs → cg_nfts_list() or cg_nft(nft_id)
├─ Exchange → cg_exchange(id) or cg_exchanges()
├─ Global → cg_global() or cg_global_defi()
└─ Token by contract → cg_token_price()
```

## Common Category IDs

`meme-token`, `artificial-intelligence`, `layer-1`, `layer-2`, `decentralized-finance-defi`, `gaming`, `real-world-assets-rwa`

## Output Formatting

- Prices: always use `$` sign → `$66,697`
- Percentages: always use `%` → `+4.2%`
- NFT floor in ETH: show USD too → `5.17 ETH ($10,534)`

## Important Notes

- CoinGecko uses slug IDs: "bitcoin", "ethereum", "solana". Symbols (BTC, ETH, SOL) auto-resolve.
- If unsure about a coin ID → `cg_search(query="coin name")` first.
- Most questions need only 1-2 tool calls. Do NOT chain 3+ calls.

## Common Issues

### coin_price failed with invalid ID
**Solution:** Use `cg_search(query="coin name")` to find the correct CoinGecko ID first, or use the symbol directly (e.g., 'COMP').

---