From kraken-cli
Explains Kraken API rate limits for Spot REST, trading engine, and Futures; adapts agent behavior with strategies like WebSockets over REST polling and batch orders.
npx claudepluginhub krakenfx/kraken-cliThis skill uses the workspace's default tool permissions.
Use this skill for:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Use this skill for:
The CLI does not pre-throttle or retry rate-limited requests. The Kraken API server enforces rate limits. When a limit is hit, the CLI returns the error immediately with structured fields:
{
"error": "rate_limit",
"message": "Spot REST API rate limit exceeded ...",
"suggestion": "Wait 5-15 seconds before retrying. ...",
"retryable": true,
"docs_url": "https://docs.kraken.com/api/docs/guides/spot-rest-ratelimits/"
}
Read the suggestion field to understand what limit was hit and how to adapt.
Counter-decay model. Each call adds to a counter; the counter decays over time.
| Tier | Max Counter | Decay Rate |
|---|---|---|
| Starter | 15 | 0.33/s |
| Intermediate | 20 | 0.5/s |
| Pro | 20 | 1.0/s |
Most calls cost 1 point. Ledgers, trade history, and query-ledgers cost 2. AddOrder and CancelOrder are excluded from this counter (they use the trading engine limiter instead).
Docs: https://docs.kraken.com/api/docs/guides/spot-rest-ratelimits/
Separate per-pair counter with penalties for short-lived orders:
| Tier | Threshold | Decay Rate |
|---|---|---|
| Starter | 60 | 1/s |
| Intermediate | 125 | 2.34/s |
| Pro | 180 | 3.75/s |
Cancel within 5 seconds costs +8, amend within 5 seconds costs +3. Let orders rest longer to reduce cost.
Docs: https://docs.kraken.com/api/docs/guides/spot-ratelimits
Cost-based system with two separate pools:
/derivatives endpoints: budget of 500 per 10 seconds. sendorder costs 10, editorder costs 10, cancelorder costs 10, batchorder costs 9 + batch size, cancelallorders costs 25, accounts costs 2./history endpoints: pool of 100 tokens, refills at 100 per 10 minutes.Docs: https://docs.kraken.com/api/docs/guides/futures-rate-limits/
Streaming does not consume REST rate limit points. For real-time data, always prefer:
kraken ws ticker BTC/USD -o json 2>/dev/null
Batch orders cost less per-order on both Spot and Futures. Up to 15 orders per batch on Spot.
When a rate limit error is returned, the suggestion field contains the specific limit that was hit and concrete advice. Parse it and adapt:
RESULT=$(kraken balance -o json 2>/dev/null)
if [ $? -ne 0 ]; then
CATEGORY=$(echo "$RESULT" | jq -r '.error // "unknown"')
if [ "$CATEGORY" = "rate_limit" ]; then
SUGGESTION=$(echo "$RESULT" | jq -r '.suggestion // "Wait and retry"')
DOCS=$(echo "$RESULT" | jq -r '.docs_url // ""')
echo "Rate limited. $SUGGESTION"
echo "Read more: $DOCS"
fi
fi
Before executing a sequence, estimate total cost:
# This sequence costs ~5 points on the Spot REST counter:
kraken ticker BTCUSD -o json 2>/dev/null # 1 point
kraken balance -o json 2>/dev/null # 1 point
kraken open-orders -o json 2>/dev/null # 1 point
kraken trades-history -o json 2>/dev/null # 2 points (heavy call)
Leave headroom for retries and unexpected calls.