Skip to content
Back to skills

Crypto Setup

ASecurity

Setup and Doctor for the crypto trader pack. Checks which exchanges answer from the user's location (Binance USD-M futures, Bybit linear perpetuals, Hyperliquid), how fast each one answers, whether the computer's clock is close enough to the exchange's for signed orders, and writes crypto/config.json from the example. Holds cryptocore.py, the shared code every other crypto-* skill imports, so it must stay installed. Use when the user says "set up the crypto skills", "check my connection", "wh...

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythongobashapidatabase

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add syedishaq7262-svg/crypto-trader-skill --skill crypto-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Crypto Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Crypto Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/syedishaq7262-svg-crypto-setup/badge)](https://www.skillsdirectory.com/skills/syedishaq7262-svg-crypto-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: crypto-setup
description: >-
  Setup and Doctor for the crypto trader pack. Checks which exchanges answer
  from the user's location (Binance USD-M futures, Bybit linear perpetuals,
  Hyperliquid), how fast each one answers, whether the computer's clock is
  close enough to the exchange's for signed orders, and writes
  crypto/config.json from the example. Holds cryptocore.py, the shared code
  every other crypto-* skill imports, so it must stay installed. Use when
  the user says "set up the crypto skills", "check my connection", "which
  exchange works here", "Binance is blocked", "why is it slow", "is my clock
  right", "make a config", "show my settings", "change my risk limits", or
  the first time any crypto-* skill runs in a project, or when a skill says
  an exchange refused the connection.
argument-hint: "[doctor | init | config]"
---

# crypto-setup

The first thing to run, and the place to come back to when something will
not connect. It does not trade, scan or advise. It answers three questions:
which exchanges can I reach from here, how fast, and what settings are in
force.

`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).

```bash
python3 "${CLAUDE_SKILL_DIR}/setup.py" doctor     # reachability, speed, clock, keys present or not
python3 "${CLAUDE_SKILL_DIR}/setup.py" init       # crypto/config.json from config.example.json (never overwrites)
python3 "${CLAUDE_SKILL_DIR}/setup.py" init --force
python3 "${CLAUDE_SKILL_DIR}/setup.py" config     # every setting, and whether it is the user's or a default
```

Needs Python 3.8 or newer and nothing else: no pip install, no API key.
Everything is the standard library.

## What it reads and writes

| file | what |
| --- | --- |
| `crypto/config.json` | written by `init` from `config.example.json`, read by every skill |
| `crypto/cache/venue.json` | written by `doctor`: the venue that answered from here, used by `"venue": "auto"` for six hours |
| `cryptocore.py` | the shared library: exchange clients, clock, indicators, formatting |

## The exchanges

All three serve free public market data with no key.

| venue | data | notes |
| --- | --- | --- |
| Binance USD-M futures | candles, 24h tickers, funding, open interest and its history, long/short ratios, taker flow, order book | the deepest market; refuses some countries, including the US (HTTP 451) |
| Bybit linear perpetuals | the same, plus public risk tiers for exact liquidation prices | refuses some countries, including the US (HTTP 403) |
| Hyperliquid | candles, funding, open interest now, order book, every wallet's positions | open from anywhere; no open-interest history and no long/short ratio; tighter rate limit, so scans default to the 40 busiest coins |

`"venue": "auto"` (the default) tries them in that order and keeps the
first one that answers. A blocked exchange is the exchange's rule for that
location, not a fault in the pack. Never suggest a VPN to get around it.

## Steps

1. Run `doctor`. Report each line as printed: which venues answered, how
   fast, the clock offset, and the venue `auto` will use.
2. If no `crypto/config.json` exists and the user is going to plan trades,
   run `init` and tell them the money settings it printed. Ask them for
   their real account size and the most they will lose on one trade and in
   one day, then edit those keys in `crypto/config.json` for them.
3. If the clock is more than a second off, suggest syncing it: on Windows,
   Settings > Time & language > Date & time > Sync now; elsewhere, turn on
   setting the time automatically. The pack allows for the difference: the
   broker signs orders by the exchange's clock, and the market tools read
   candles by it.
4. If the display time zone line says `unknown`, the computer has no time
   zone database for that name: suggest an offset such as `"+11:00"` in
   `display_tz` instead.
5. If nothing answers, say so plainly and stop. Do not retry in a loop.

## Example

From the pack's offline test exchange, with Binance answering as it does
from a blocked country (the test exchange builds its made-up market on the
first request, hence the slow answers):

```
Doctor | 2026-10-21 15:15 UTC | Python 3.13.17 on Linux
  Binance USD-M futures    blocked  refuses connections from this location
  Bybit linear perpetuals  ok       28 markets, answered in 1903 ms
  Hyperliquid perps        ok       27 markets, answered in 1887 ms
  Fear & Greed index       ok       64 (Greed)
  News feed (CoinDesk)     ok       answered in 0 ms
  Macro calendar           ok       answered in 0 ms
  Bybit announcements      ok       answered in 0 ms
  Work folder              ok       /home/you/trading/crypto
  Display time zone        ok       UTC (UTC+0 now)
  Config                   default  no crypto/config.json yet (python3 setup.py init writes one)
  Exchange keys            none (fine: every skill except a live crypto-broker works without keys)
Best venue from here: Bybit linear perpetuals. With "venue": "auto" every skill uses it.
Blocked here: Binance USD-M futures. That is the exchange's rule for this location, not a fault.
```

## Settings worth knowing

`account_usd`, `max_loss_per_trade_usd`, `max_daily_loss_usd`,
`max_trades_per_day`, `max_open_positions`, `min_reward_risk`,
`max_cost_r` (0.2: the most fees and slippage may take from a stop-out, in
R; 0 turns the rule off), `max_leverage` (3), `margin_mode` (isolated), `allow_cross_margin` (false),
`min_liq_buffer` (2.0: liquidation at least twice as far as the stop),
`cooldown_after_losses` (2) and `cooldown_hours` (12), `paper` (true),
`live_venue`, `display_tz` ("+11:00" or "Australia/Melbourne"), `session`
for opening ranges (utc, tokyo, london, ny), `min_quote_volume_usd`
(20 million), `min_listing_days` (14), `exclude`.

## Rules

- Never ask for, print, store or echo API keys. `doctor` only says whether
  the environment variables exist.
- Never loosen a risk setting the user did not ask to loosen.
- Say the venue in use whenever a result depends on it.

Files in this skill

  • SKILL.md5.9 KB
  • config.example.json2 KB
  • setup.py7.8 KB
  • track_record.json5.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.