Bybit Futures

WarnAudited by ClawScan on May 10, 2026.

Overview

This is a coherent Bybit futures trading skill, but it can use write-enabled exchange credentials to place leveraged live orders and its safety/credential boundaries are under-declared.

Use paper trading or Bybit testnet first. Do not provide real API keys unless they are restricted to contract trading, have withdrawals disabled, and are preferably IP-allowlisted. Treat live mode as capable of real financial loss, and verify the risk controls before allowing autonomous execution.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If configured with real Bybit keys, the skill can act on the user’s trading account.

Why it was flagged

The code expects exchange API credentials, but the registry metadata declares no required env vars or primary credential. Those credentials enable account access for live trading.

Skill content
BYBIT_API_KEY = os.getenv("BYBIT_API_KEY", "YOUR_API_KEY")
BYBIT_API_SECRET = os.getenv("BYBIT_API_SECRET", "YOUR_API_SECRET")
Recommendation

Use a restricted Bybit API key with no withdrawal permission, consider IP allowlisting, start on testnet or paper mode, and require explicit user confirmation before any live order.

What this means

A mistaken invocation or flawed strategy could open or close leveraged futures positions with real funds.

Why it was flagged

The live trading module can place real market buy and sell orders. The artifacts do not show an explicit confirmation gate around these high-impact financial actions.

Skill content
order = self.exchange.create_order(symbol, "market", "buy", amount, params=params)
...
order = self.exchange.create_order(symbol, "market", "sell", amount, params=params)
Recommendation

Keep live trading disabled by default, add an explicit live-mode confirmation step, and require per-order approval or strict user-defined limits before execution.

What this means

Users may over-trust the bot’s stated safeguards and assume losses will automatically halt trading when the shown live code does not clearly support that guarantee.

Why it was flagged

The documentation presents strong risk-management guarantees, but the live trading close path shown only calls position_closed and does not clearly record trade PnL for daily loss-limit enforcement.

Skill content
All trades enforced by `risk_manager.py`:
- **Daily loss limit**: halt trading after X% daily drawdown
Recommendation

Verify the risk manager in paper/testnet mode, ensure realized PnL is recorded on every live close, and do not rely on the stated daily-loss halt until tested.

What this means

Different package versions could behave differently or introduce supply-chain risk.

Why it was flagged

The setup uses unpinned third-party Python packages. This is expected for a trading integration, but it leaves dependency versions and provenance to the user’s environment.

Skill content
Install dependencies: `pip install ccxt websockets numpy requests`
Recommendation

Install in a virtual environment and pin known-good package versions before using live trading.

What this means

The bot may continue running in the background after setup until the service is disabled.

Why it was flagged

The deployment example creates a persistent background service that restarts automatically. It is disclosed and scoped to the paper trading bot, but it changes runtime persistence.

Skill content
sudo systemctl enable --now paper-trading
...
Restart=always
Recommendation

Only enable the service intentionally, monitor logs, and know how to stop and disable it before deployment.

What this means

Corrupted or edited local state could affect position limits or trading status.

Why it was flagged

The skill persists local risk/trade state to JSON and later reloads it. This is purpose-aligned, but local state can influence future trading behavior.

Skill content
STATE_FILE = Path(__file__).parent / "risk_state.json"
...
STATE_FILE.write_text(json.dumps({
Recommendation

Protect the trading directory, back up state files, and review state after crashes or manual edits.