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.svg" alt="Measured on agentmods" 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 | $0.00028 | $0.00530 |
| Sonnet 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 4d 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.
- 4d 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 (111 stars, last pushed yesterday), licensed Apache-2.0. It adds 56 tokens to every session and 1,059 once invoked, about $0.0003 per session on Opus 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
api-integration
Use when a user wants to integrate with or develop against the Shuriken API or SDK — covers proficiency assessment, path routing (quickstart / raw API / SDK), and tells you which deepening reference tool to reach for (OpenAPI for HTTP endpoints, the stream catalog for WebSockets, platform docs as fallback).
tushare
A Python interface for Tushare, a financial data service that provides market and company information for stocks, funds, futures, and digital assets. It returns queried data as pandas tables.
fastbill
Work with FastBill invoices, customers, payments, reminders, and e-invoice exports through the FastBill XML API.
exchange-connector
Connect to crypto exchanges (Binance, Kraken, Coinbase, etc.). Execute orders, manage API keys, stream market data.
springboot-payment-module-skill
A payment integration module for existing Spring Boot applications. Spring Boot is a Java framework for building web services; this module connects them to WeChat Pay and Alipay.
plaid
Plaid connects users' bank accounts to apps. This skill focuses on Plaid Link flow and the plaid-node SDK to extract transaction data.