Glassnode CLI (gn)
Command-line interface for the Glassnode API.
Setup
If the gn command is not available you need to install the CLI. See the Installation section in the README for install and setup options.
Quick start:
gn asset list
gn metric get market/price_usd_close --asset BTC --since 30d
Commands
List assets
gn asset list
gn asset list --filter "asset.semantic_tags.exists(tag,tag=='stablecoin')"
gn asset list --filter "asset.id=='BTC'"
# Prune to specific fields (returns array of objects)
gn asset list --prune id -o json
gn asset list -p id,symbol -o json
Describe an asset
gn asset describe BTC
List metrics
gn metric list
gn metric list --asset BTC
gn metric list -a BTC -e binance -i 24h
gn metric list --assets BTC --assets ETH
gn metric list --from-exchange binance --to-exchange coinbase
Filter by any metadata query parameters: --currency, --exchange, --interval, --from-exchange, --to-exchange, --miner, --maturity, --network, --period, --quote-symbol, or multiple --assets.
Describe a metric (discover valid parameters)
gn metric describe market/price_usd_close
gn metric describe market/price_usd_close --asset BTC
Fetch metric data
gn metric get market/price_usd_close --asset BTC --interval 24h
gn metric get market/price_usd_close --asset BTC --since 2024-01-01 --until 2024-02-01
gn metric get market/price_usd_close --asset BTC --since 30d
gn metric get indicators/sopr --asset BTC --interval 24h --since 30d
gn metric get distribution/balance_exchanges --asset BTC --exchange binance --currency usd
Bulk fetch (multiple assets)
Append /bulk to the metric path. Repeat -a (or --asset) for each asset, or use -a '*' for all:
gn metric get market/marketcap_usd/bulk -a BTC -a ETH -a SOL -s 1d
gn metric get market/marketcap_usd/bulk -a '*' --interval 24h --since 30d
Config set / get
gn config set api-key=your-key
gn config set output=csv
gn config get api-key
gn config get all
Global Flags
| Flag | Short | Description |
|---|---|---|
--api-key | Glassnode API key | |
--output | -o | Output format: json (default), csv, table |
--dry-run | Print the request URL without executing | |
--timestamp-format | Timestamp format in output |
Best Practices
- Always call
gn metric describe <path>beforegn metric getto discover valid parameters, assets, exchanges, and intervals for a metric. - Use
--output json(default) for structured output suitable for piping tojq. - Use
--dry-runto preview the API request URL without executing:gn metric get market/price_usd_close --asset BTC --since 30d --dry-run. - For bulk metrics (path ending in
/bulk), use-awith specific assets or-a '*'for all. - Relative time values are supported for
--sinceand--until: e.g.30d,7d,1h.
Output Formats
--output json(default) — JSON, suitable forjqprocessing--output csv— CSV format, suitable for spreadsheets--output table— human-readable ASCII table
# Pipe JSON to jq
gn metric get market/price_usd_close -a BTC --since 7d | jq '.[].v'
# Export to CSV
gn metric get market/price_usd_close -a BTC --since 30d -o csv > prices.csv
# Quick look in the terminal
gn metric get market/price_usd_close -a BTC --since 7d -o table