perp-cli 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +293 -0
- package/dist/__tests__/alert-logic.test.d.ts +1 -0
- package/dist/__tests__/alert-logic.test.js +107 -0
- package/dist/__tests__/arb-auto-3dex.test.d.ts +1 -0
- package/dist/__tests__/arb-auto-3dex.test.js +397 -0
- package/dist/__tests__/arb-history-stats.test.d.ts +1 -0
- package/dist/__tests__/arb-history-stats.test.js +176 -0
- package/dist/__tests__/arb-logic.test.d.ts +1 -0
- package/dist/__tests__/arb-logic.test.js +84 -0
- package/dist/__tests__/arb-manage.test.d.ts +1 -0
- package/dist/__tests__/arb-manage.test.js +253 -0
- package/dist/__tests__/arb-new-features.test.d.ts +1 -0
- package/dist/__tests__/arb-new-features.test.js +457 -0
- package/dist/__tests__/arb-sizing.test.d.ts +1 -0
- package/dist/__tests__/arb-sizing.test.js +48 -0
- package/dist/__tests__/arb-state.test.d.ts +1 -0
- package/dist/__tests__/arb-state.test.js +284 -0
- package/dist/__tests__/arb-userflow.test.d.ts +1 -0
- package/dist/__tests__/arb-userflow.test.js +945 -0
- package/dist/__tests__/arb-utils.test.d.ts +1 -0
- package/dist/__tests__/arb-utils.test.js +264 -0
- package/dist/__tests__/bot-conditions.test.d.ts +1 -0
- package/dist/__tests__/bot-conditions.test.js +341 -0
- package/dist/__tests__/client-id-tracker.test.d.ts +1 -0
- package/dist/__tests__/client-id-tracker.test.js +137 -0
- package/dist/__tests__/commands/new-atomic-commands.test.d.ts +1 -0
- package/dist/__tests__/commands/new-atomic-commands.test.js +502 -0
- package/dist/__tests__/commands/order-intent.test.d.ts +1 -0
- package/dist/__tests__/commands/order-intent.test.js +600 -0
- package/dist/__tests__/commands/trade-commands.test.d.ts +1 -0
- package/dist/__tests__/commands/trade-commands.test.js +821 -0
- package/dist/__tests__/config.test.d.ts +1 -0
- package/dist/__tests__/config.test.js +86 -0
- package/dist/__tests__/cross-chain-margin.test.d.ts +1 -0
- package/dist/__tests__/cross-chain-margin.test.js +287 -0
- package/dist/__tests__/dex-asset-map.test.d.ts +1 -0
- package/dist/__tests__/dex-asset-map.test.js +191 -0
- package/dist/__tests__/errors.test.d.ts +1 -0
- package/dist/__tests__/errors.test.js +110 -0
- package/dist/__tests__/event-stream.test.d.ts +1 -0
- package/dist/__tests__/event-stream.test.js +276 -0
- package/dist/__tests__/exchanges/interface.test.d.ts +1 -0
- package/dist/__tests__/exchanges/interface.test.js +132 -0
- package/dist/__tests__/exchanges/mock-adapter.d.ts +69 -0
- package/dist/__tests__/exchanges/mock-adapter.js +137 -0
- package/dist/__tests__/execution-log.test.d.ts +1 -0
- package/dist/__tests__/execution-log.test.js +106 -0
- package/dist/__tests__/funding-calc.test.d.ts +1 -0
- package/dist/__tests__/funding-calc.test.js +71 -0
- package/dist/__tests__/funding-history.test.d.ts +1 -0
- package/dist/__tests__/funding-history.test.js +343 -0
- package/dist/__tests__/funding-rates.test.d.ts +1 -0
- package/dist/__tests__/funding-rates.test.js +342 -0
- package/dist/__tests__/funding.test.d.ts +1 -0
- package/dist/__tests__/funding.test.js +173 -0
- package/dist/__tests__/gap-logic.test.d.ts +1 -0
- package/dist/__tests__/gap-logic.test.js +43 -0
- package/dist/__tests__/hip3-dex.test.d.ts +1 -0
- package/dist/__tests__/hip3-dex.test.js +234 -0
- package/dist/__tests__/integration/agent-features.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/agent-features.integration.test.js +553 -0
- package/dist/__tests__/integration/atomic-commands.integration.test.d.ts +13 -0
- package/dist/__tests__/integration/atomic-commands.integration.test.js +246 -0
- package/dist/__tests__/integration/bridge-simulation.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/bridge-simulation.integration.test.js +453 -0
- package/dist/__tests__/integration/bridge-strict.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/bridge-strict.integration.test.js +812 -0
- package/dist/__tests__/integration/bridge.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/bridge.integration.test.js +309 -0
- package/dist/__tests__/integration/cli-e2e.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/cli-e2e.integration.test.js +202 -0
- package/dist/__tests__/integration/dex-arb.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/dex-arb.integration.test.js +116 -0
- package/dist/__tests__/integration/envelope-consistency.integration.test.d.ts +13 -0
- package/dist/__tests__/integration/envelope-consistency.integration.test.js +205 -0
- package/dist/__tests__/integration/hip3-dex.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/hip3-dex.integration.test.js +147 -0
- package/dist/__tests__/integration/hyperliquid.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/hyperliquid.integration.test.js +79 -0
- package/dist/__tests__/integration/lighter.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/lighter.integration.test.js +53 -0
- package/dist/__tests__/integration/new-commands-e2e.integration.test.d.ts +9 -0
- package/dist/__tests__/integration/new-commands-e2e.integration.test.js +236 -0
- package/dist/__tests__/integration/order-verification.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/order-verification.integration.test.js +321 -0
- package/dist/__tests__/integration/pacifica.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/pacifica.integration.test.js +75 -0
- package/dist/__tests__/integration/response-shapes.integration.test.d.ts +1 -0
- package/dist/__tests__/integration/response-shapes.integration.test.js +278 -0
- package/dist/__tests__/liquidity.test.d.ts +1 -0
- package/dist/__tests__/liquidity.test.js +225 -0
- package/dist/__tests__/plan-executor.test.d.ts +1 -0
- package/dist/__tests__/plan-executor.test.js +314 -0
- package/dist/__tests__/position-history.test.d.ts +1 -0
- package/dist/__tests__/position-history.test.js +367 -0
- package/dist/__tests__/retry.test.d.ts +1 -0
- package/dist/__tests__/retry.test.js +310 -0
- package/dist/__tests__/risk-assessment.test.d.ts +1 -0
- package/dist/__tests__/risk-assessment.test.js +145 -0
- package/dist/__tests__/security-adversarial.test.d.ts +1 -0
- package/dist/__tests__/security-adversarial.test.js +574 -0
- package/dist/__tests__/strategies.test.d.ts +1 -0
- package/dist/__tests__/strategies.test.js +539 -0
- package/dist/__tests__/trade-execution.test.d.ts +1 -0
- package/dist/__tests__/trade-execution.test.js +129 -0
- package/dist/__tests__/trade-validator.test.d.ts +1 -0
- package/dist/__tests__/trade-validator.test.js +655 -0
- package/dist/__tests__/utils.test.d.ts +1 -0
- package/dist/__tests__/utils.test.js +76 -0
- package/dist/api/public/hyperliquid.d.ts +18 -0
- package/dist/api/public/hyperliquid.js +82 -0
- package/dist/api/public/index.d.ts +8 -0
- package/dist/api/public/index.js +8 -0
- package/dist/api/public/lighter.d.ts +24 -0
- package/dist/api/public/lighter.js +100 -0
- package/dist/api/public/pacifica.d.ts +17 -0
- package/dist/api/public/pacifica.js +54 -0
- package/dist/api/public/urls.d.ts +12 -0
- package/dist/api/public/urls.js +33 -0
- package/dist/arb/history-stats.d.ts +44 -0
- package/dist/arb/history-stats.js +135 -0
- package/dist/arb/index.d.ts +4 -0
- package/dist/arb/index.js +4 -0
- package/dist/arb/sizing.d.ts +23 -0
- package/dist/arb/sizing.js +96 -0
- package/dist/arb/state.d.ts +51 -0
- package/dist/arb/state.js +112 -0
- package/dist/arb/utils.d.ts +81 -0
- package/dist/arb/utils.js +267 -0
- package/dist/arb-history-stats.d.ts +5 -0
- package/dist/arb-history-stats.js +5 -0
- package/dist/arb-sizing.d.ts +5 -0
- package/dist/arb-sizing.js +5 -0
- package/dist/arb-state.d.ts +5 -0
- package/dist/arb-state.js +5 -0
- package/dist/arb-utils.d.ts +5 -0
- package/dist/arb-utils.js +5 -0
- package/dist/bot/conditions.d.ts +32 -0
- package/dist/bot/conditions.js +141 -0
- package/dist/bot/config.d.ts +76 -0
- package/dist/bot/config.js +160 -0
- package/dist/bot/engine.d.ts +8 -0
- package/dist/bot/engine.js +519 -0
- package/dist/bot/presets.d.ts +11 -0
- package/dist/bot/presets.js +296 -0
- package/dist/bridge-engine.d.ts +133 -0
- package/dist/bridge-engine.js +1487 -0
- package/dist/cache.d.ts +25 -0
- package/dist/cache.js +99 -0
- package/dist/cli-spec.d.ts +50 -0
- package/dist/cli-spec.js +75 -0
- package/dist/client-id-tracker.d.ts +25 -0
- package/dist/client-id-tracker.js +76 -0
- package/dist/commands/account.d.ts +3 -0
- package/dist/commands/account.js +425 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.js +386 -0
- package/dist/commands/alert.d.ts +2 -0
- package/dist/commands/alert.js +421 -0
- package/dist/commands/analytics.d.ts +3 -0
- package/dist/commands/analytics.js +311 -0
- package/dist/commands/arb/index.d.ts +3 -0
- package/dist/commands/arb/index.js +921 -0
- package/dist/commands/arb-auto.d.ts +54 -0
- package/dist/commands/arb-auto.js +1328 -0
- package/dist/commands/arb-manage.d.ts +5 -0
- package/dist/commands/arb-manage.js +5 -0
- package/dist/commands/arb.d.ts +2 -0
- package/dist/commands/arb.js +347 -0
- package/dist/commands/backtest.d.ts +2 -0
- package/dist/commands/backtest.js +327 -0
- package/dist/commands/bot.d.ts +3 -0
- package/dist/commands/bot.js +412 -0
- package/dist/commands/bridge.d.ts +2 -0
- package/dist/commands/bridge.js +396 -0
- package/dist/commands/dashboard.d.ts +3 -0
- package/dist/commands/dashboard.js +176 -0
- package/dist/commands/deposit.d.ts +4 -0
- package/dist/commands/deposit.js +573 -0
- package/dist/commands/dex.d.ts +3 -0
- package/dist/commands/dex.js +114 -0
- package/dist/commands/env.d.ts +2 -0
- package/dist/commands/env.js +136 -0
- package/dist/commands/funding.d.ts +2 -0
- package/dist/commands/funding.js +347 -0
- package/dist/commands/gap.d.ts +2 -0
- package/dist/commands/gap.js +305 -0
- package/dist/commands/health.d.ts +2 -0
- package/dist/commands/health.js +67 -0
- package/dist/commands/history.d.ts +2 -0
- package/dist/commands/history.js +235 -0
- package/dist/commands/init.d.ts +15 -0
- package/dist/commands/init.js +266 -0
- package/dist/commands/jobs.d.ts +2 -0
- package/dist/commands/jobs.js +133 -0
- package/dist/commands/manage.d.ts +4 -0
- package/dist/commands/manage.js +309 -0
- package/dist/commands/market.d.ts +3 -0
- package/dist/commands/market.js +225 -0
- package/dist/commands/plan.d.ts +3 -0
- package/dist/commands/plan.js +95 -0
- package/dist/commands/portfolio.d.ts +3 -0
- package/dist/commands/portfolio.js +169 -0
- package/dist/commands/rebalance.d.ts +3 -0
- package/dist/commands/rebalance.js +293 -0
- package/dist/commands/risk.d.ts +3 -0
- package/dist/commands/risk.js +169 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.js +202 -0
- package/dist/commands/settings.d.ts +2 -0
- package/dist/commands/settings.js +102 -0
- package/dist/commands/stream.d.ts +5 -0
- package/dist/commands/stream.js +123 -0
- package/dist/commands/trade.d.ts +3 -0
- package/dist/commands/trade.js +1273 -0
- package/dist/commands/wallet.d.ts +14 -0
- package/dist/commands/wallet.js +602 -0
- package/dist/commands/withdraw.d.ts +3 -0
- package/dist/commands/withdraw.js +187 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +68 -0
- package/dist/cross-chain-margin.d.ts +46 -0
- package/dist/cross-chain-margin.js +107 -0
- package/dist/dashboard/server.d.ts +80 -0
- package/dist/dashboard/server.js +340 -0
- package/dist/dashboard/ui.d.ts +4 -0
- package/dist/dashboard/ui.js +538 -0
- package/dist/dashboard/ws-feeds.d.ts +29 -0
- package/dist/dashboard/ws-feeds.js +660 -0
- package/dist/dex-asset-map.d.ts +80 -0
- package/dist/dex-asset-map.js +201 -0
- package/dist/errors.d.ts +109 -0
- package/dist/errors.js +84 -0
- package/dist/event-stream.d.ts +25 -0
- package/dist/event-stream.js +168 -0
- package/dist/exchanges/hyperliquid.d.ts +212 -0
- package/dist/exchanges/hyperliquid.js +931 -0
- package/dist/exchanges/interface.d.ts +95 -0
- package/dist/exchanges/interface.js +5 -0
- package/dist/exchanges/lighter.d.ts +159 -0
- package/dist/exchanges/lighter.js +793 -0
- package/dist/exchanges/pacifica.d.ts +51 -0
- package/dist/exchanges/pacifica.js +248 -0
- package/dist/execution-log.d.ts +36 -0
- package/dist/execution-log.js +102 -0
- package/dist/funding/history.d.ts +63 -0
- package/dist/funding/history.js +266 -0
- package/dist/funding/index.d.ts +3 -0
- package/dist/funding/index.js +3 -0
- package/dist/funding/normalize.d.ts +39 -0
- package/dist/funding/normalize.js +66 -0
- package/dist/funding/rates.d.ts +45 -0
- package/dist/funding/rates.js +172 -0
- package/dist/funding-history.d.ts +5 -0
- package/dist/funding-history.js +5 -0
- package/dist/funding-rates.d.ts +5 -0
- package/dist/funding-rates.js +5 -0
- package/dist/funding.d.ts +5 -0
- package/dist/funding.js +5 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +458 -0
- package/dist/jobs.d.ts +37 -0
- package/dist/jobs.js +152 -0
- package/dist/liquidity.d.ts +34 -0
- package/dist/liquidity.js +100 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.js +1206 -0
- package/dist/pacifica/client.d.ts +111 -0
- package/dist/pacifica/client.js +310 -0
- package/dist/pacifica/constants.d.ts +27 -0
- package/dist/pacifica/constants.js +47 -0
- package/dist/pacifica/deposit.d.ts +14 -0
- package/dist/pacifica/deposit.js +78 -0
- package/dist/pacifica/index.d.ts +6 -0
- package/dist/pacifica/index.js +11 -0
- package/dist/pacifica/signing.d.ts +49 -0
- package/dist/pacifica/signing.js +97 -0
- package/dist/pacifica/types/account.d.ts +42 -0
- package/dist/pacifica/types/account.js +1 -0
- package/dist/pacifica/types/index.d.ts +6 -0
- package/dist/pacifica/types/index.js +6 -0
- package/dist/pacifica/types/lake.d.ts +18 -0
- package/dist/pacifica/types/lake.js +1 -0
- package/dist/pacifica/types/market.d.ts +64 -0
- package/dist/pacifica/types/market.js +1 -0
- package/dist/pacifica/types/order.d.ts +92 -0
- package/dist/pacifica/types/order.js +1 -0
- package/dist/pacifica/types/position.d.ts +25 -0
- package/dist/pacifica/types/position.js +1 -0
- package/dist/pacifica/types/ws.d.ts +34 -0
- package/dist/pacifica/types/ws.js +41 -0
- package/dist/pacifica/ws-client.d.ts +42 -0
- package/dist/pacifica/ws-client.js +180 -0
- package/dist/plan-executor.d.ts +48 -0
- package/dist/plan-executor.js +280 -0
- package/dist/position-history.d.ts +68 -0
- package/dist/position-history.js +222 -0
- package/dist/rebalance.d.ts +64 -0
- package/dist/rebalance.js +142 -0
- package/dist/retry.d.ts +74 -0
- package/dist/retry.js +129 -0
- package/dist/risk.d.ts +48 -0
- package/dist/risk.js +156 -0
- package/dist/settings.d.ts +19 -0
- package/dist/settings.js +45 -0
- package/dist/shared-api.d.ts +5 -0
- package/dist/shared-api.js +5 -0
- package/dist/strategies/dca.d.ts +25 -0
- package/dist/strategies/dca.js +114 -0
- package/dist/strategies/funding-arb.d.ts +15 -0
- package/dist/strategies/funding-arb.js +281 -0
- package/dist/strategies/grid.d.ts +34 -0
- package/dist/strategies/grid.js +185 -0
- package/dist/strategies/trailing-stop.d.ts +17 -0
- package/dist/strategies/trailing-stop.js +121 -0
- package/dist/strategies/twap.d.ts +20 -0
- package/dist/strategies/twap.js +78 -0
- package/dist/trade-validator.d.ts +39 -0
- package/dist/trade-validator.js +154 -0
- package/dist/utils.d.ts +38 -0
- package/dist/utils.js +110 -0
- package/package.json +63 -0
- package/skills/perp-cli/SKILL.md +149 -0
- package/skills/perp-cli/references/commands.md +143 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perp-cli
|
|
3
|
+
description: "Multi-DEX perpetual futures trading CLI for Pacifica (Solana), Hyperliquid (EVM), and Lighter (Ethereum). Use when user asks to trade perps, check funding rates, bridge USDC, manage positions, scan arbitrage opportunities, or mentions perp-cli, hypurrquant, Pacifica, Hyperliquid, or Lighter exchanges. Also use when user says 'set up perp trading', 'check my positions', 'buy BTC perps', 'funding rate arb', 'bridge USDC', or 'deposit to exchange'."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: hypurrquant
|
|
7
|
+
version: "0.3.3"
|
|
8
|
+
mcp-server: perp-cli
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# perp-cli Agent Guide
|
|
12
|
+
|
|
13
|
+
Multi-DEX perpetual futures CLI — Pacifica (Solana), Hyperliquid (HyperEVM), Lighter (Ethereum).
|
|
14
|
+
|
|
15
|
+
## Critical Rules
|
|
16
|
+
|
|
17
|
+
1. **NEVER use interactive commands.** Do NOT run `perp init`. Always use non-interactive commands with `--json`.
|
|
18
|
+
2. **Always use `--json`** on every command for structured output.
|
|
19
|
+
3. **NEVER trade without user confirmation.** Show order details and wait for explicit approval.
|
|
20
|
+
4. **Verify wallet before any operation.** Run `perp --json wallet show` first.
|
|
21
|
+
|
|
22
|
+
## Step 1: Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g perp-cli
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Step 2: Configure Wallet
|
|
29
|
+
|
|
30
|
+
CRITICAL: Do NOT use `perp init` — it is interactive and will hang.
|
|
31
|
+
|
|
32
|
+
**If user provides a private key:**
|
|
33
|
+
```bash
|
|
34
|
+
perp --json wallet set hl <KEY> # Hyperliquid (aliases: hl, hyperliquid)
|
|
35
|
+
perp --json wallet set pac <KEY> # Pacifica (aliases: pac, pacifica)
|
|
36
|
+
perp --json wallet set lt <KEY> # Lighter (aliases: lt, lighter)
|
|
37
|
+
perp --json wallet set hl <KEY> --default # also set as default exchange
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**If user needs a new wallet:**
|
|
41
|
+
```bash
|
|
42
|
+
perp --json wallet generate evm # creates EVM wallet for Hyperliquid + Lighter
|
|
43
|
+
perp --json wallet generate solana # creates Solana wallet for Pacifica
|
|
44
|
+
# IMPORTANT: Tell user the generated address so they can fund it with USDC!
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Verify setup (ALWAYS do this after any wallet command):**
|
|
48
|
+
```bash
|
|
49
|
+
perp --json wallet show
|
|
50
|
+
# Success: { "ok": true, "data": { "exchanges": [{ "exchange": "hyperliquid", "address": "0x..." }] } }
|
|
51
|
+
# Empty: { "ok": true, "data": { "exchanges": [] } } ← wallet not configured yet
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Step 3: Use
|
|
55
|
+
|
|
56
|
+
### Exchange selection
|
|
57
|
+
```bash
|
|
58
|
+
perp --json -e hyperliquid ... # Hyperliquid (EVM)
|
|
59
|
+
perp --json -e pacifica ... # Pacifica (Solana)
|
|
60
|
+
perp --json -e lighter ... # Lighter (Ethereum)
|
|
61
|
+
```
|
|
62
|
+
If a default exchange is set, `-e` can be omitted.
|
|
63
|
+
|
|
64
|
+
### Common operations
|
|
65
|
+
```bash
|
|
66
|
+
perp --json wallet show # check configured wallets
|
|
67
|
+
perp --json -e hl account info # balance & margin
|
|
68
|
+
perp --json -e hl account positions # open positions
|
|
69
|
+
perp --json -e hl market list # available markets
|
|
70
|
+
perp --json -e hl market mid BTC # BTC mid price
|
|
71
|
+
perp --json arb rates # cross-exchange funding rates
|
|
72
|
+
perp --json portfolio # unified multi-exchange view
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Trade execution (MANDATORY checklist)
|
|
76
|
+
```
|
|
77
|
+
1. perp --json -e <EX> account info → verify balance
|
|
78
|
+
2. perp --json -e <EX> market mid <SYM> → current price
|
|
79
|
+
3. perp --json -e <EX> trade check <SYM> <SIDE> <SIZE> → pre-flight validation
|
|
80
|
+
4. [Show order details to user, get explicit confirmation]
|
|
81
|
+
5. perp --json -e <EX> trade market <SYM> <SIDE> <SIZE> → execute
|
|
82
|
+
6. perp --json -e <EX> account positions → verify result
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
For full command reference, see `references/commands.md`.
|
|
86
|
+
|
|
87
|
+
## Response Format
|
|
88
|
+
|
|
89
|
+
All JSON responses follow this envelope:
|
|
90
|
+
```json
|
|
91
|
+
{ "ok": true, "data": { ... }, "meta": { "timestamp": "..." } }
|
|
92
|
+
{ "ok": false, "error": { "code": "ERROR_CODE", "message": "...", "retryable": true } }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Error Handling
|
|
96
|
+
|
|
97
|
+
| Code | Retryable | Action |
|
|
98
|
+
|------|-----------|--------|
|
|
99
|
+
| INSUFFICIENT_BALANCE | No | Report, suggest deposit |
|
|
100
|
+
| MARGIN_INSUFFICIENT | No | Suggest lower leverage or smaller size |
|
|
101
|
+
| SYMBOL_NOT_FOUND | No | Run `market list` for valid symbols |
|
|
102
|
+
| SIGNATURE_FAILED | No | Run `wallet show` to check key configuration |
|
|
103
|
+
| RATE_LIMITED | Yes | Wait 5s, retry once |
|
|
104
|
+
| EXCHANGE_UNREACHABLE | Yes | Wait 5s, retry up to 3 times |
|
|
105
|
+
| TIMEOUT | Yes | Retry, check network |
|
|
106
|
+
|
|
107
|
+
## Safety Guardrails
|
|
108
|
+
|
|
109
|
+
- NEVER execute trades without user confirmation
|
|
110
|
+
- Warn if single trade exceeds 50% of available balance
|
|
111
|
+
- Warn if leverage exceeds 10x
|
|
112
|
+
- Double-confirm bridge transfers over $1000
|
|
113
|
+
|
|
114
|
+
## Troubleshooting
|
|
115
|
+
|
|
116
|
+
### "No private key configured for <exchange>"
|
|
117
|
+
The wallet is not set up. Fix:
|
|
118
|
+
```bash
|
|
119
|
+
perp --json wallet set <exchange> <key> # if user has a key
|
|
120
|
+
perp --json wallet generate evm # if user needs a new EVM wallet
|
|
121
|
+
perp --json wallet generate solana # if user needs a new Solana wallet
|
|
122
|
+
perp --json wallet show # verify it worked
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Command hangs or waits for input
|
|
126
|
+
You used an interactive command. NEVER use `perp init` or any command without `--json`. Cancel and retry with `--json`.
|
|
127
|
+
|
|
128
|
+
### Generated wallet has zero balance
|
|
129
|
+
New wallets start empty. Show the address to the user and ask them to fund it with USDC before trading.
|
|
130
|
+
|
|
131
|
+
## MCP Server (Advisor Mode)
|
|
132
|
+
|
|
133
|
+
For read-only access without CLI execution:
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"mcpServers": {
|
|
137
|
+
"perp-cli": {
|
|
138
|
+
"command": "npx",
|
|
139
|
+
"args": ["-y", "perp-cli", "mcp"],
|
|
140
|
+
"env": {
|
|
141
|
+
"HL_PRIVATE_KEY": "<evm-hex>",
|
|
142
|
+
"PACIFICA_PRIVATE_KEY": "<solana-base58>"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**MCP Tools:** get_markets, get_orderbook, get_funding_rates, get_prices, get_balance, get_positions, get_open_orders, portfolio, arb_scan, health_check, suggest_command, explain_command
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# perp-cli Command Reference
|
|
2
|
+
|
|
3
|
+
All commands support `--json` for structured output. Always use `--json` when calling from an agent.
|
|
4
|
+
|
|
5
|
+
## Market Data (read-only, safe)
|
|
6
|
+
```bash
|
|
7
|
+
perp --json market list # all markets with prices, funding, volume
|
|
8
|
+
perp --json market prices # cross-exchange price comparison
|
|
9
|
+
perp --json market mid <SYMBOL> # mid price (fast)
|
|
10
|
+
perp --json market info <SYMBOL> # tick size, min order, max leverage
|
|
11
|
+
perp --json market book <SYMBOL> # orderbook (bids/asks)
|
|
12
|
+
perp --json market trades <SYMBOL> # recent trades
|
|
13
|
+
perp --json market funding <SYMBOL> # funding rate history
|
|
14
|
+
perp --json market kline <SYM> <INTERVAL> # OHLCV candles (1m,5m,15m,1h,4h,1d)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Account (read-only, safe)
|
|
18
|
+
```bash
|
|
19
|
+
perp --json account info # balance, equity, margin, PnL
|
|
20
|
+
perp --json account positions # open positions
|
|
21
|
+
perp --json account orders # open/pending orders
|
|
22
|
+
perp --json account history # order history
|
|
23
|
+
perp --json account trades # trade fill history
|
|
24
|
+
perp --json account funding-history # funding payments
|
|
25
|
+
perp --json account pnl # profit & loss
|
|
26
|
+
perp --json account margin <SYMBOL> # position margin info
|
|
27
|
+
perp --json status # combined: balance + positions + orders
|
|
28
|
+
perp --json portfolio # cross-exchange unified view
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Trading (requires user confirmation)
|
|
32
|
+
```bash
|
|
33
|
+
# Market orders
|
|
34
|
+
perp --json trade market <SYMBOL> <buy|sell> <SIZE>
|
|
35
|
+
perp --json trade buy <SYMBOL> <SIZE> # shorthand market buy
|
|
36
|
+
perp --json trade sell <SYMBOL> <SIZE> # shorthand market sell
|
|
37
|
+
|
|
38
|
+
# Limit orders
|
|
39
|
+
perp --json trade limit <SYMBOL> <buy|sell> <PRICE> <SIZE>
|
|
40
|
+
|
|
41
|
+
# Stop orders
|
|
42
|
+
perp --json trade stop <SYMBOL> <SIDE> <STOP_PRICE> <SIZE>
|
|
43
|
+
perp --json trade tpsl <SYMBOL> <SIDE> --tp <PRICE> --sl <PRICE>
|
|
44
|
+
|
|
45
|
+
# Order management
|
|
46
|
+
perp --json trade edit <SYMBOL> <ORDER_ID> <PRICE> <SIZE>
|
|
47
|
+
perp --json trade cancel <SYMBOL> <ORDER_ID>
|
|
48
|
+
perp --json trade cancel-all
|
|
49
|
+
perp --json trade check <SYMBOL> <SIDE> <SIZE> # pre-flight validation (no execution)
|
|
50
|
+
|
|
51
|
+
# Position management
|
|
52
|
+
perp --json trade close <SYMBOL> # close single position
|
|
53
|
+
perp --json trade close-all # close all positions
|
|
54
|
+
perp --json trade flatten # cancel all orders + close all positions
|
|
55
|
+
perp --json trade reduce <SYMBOL> <PCT> # reduce position by percentage
|
|
56
|
+
perp --json trade leverage <SYMBOL> <N> # set leverage
|
|
57
|
+
|
|
58
|
+
# Advanced orders
|
|
59
|
+
perp --json trade scale-tp <SYMBOL> --levels '<PRICE1>:<PCT>,<PRICE2>:<PCT>'
|
|
60
|
+
perp --json trade scale-in <SYMBOL> <SIDE> --levels '<PRICE1>:<SIZE>,<PRICE2>:<SIZE>'
|
|
61
|
+
perp --json trade trailing-stop <SYMBOL> # trailing stop with callback %
|
|
62
|
+
perp --json trade twap <SYMBOL> <SIDE> <SIZE> <DURATION>
|
|
63
|
+
perp --json trade pnl-track # real-time PnL tracker
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Deposit & Withdraw
|
|
67
|
+
```bash
|
|
68
|
+
perp --json deposit pacifica <AMOUNT>
|
|
69
|
+
perp --json deposit hyperliquid <AMOUNT>
|
|
70
|
+
perp --json deposit lighter ethereum <AMOUNT> # L1 direct (min 1 USDC)
|
|
71
|
+
perp --json deposit lighter cctp arbitrum <AMOUNT> # CCTP (min 5 USDC)
|
|
72
|
+
perp --json deposit lighter info # all Lighter deposit routes
|
|
73
|
+
perp --json withdraw pacifica <AMOUNT>
|
|
74
|
+
perp --json withdraw hyperliquid <AMOUNT>
|
|
75
|
+
perp --json deposit info # deposit instructions
|
|
76
|
+
perp --json withdraw info # withdrawal instructions
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Bridge (Cross-chain USDC)
|
|
80
|
+
```bash
|
|
81
|
+
perp --json bridge chains # supported chains
|
|
82
|
+
perp --json bridge quote --from <CHAIN> --to <CHAIN> --amount <AMT>
|
|
83
|
+
perp --json bridge send --from <CHAIN> --to <CHAIN> --amount <AMT>
|
|
84
|
+
perp --json bridge exchange --from <EX> --to <EX> --amount <AMT>
|
|
85
|
+
perp --json bridge status <ORDER_ID>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Arbitrage
|
|
89
|
+
```bash
|
|
90
|
+
perp --json arb rates # compare funding rates across exchanges
|
|
91
|
+
perp --json arb scan --min <BPS> # find opportunities (>N bps spread)
|
|
92
|
+
perp --json arb funding # detailed funding analysis
|
|
93
|
+
perp --json arb dex # HIP-3 cross-dex arb (Hyperliquid)
|
|
94
|
+
perp --json gap show # cross-exchange price gaps
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Wallet Management
|
|
98
|
+
```bash
|
|
99
|
+
perp --json wallet set hl <KEY> # set Hyperliquid key
|
|
100
|
+
perp --json wallet set pac <KEY> # set Pacifica key
|
|
101
|
+
perp --json wallet set lt <KEY> # set Lighter key
|
|
102
|
+
perp --json wallet set hl <KEY> --default # set key + make default exchange
|
|
103
|
+
perp --json wallet show # show configured wallets (public addresses)
|
|
104
|
+
perp --json wallet generate evm # generate new EVM wallet
|
|
105
|
+
perp --json wallet generate solana # generate new Solana wallet
|
|
106
|
+
perp --json wallet balance # on-chain balance
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Risk & Analytics
|
|
110
|
+
```bash
|
|
111
|
+
perp --json risk status # portfolio risk overview
|
|
112
|
+
perp --json risk limits # position limits
|
|
113
|
+
perp --json health # exchange connectivity & latency
|
|
114
|
+
perp --json analytics summary # trading performance
|
|
115
|
+
perp --json analytics pnl # P&L breakdown
|
|
116
|
+
perp --json history list # execution audit trail
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Automated Strategies
|
|
120
|
+
```bash
|
|
121
|
+
perp --json run grid <SYMBOL> --range <PCT> --grids <N> --size <USD>
|
|
122
|
+
perp --json run dca <SYMBOL> <SIDE> <AMOUNT> <INTERVAL>
|
|
123
|
+
perp --json run funding-arb # auto funding arb
|
|
124
|
+
perp --json bot quick-grid <SYMBOL> # quick grid bot
|
|
125
|
+
perp --json bot quick-arb # quick arb bot
|
|
126
|
+
perp --json jobs list # list running jobs
|
|
127
|
+
perp --json jobs stop <ID> # stop a job
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Alerts
|
|
131
|
+
```bash
|
|
132
|
+
perp --json alert add # add price/funding/pnl/liquidation alert
|
|
133
|
+
perp --json alert list # list active alerts
|
|
134
|
+
perp --json alert remove <ID> # remove alert
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Command Discovery
|
|
138
|
+
```bash
|
|
139
|
+
perp schema # Full CLI schema as JSON
|
|
140
|
+
perp agent capabilities # High-level capability list
|
|
141
|
+
perp agent plan "<goal>" # Suggest command sequence for a goal
|
|
142
|
+
perp agent ping # Health check all exchanges
|
|
143
|
+
```
|