원클릭으로
get-crypto-price
Fetch current and historical crypto prices and compute ATH or ATL over common time windows.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Fetch current and historical crypto prices and compute ATH or ATL over common time windows.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Upload and host files anonymously using decentralized storage with Originless and IPFS.
Automate web browsers for AI agents using agent-browser CLI with deterministic element selection.
Log all file changes (write, edit, delete) to a SQLite database for debugging and audit. Use when: (1) Tracking code changes, (2) Debugging issues, (3) Auditing file modifications, or (4) The user asks to track file changes.
Host static websites and assets via zip upload to Originless IPFS. Use when: (1) Deploying static sites, (2) Hosting HTML/CSS/JS projects, (3) Sharing web assets publicly, or (4) User asks to host static files.
Search for torrents by title or IMDB ID via a Torznab-compatible API. Use when: (1) User asks to find a torrent for a movie or show, (2) You need a magnet link for a given title, or (3) User provides an IMDB ID and wants download options.
Scrape websites at scale using Scrapy, a Python web crawling and scraping framework. Use when: (1) Crawling multiple pages or entire sites, (2) Extracting structured data from HTML/XML, or (3) Building automated data pipelines from web sources.
| name | get-crypto-price |
| description | Fetch current and historical crypto prices and compute ATH or ATL over common time windows. |
This short guide shows how to fetch current prices and at least 3 months of past price action using CoinGecko, Binance, and Coinbase public APIs. It also shows how to compute ATH (highest) and ATL (lowest) within time windows: 1 DAY, 1 WEEK, 1 MONTH.
BTCUSDT on Binance, bitcoin on CoinGecko).curl "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
curl "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=90"
Response contains prices array: [[timestamp_ms, price], ...].
Node.js: Fetch 90 days and compute ATH/ATL for 1d/7d/30d windows.
async function fetchCoinGeckoPrices(coinId = 'bitcoin', vs = 'usd', days = 90) {
const url = `https://api.coingecko.com/api/v3/coins/${coinId}/market_chart`;
const res = await fetch(`${url}?vs_currency=${vs}&days=${days}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
return data.prices; // array of [ts_ms, price]
}
function maxMinInWindow(prices, sinceMs) {
const window = prices.filter(([ts]) => ts >= sinceMs).map(([, p]) => p);
if (window.length === 0) return [null, null];
return [Math.max(...window), Math.min(...window)];
}
const prices = await fetchCoinGeckoPrices('bitcoin', 'usd', 90);
const nowMs = Date.now();
const windows = {
'1d': nowMs - 24 * 3600 * 1000,
'1w': nowMs - 7 * 24 * 3600 * 1000,
'1m': nowMs - 30 * 24 * 3600 * 1000,
};
for (const [name, since] of Object.entries(windows)) {
const [ath, atl] = maxMinInWindow(prices, since);
console.log(name, 'ATH:', ath, 'ATL:', atl);
}
Notes: CoinGecko returns sampled points (usually hourly) — good for these windows.
curl "https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT"
klines endpoint. Example: fetch daily candles for the last 1000 days or hourly for finer resolution.# daily candles for BTCUSDT (limit up to 1000 rows)
curl "https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1d&limit=1000"
Each kline row: [openTime, open, high, low, close, ...] where openTime is ms.
Node.js: Fetch hourly klines for last 90 days and compute ATH/ATL windows.
async function fetchBinanceKlines(symbol = 'BTCUSDT', interval = '1h', limit = 1000) {
const url = 'https://api.binance.com/api/v3/klines';
const params = new URLSearchParams({ symbol, interval, limit: String(limit) });
const res = await fetch(`${url}?${params}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return await res.json(); // array of arrays
}
// To cover ~90 days hourly: 24*90 = 2160 rows -> call twice with different startTimes or use 4h interval
const klines = await fetchBinanceKlines('BTCUSDT', '1h', 1000);
// For more than 1000 rows you'd loop with startTime using ms timestamps.
// Convert to list of [ts_ms, high, low]
const data = klines.map(row => [row[0], parseFloat(row[2]), parseFloat(row[3])]);
const nowMs = Date.now();
function athAtlFromKlines(data, sinceMs) {
const filtered = data.filter(([ts]) => ts >= sinceMs);
if (filtered.length === 0) return [null, null];
const highs = filtered.map(([, h]) => h);
const lows = filtered.map(([, , l]) => l);
return [Math.max(...highs), Math.min(...lows)];
}
const windows = {
'1d': nowMs - 24 * 3600 * 1000,
'1w': nowMs - 7 * 24 * 3600 * 1000,
'1m': nowMs - 30 * 24 * 3600 * 1000,
};
for (const [name, since] of Object.entries(windows)) {
const [ath, atl] = athAtlFromKlines(data, since);
console.log(name, 'ATH:', ath, 'ATL:', atl);
}
Notes: Binance limit is 1000 max per request; for full 90 days hourly, page by startTime.
curl "https://api.coinbase.com/v2/prices/BTC-USD/spot"
curl "https://api.exchange.coinbase.com/products/BTC-USD/candles?granularity=3600&start=2025-11-01T00:00:00Z&end=2026-02-01T00:00:00Z"
Response: array of [time, low, high, open, close, volume]. Use similar filtering by timestamp to compute ATH/ATL.
General steps (applies to any data source that gives timestamped prices or OHLC candles):
high as candidate for ATH and low as candidate for ATL. If you only have sampled prices, use max/min of sampled values.Example with simple price points (Node.js):
// points = [[ts_ms, price], ...]
const sinceMs = Date.now() - 24 * 3600 * 1000; // 1 day
const windowPrices = points.filter(([ts]) => ts >= sinceMs).map(([, p]) => p);
if (windowPrices.length > 0) {
const ath = Math.max(...windowPrices);
const atl = Math.min(...windowPrices);
} else {
const ath = null;
const atl = null;
}
If using OHLC candles:
// candles = [[ts_ms, open, high, low, close], ...]
const window = candles.filter(c => c[0] >= sinceMs);
const ath = Math.max(...window.map(c => c[2]));
const atl = Math.min(...window.map(c => c[3]));
market_chart?days=90 for quick 90-day history.klines or Coinbase candles and repeat the same aggregation.If you want, I can add ready-to-run scripts for specific coins (BTC, ETH) and automate paginated Binance fetches to guarantee 90 days of hourly data.
Agent note: When producing human-friendly reports, agents should use the skills/user-ask-for-report skill to produce formatted outputs and hosted report pages. See skills/user-ask-for-report/SKILL.md for examples and templates.
Example agent prompt:
Use the user-ask-for-report skill to create a short Bitcoin price report (current price, 24h change, 7d change) in a clean hosted report page. Include source URLs.