Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add nirholas/three.ws --skill crypto-market-data-service-guidegit clone --depth 1 https://github.com/nirholas/three.wsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nirholas/three.ws/crypto-market-data-service-guide)<a href="https://agentmods.dev/skills/nirholas/three.ws/crypto-market-data-service-guide"><img src="https://agentmods.dev/badge/skills/nirholas/three.ws/crypto-market-data-service-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/nirholas/three.ws/crypto-market-data-service-guide"><img src="https://agentmods.dev/badge/skills/nirholas/three.ws/crypto-market-data-service-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.01059 |
| Opus 5.5 | $0.00022 | $0.00424 |
| Sonnet 5.5 | $0.00011 | $0.00212 |
| Haiku 4.5 | $0.00006 | $0.00106 |
Grade A, and why
crypto-market-data-service-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 166 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Crypto Market Data Service Guide
A production-ready TypeScript service for crypto market data. Features caching, rate limiting, fallback sources, and WebSocket subscriptions.
Architecture
Client Request
│
▼
Rate Limiter → Cache Check
│ │
│ Cache Hit? → Return cached
│ │
│ Cache Miss
│ │
▼ ▼
Primary Source (CoinGecko)
│
├── Success → Cache → Return
│
└── Failure → Fallback Source
│
├── CoinMarketCap
├── DeFi Llama
└── DexScreener
Quick Start
import { MarketDataService } from '@nirholas/crypto-market-data';
const service = new MarketDataService({
primarySource: 'coingecko',
fallbackSources: ['coinmarketcap', 'defillama'],
cache: { ttl: 60_000 }, // 1 minute cache
rateLimit: { maxRequests: 30, windowMs: 60_000 }
});
Price Data
// Get current price
const price = await service.getPrice('SPA', 'usd');
// { price: 0.0123, change24h: 5.2, volume24h: 1234567 }
// Get multiple prices
const prices = await service.getPrices(['SPA', 'ETH', 'BTC'], 'usd');
// Get price with metadata
const detailed = await service.getDetailedPrice('SPA');
// { price, marketCap, volume24h, circulatingSupply, ath, athDate, ... }
Candle Data (OHLCV)
// Get 1-hour candles
const candles = await service.getCandles('SPA', {
interval: '1h',
limit: 100
});
// [{ time, open, high, low, close, volume }, ...]
// Get daily candles with date range
const daily = await service.getCandles('SPA', {
interval: '1d',
from: '2024-01-01',
to: '2024-12-31'
});
WebSocket Subscriptions
// Subscribe to real-time price updates
service.subscribePrices(['SPA', 'ETH'], (update) => {
console.log(`${update.symbol}: $${update.price}`);
});
// Subscribe to trade events
service.subscribeTrades('SPA', (trade) => {
console.log(`${trade.side} ${trade.amount} @ ${trade.price}`);
});
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 166 lines · 56 tokens per session scan A 4217de66ffd7
crypto-market-data-service-guide is a skill published in the GitHub repository nirholas/three.ws (247 stars, last pushed today), licensed Apache-2.0. It adds 56 tokens to every session and 1,059 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
x402
Set up Browser Use Cloud payments with x402 — pay per request from a crypto wallet (USDC on Base mainnet), no signup or API key. Two setups it works out up front — "just use it" (set up a wallet so you or Claude Code can run cloud browser tasks paid from the wallet — Claude writes and runs throwaway scripts, nothing…
stripe-best-practices
Guides Stripe integration decisions across development and test environment planning (separate sandboxes vs the shared test mode sandbox), API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax…
liter-llm-running-the-proxy
Use when running the liter-llm api OpenAI-compatible gateway — virtual keys, per-key rate limits, budgets, cost tracking, and model routing. Covers the TOML config and the 22 REST endpoints.
mastercard-best-practices
Integration guidance for Mastercard APIs. Covers resolving a service's ID from its name, confirming a service's auth type before writing auth code, routing to the right authentication guide, finding an operation's request and response schema, sandbox versus production base URLs, and what Mastercard's error responses…
stripe-best-practices
A set of server-side guidelines for adding Stripe payments, subscriptions, and Connect, Stripe’s service for splitting payments between businesses or sellers.
impact-analysis
Translate a macro, policy, rate, commodity, geopolitical or industry shock into equity exposure through a named transmission channel. Triggers on what does X mean for, impact of, exposure to, who benefits from, tariff, rate cut, oil shock, new regulation.