coingecko

|

Skill file

Preview skill file
---
name: coingecko
version: 2.0.4
description: |
  Crypto spot prices, OHLC charts, market discovery, and global stats.

  Use when looking up coin prices, market caps, trending coins, sector rankings, or comparing tokens (e.g. BTC price, ETH chart, top gainers).
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').

---

Source

Creator's repository · starchild-ai-agent/official-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk