{"_id":"@2oolkit/grvt-cli","_rev":"5-26d518cbe8e6df655625c24db6be1b9c","name":"@2oolkit/grvt-cli","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@2oolkit/grvt-cli","version":"0.1.0","keywords":["grvt","trading","crypto","derivatives","exchange","cli"],"author":{"name":"haeminmoon"},"license":"MIT","_id":"@2oolkit/grvt-cli@0.1.0","maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"homepage":"https://github.com/haeminmoon/grvt-cli#readme","bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"bin":{"grvt-cli":"dist/index.js"},"dist":{"shasum":"936412bac9a94130716369939418d1437bd81c2d","tarball":"https://registry.npmjs.org/@2oolkit/grvt-cli/-/grvt-cli-0.1.0.tgz","fileCount":2,"integrity":"sha512-hXQlKpSPDRyDTdpZrm5T/iLzcbBXEW/3kaAKtJtaOsKyRlo1Kf8Da/mdU+faPrpZqkkmoVp0ljRSkccJM9C+rw==","signatures":[{"sig":"MEYCIQDbGhHvybVUnE+6VnpBswgJZ3argrNXzG0KlqoEg8w88AIhALLsh0wOs0M6fDdbjq3Gsg+DUaTzx3MidRubqHMhtnY3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45900},"main":"dist/index.js","type":"commonjs","engines":{"node":">=20"},"scripts":{"dev":"ts-node src/index.ts","lint":"tsc --noEmit","test":"jest --verbose","build":"tsup","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"haeminmoon","email":"mym0846@gmail.com"},"repository":{"url":"git+https://github.com/haeminmoon/grvt-cli.git","type":"git"},"_npmVersion":"11.4.2","description":"CLI toolkit for GRVT derivatives exchange","directories":{},"_nodeVersion":"24.4.1","dependencies":{"ethers":"^6.13.5","@grvt/sdk":"^0.0.4","commander":"^13.1.0","@grvt/client":"^1.6.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^17.3.1","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grvt-cli_0.1.0_1773419331541_0.3663227710906194","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@2oolkit/grvt-cli","version":"0.1.1","keywords":["grvt","trading","crypto","derivatives","exchange","cli"],"author":{"name":"haeminmoon"},"license":"MIT","_id":"@2oolkit/grvt-cli@0.1.1","maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"homepage":"https://github.com/haeminmoon/grvt-cli#readme","bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"bin":{"grvt-cli":"dist/index.js"},"dist":{"shasum":"76af2268a80e592690c4993322baeed33f2806d8","tarball":"https://registry.npmjs.org/@2oolkit/grvt-cli/-/grvt-cli-0.1.1.tgz","fileCount":3,"integrity":"sha512-FbTUPWbUkKj9wchV+E7uuB7L3p5/FCphSlq3CxZDnddyd1Amu4Ac1fC5HkSvUUkEt2Mp9sAPsRhxN5bISsjo0Q==","signatures":[{"sig":"MEUCIQCQcb3EPGlFahHfQAVH+KvIOFmFyz8se9+BFWqe/6Ap2gIgHohTM9+F57DbAuSFyP9NeJo8mtoEOmMrkccrt2kbjLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50683},"main":"dist/index.js","type":"commonjs","engines":{"node":">=20"},"scripts":{"dev":"ts-node src/index.ts","lint":"tsc --noEmit","test":"jest --verbose","build":"tsup","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"haeminmoon","email":"mym0846@gmail.com"},"repository":{"url":"git+https://github.com/haeminmoon/grvt-cli.git","type":"git"},"_npmVersion":"11.4.2","description":"CLI toolkit for GRVT derivatives exchange","directories":{},"_nodeVersion":"24.4.1","dependencies":{"ethers":"^6.13.5","@grvt/sdk":"^0.0.4","commander":"^13.1.0","@grvt/client":"^1.6.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^17.3.1","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grvt-cli_0.1.1_1773419707754_0.5877021540951299","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@2oolkit/grvt-cli","version":"0.1.2","keywords":["grvt","trading","crypto","derivatives","exchange","cli","mcp","model-context-protocol","ai-agent","perpetuals"],"author":{"name":"haeminmoon"},"license":"MIT","_id":"@2oolkit/grvt-cli@0.1.2","maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"homepage":"https://github.com/haeminmoon/grvt-cli#readme","bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"bin":{"grvt-cli":"dist/index.js","grvt-mcp":"dist/mcp.js"},"dist":{"shasum":"35ae7fb8b39ab979895f1a5fd0fe97eda3ef7fc9","tarball":"https://registry.npmjs.org/@2oolkit/grvt-cli/-/grvt-cli-0.1.2.tgz","fileCount":4,"integrity":"sha512-u85TSpcp/DEc9D1lZVmxumKwkna0nHBJa7RLSCpIB+OcSjawkg+YSl16z7MecoTBWw4vbFvCyxL79q0sH2QJTA==","signatures":[{"sig":"MEQCIF+QxRffY9u4Je7JgNRqlYTZCtZd76RMC9axtU4NmPdsAiAF0MLlugAzwDkYMsXwxGmjtc8YIGcKOjfQkzyPEznvJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89635},"main":"dist/index.js","type":"commonjs","engines":{"node":">=20"},"gitHead":"0a3f76f7f65245933a6ee7715fa561f02239ee6f","scripts":{"dev":"ts-node src/index.ts","lint":"tsc --noEmit","test":"jest --verbose","build":"tsup","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"haeminmoon","email":"mym0846@gmail.com"},"repository":{"url":"git+https://github.com/haeminmoon/grvt-cli.git","type":"git"},"_npmVersion":"11.4.2","description":"CLI & MCP server for GRVT derivatives exchange — trade perpetuals, manage orders, and query market data","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^4.3.6","ethers":"^6.13.5","@grvt/sdk":"^0.0.4","commander":"^13.1.0","@grvt/client":"^1.6.5","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^17.3.1","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grvt-cli_0.1.2_1773561211133_0.38343714692774067","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@2oolkit/grvt-cli","version":"0.1.3","keywords":["grvt","trading","crypto","derivatives","exchange","cli","mcp","model-context-protocol","ai-agent","perpetuals"],"author":{"name":"haeminmoon"},"license":"MIT","_id":"@2oolkit/grvt-cli@0.1.3","maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"homepage":"https://github.com/haeminmoon/grvt-cli#readme","bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"bin":{"grvt-cli":"dist/index.js","grvt-mcp":"dist/mcp.js"},"dist":{"shasum":"89dc35bc2bffedad63a972c4942a3378e648a000","tarball":"https://registry.npmjs.org/@2oolkit/grvt-cli/-/grvt-cli-0.1.3.tgz","fileCount":4,"integrity":"sha512-O/kgJaseSbzrXiERLad/6qx60dSF5HMVtc4UPOS0/HJNeMp1StYbhUhF+BssTD7psdpbg1GB6T41qk+WxjUw5A==","signatures":[{"sig":"MEUCIEp0+0jrCLVMLM2SEnRdoI6um9uBjHxFOiAGqHPccUj4AiEA5J25bhMgiG8adZsOpoH0FIKqftoD/zEiwiN4dvHoaOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108219},"main":"dist/index.js","type":"commonjs","engines":{"node":">=20"},"scripts":{"dev":"ts-node src/index.ts","lint":"tsc --noEmit","test":"jest --verbose","build":"tsup","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"haeminmoon","email":"mym0846@gmail.com"},"repository":{"url":"git+https://github.com/haeminmoon/grvt-cli.git","type":"git"},"_npmVersion":"11.4.2","description":"CLI & MCP server for GRVT derivatives exchange — trade perpetuals, manage orders, and query market data","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^4.3.6","ethers":"^6.13.5","@grvt/sdk":"^0.0.4","commander":"^13.1.0","@grvt/client":"^1.6.5","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^17.3.1","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grvt-cli_0.1.3_1782175016527_0.03636247944528659","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@2oolkit/grvt-cli","version":"0.1.4","description":"CLI & MCP server for GRVT derivatives exchange — trade perpetuals, manage orders, and query market data","homepage":"https://github.com/haeminmoon/grvt-cli#readme","bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"repository":{"type":"git","url":"git+https://github.com/haeminmoon/grvt-cli.git"},"license":"MIT","author":{"name":"haeminmoon"},"type":"commonjs","main":"dist/index.js","bin":{"grvt-cli":"dist/index.js","grvt-mcp":"dist/mcp.js"},"keywords":["grvt","trading","crypto","derivatives","exchange","cli","mcp","model-context-protocol","ai-agent","perpetuals"],"scripts":{"build":"tsup","prepublishOnly":"npm run build","dev":"ts-node src/index.ts","test":"jest --verbose","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"tsc --noEmit"},"dependencies":{"@grvt/client":"^1.8.2","@grvt/sdk":"^0.0.4","@modelcontextprotocol/sdk":"^1.27.1","commander":"^13.1.0","ethers":"^6.13.5","zod":"^4.3.6"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^22.0.0","dotenv":"^17.3.1","jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","tsup":"^8.4.0","typescript":"^5.8.3"},"engines":{"node":">=20"},"_id":"@2oolkit/grvt-cli@0.1.4","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-4X3z2iNKpHvW+G1vplEHOv13BZQYgthyCsrC7kuSejRv4OqPwUv2s5DISL/JrEhECN9WxJ5Ny4doDYESQfl6PQ==","shasum":"49157a2a6d8b84c4fed3020f4aeb801e41f0a1ce","tarball":"https://registry.npmjs.org/@2oolkit/grvt-cli/-/grvt-cli-0.1.4.tgz","fileCount":4,"unpackedSize":112873,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAFmg/G179EJX+nmvb9lnQtUFN9awwUwAnTca4IzYmZ7AiEAgD8Uk/aNvr9AsHXHKIji25oZl5utAGjF4uUFqwDHswc="}]},"_npmUser":{"name":"haeminmoon","email":"mym0846@gmail.com"},"directories":{},"maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/grvt-cli_0.1.4_1782285420470_0.6050066768849456"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-13T16:28:51.428Z","modified":"2026-06-24T07:17:00.756Z","0.1.0":"2026-03-13T16:28:51.676Z","0.1.1":"2026-03-13T16:35:07.887Z","0.1.2":"2026-03-15T07:53:31.292Z","0.1.3":"2026-06-23T00:36:56.675Z","0.1.4":"2026-06-24T07:17:00.612Z"},"bugs":{"url":"https://github.com/haeminmoon/grvt-cli/issues"},"author":{"name":"haeminmoon"},"license":"MIT","homepage":"https://github.com/haeminmoon/grvt-cli#readme","keywords":["grvt","trading","crypto","derivatives","exchange","cli","mcp","model-context-protocol","ai-agent","perpetuals"],"repository":{"type":"git","url":"git+https://github.com/haeminmoon/grvt-cli.git"},"description":"CLI & MCP server for GRVT derivatives exchange — trade perpetuals, manage orders, and query market data","maintainers":[{"name":"haeminmoon","email":"mym0846@gmail.com"}],"readme":"# @2oolkit/grvt-cli\n\nTrade perpetual futures **and spot** on [GRVT](https://grvt.io) — a hybrid decentralized derivatives exchange on ZKsync — from your terminal or AI agent.\n\n**One package, three interfaces:**\n\n| Interface          | Command                            | Use Case                                   |\n| ------------------ | ---------------------------------- | ------------------------------------------ |\n| **CLI**            | `grvt-cli`                         | Terminal trading, scripting, automation    |\n| **MCP Server**     | `grvt-mcp`                         | AI agents (Claude, Cursor, Windsurf, etc.) |\n| **OpenClaw Skill** | [`skill/SKILL.md`](skill/SKILL.md) | AI agent ecosystem (OpenClaw, ClawdBot)    |\n\n90+ perpetual instruments: crypto (BTC, ETH, SOL), equities (TSLA, AMZN), commodities (XAU, XAG). **Spot trading** is also supported (e.g. `USDC_USDT_SpotSwap`) — same order/orderbook/candle/fill APIs, with a separate spot wallet (`account spot`).\n\n## Installation\n\n```bash\nnpm install -g @2oolkit/grvt-cli\n```\n\nThis installs both `grvt-cli` (CLI) and `grvt-mcp` (MCP server).\n\n## Prerequisites\n\n- **Node.js** >= 20\n- A **GRVT account** at [grvt.io](https://grvt.io)\n- An **API key** (Dashboard > Settings > API Keys)\n\n---\n\n## CLI Usage\n\n### Quick Start\n\n```bash\n# 1. Interactive setup (prompts for API key, secret, sub-account ID)\ngrvt-cli config init\n\n# 2. Check a price (no auth needed)\ngrvt-cli market ticker BTC_USDT_Perp\n\n# 3. Place a limit buy\ngrvt-cli order create --instrument BTC_USDT_Perp --side buy --size 0.001 --price 60000\n\n# 4. View open orders\ngrvt-cli order list\n```\n\n### Configuration\n\n**Interactive setup (recommended):**\n\n```bash\ngrvt-cli config init\n```\n\nPrompts for:\n\n| Prompt             | Description                     | Where to find it                 |\n| ------------------ | ------------------------------- | -------------------------------- |\n| **API Key**        | Your GRVT API key               | Dashboard > Settings > API Keys  |\n| **API Secret**     | Private key for EIP-712 signing | Shown once when creating API key |\n| **Sub-account ID** | Numeric sub-account ID          | Dashboard > Sub-accounts         |\n\n**Manual setup:**\n\n```bash\ngrvt-cli config set --api-key <key> --api-secret <secret> --sub-account-id <id>\ngrvt-cli auth login\n```\n\n**Environment variables (CI/CD, Docker):**\n\n```bash\nexport GRVT_API_KEY=<your-api-key>\nexport GRVT_SECRET_KEY=<your-api-secret>\nexport GRVT_SUB_ACCOUNT_ID=<your-sub-account-id>\n```\n\n### Command Reference\n\n#### Market Data (no auth required)\n\n```bash\ngrvt-cli market instruments                        # List perpetual instruments\ngrvt-cli market instruments --kind spot            # Spot pairs (e.g. USDC_USDT_SpotSwap)\ngrvt-cli market instruments --kind all             # Perp + spot together\ngrvt-cli market instruments --kind PERPETUAL       # Filter by kind (perp/spot/future/call/put)\ngrvt-cli market instruments --base BTC             # Filter by base currency\ngrvt-cli market ticker BTC_USDT_Perp               # Price, volume, funding\ngrvt-cli market orderbook BTC_USDT_Perp            # Orderbook (10 levels)\ngrvt-cli market orderbook BTC_USDT_Perp --depth 20 # 20 levels\n\n# Candlesticks / OHLCV\ngrvt-cli market candles BTC_USDT_Perp                       # Last 1000 1h bars (max per request)\ngrvt-cli market candles BTC_USDT_Perp -i 15m                # 15-minute bars\ngrvt-cli market candles BTC_USDT_Perp -i 1h --type MARK     # Mark-price candles\ngrvt-cli market candles BTC_USDT_Perp -i 1h --count 5000    # Auto-paginate to 5000 bars\ngrvt-cli market candles BTC_USDT_Perp -i 1d --start 2025-01-01 -o json\n```\n\n**Candlestick options (`market candles <instrument>`):**\n\n| Option            | Description                                                                    | Default  |\n| ----------------- | ------------------------------------------------------------------------------ | -------- |\n| `-i, --interval`  | `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `6h`, `8h`, `12h`, `1d`, `3d`, `5d`, `1w`, `2w`, `3w`, `4w` | `1h`     |\n| `--type`          | `TRADE`, `MARK`, `INDEX`, `MID`                                                | `TRADE`  |\n| `--start`         | Start time — ISO-8601 (e.g. `2025-01-01T00:00:00Z`) or epoch ms                | —        |\n| `--end`           | End time — ISO-8601 or epoch ms                                                | —        |\n| `--limit`         | Bars in a **single request** (max **1000**, clamped — no server error)         | `1000`   |\n| `--count`         | Total bars to fetch; **auto-paginates** beyond 1000 (no cap)                   | —        |\n| `-o, --output`    | `table` or `json`                                                              | `table`  |\n\n**Per-request max is 1000 bars.** Use `--limit` for a single request (values above 1000 are clamped locally). To fetch more, pass `--count <n>` — the CLI walks backward through history one page at a time, dedupes by open time, sorts ascending, and returns exactly `n` bars (or all available history if fewer exist).\n\n#### Orders (auth required)\n\n```bash\n# Create\ngrvt-cli order create --instrument BTC_USDT_Perp --side buy --size 0.001 --price 60000\ngrvt-cli order create --instrument BTC_USDT_Perp --side sell --size 0.001 --type market\ngrvt-cli order create --instrument ETH_USDT_Perp --side buy --size 0.1 --price 3000 --post-only\ngrvt-cli order create --instrument BTC_USDT_Perp --side sell --size 0.01 --type market --reduce-only\n\n# Manage\ngrvt-cli order list                                # Open orders\ngrvt-cli order get --order-id <id>                 # Order details\ngrvt-cli order cancel --order-id <id>              # Cancel one\ngrvt-cli order cancel-all                          # Cancel all\ngrvt-cli order history --limit 50                  # Order history\n```\n\n**Order options:**\n\n| Option              | Required   | Description                                             | Default          |\n| ------------------- | ---------- | ------------------------------------------------------- | ---------------- |\n| `--instrument`      | Yes        | e.g., `BTC_USDT_Perp`                                   | —                |\n| `--side`            | Yes        | `buy` or `sell`                                         | —                |\n| `--size`            | Yes        | Size in base currency                                   | —                |\n| `--type`            | No         | `limit` or `market`                                     | `limit`          |\n| `--price`           | Limit only | Limit price                                             | —                |\n| `--post-only`       | No         | Maker-only                                              | `false`          |\n| `--reduce-only`     | No         | Reduce-only                                             | `false`          |\n| `--time-in-force`   | No         | `GOOD_TILL_TIME`, `IMMEDIATE_OR_CANCEL`, `FILL_OR_KILL` | `GOOD_TILL_TIME` |\n| `--client-order-id` | No         | Custom tracking ID                                      | auto             |\n\n#### Positions, Account & Funding\n\n```bash\ngrvt-cli position list                             # All open positions\ngrvt-cli position list --kind PERPETUAL            # Filter by kind\n\ngrvt-cli account summary                           # Funding account\ngrvt-cli account sub-account                       # Sub-account (margin, balance)\ngrvt-cli account spot                              # Spot wallet balances (separate from perp)\n\ngrvt-cli funding rate BTC_USDT_Perp                # Current funding rate\ngrvt-cli funding history --limit 10                # Payment history\n```\n\n#### Auth & Config\n\n```bash\ngrvt-cli auth login                                # Login\ngrvt-cli auth status                               # Check session\ngrvt-cli auth logout                               # Clear session\n\ngrvt-cli config init                               # Setup wizard\ngrvt-cli config set --api-key <key>                # Update config\ngrvt-cli config list                               # Show config (masked)\ngrvt-cli config get <key>                          # Get specific value\n```\n\n### Output Formats\n\nAll commands support `-o json` for scripting and piping:\n\n```bash\ngrvt-cli market ticker BTC_USDT_Perp -o json\ngrvt-cli order list -o json | jq '.[].order_id'\n```\n\n---\n\n## MCP Server\n\nThe MCP (Model Context Protocol) server exposes all GRVT functionality as tools for AI agents. Works with Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.\n\n### Setup for Claude Code\n\n```bash\nclaude mcp add grvt-mcp -- grvt-mcp\n```\n\n### Setup for Claude Desktop / Cursor / Windsurf\n\nAdd to your MCP config file:\n\n```json\n{\n  \"mcpServers\": {\n    \"grvt\": {\n      \"command\": \"grvt-mcp\"\n    }\n  }\n}\n```\n\nOr without global install:\n\n```json\n{\n  \"mcpServers\": {\n    \"grvt\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@2oolkit/grvt-cli\", \"grvt-mcp\"]\n    }\n  }\n}\n```\n\n### Available Tools (19)\n\n| Category        | Tools                                                                                                     | Auth Required |\n| --------------- | --------------------------------------------------------------------------------------------------------- | ------------- |\n| **Market Data** | `get_instruments`, `get_ticker`, `get_orderbook`, `get_candlesticks`                                      | No            |\n| **Orders**      | `create_order`, `cancel_order`, `cancel_all_orders`, `get_order`, `list_open_orders`, `get_order_history` | Yes           |\n| **Positions**   | `list_positions`                                                                                          | Yes           |\n| **Account**     | `get_account_summary`, `get_sub_account_summary`, `get_spot_account_summary`                              | Yes           |\n| **Funding**     | `get_funding_rate`, `get_funding_payment_history`                                                         | Mixed         |\n| **Auth**        | `auth_login`, `auth_status`, `auth_logout`                                                                | No            |\n\nOnce configured, your AI agent can directly query prices, place orders, manage positions, and monitor your account on GRVT.\n\n### MCP Prerequisites\n\nBefore using MCP tools that require authentication, set up credentials via the CLI:\n\n```bash\ngrvt-cli config init    # Interactive setup\ngrvt-cli auth login     # Create session\n```\n\nThe MCP server reads the same config and session files as the CLI (`~/.grvt-cli/`).\n\n---\n\n## OpenClaw Skill\n\nThis package includes an [OpenClaw](https://openclaw.dev) skill definition for AI agent ecosystems. The skill file is located at [`skill/SKILL.md`](skill/SKILL.md) with detailed reference docs in `skill/references/`.\n\nCompatible with OpenClaw, ClawdBot, and other agent skill platforms.\n\n---\n\n## Instrument Naming\n\nInstruments follow `{BASE}_{QUOTE}_{Type}`:\n\n| Instrument       | Description            |\n| ---------------- | ---------------------- |\n| `BTC_USDT_Perp`  | Bitcoin perpetual      |\n| `ETH_USDT_Perp`  | Ethereum perpetual     |\n| `SOL_USDT_Perp`  | Solana perpetual       |\n| `TSLA_USDT_Perp` | Tesla equity perpetual |\n| `XAU_USDT_Perp`  | Gold perpetual         |\n| `USDC_USDT_SpotSwap` | USDC/USDT **spot** |\n\nPerp instruments end in `_Perp`; **spot pairs end in `_SpotSwap`**. Spot uses the same order/orderbook/candle/fill commands — just pass the `_SpotSwap` instrument (e.g. `grvt-cli order create --instrument USDC_USDT_SpotSwap ...`). Positions and funding are perp-only. List spot with `grvt-cli market instruments --kind spot`.\n\nUse `grvt-cli market instruments --kind all -o json` for the full list (perp + spot) with tick sizes and minimum order sizes.\n\n## Common Workflows\n\n### Close a Position\n\n```bash\n# Long position → sell reduce-only\ngrvt-cli order create --instrument BTC_USDT_Perp --side sell --size 0.002 --type market --reduce-only\n\n# Short position → buy reduce-only\ngrvt-cli order create --instrument ETH_USDT_Perp --side buy --size 0.5 --type market --reduce-only\n```\n\nAlways use `--reduce-only` when closing positions to prevent accidentally opening the opposite direction.\n\n### Bracket Order (Entry + Take-Profit)\n\n```bash\ngrvt-cli order create --instrument BTC_USDT_Perp --side buy --size 0.01 --type market\ngrvt-cli order create --instrument BTC_USDT_Perp --side sell --size 0.01 --price 75000 --reduce-only\n```\n\n### Funding Rate Arbitrage\n\n```bash\ngrvt-cli funding rate BTC_USDT_Perp -o json     # Check rate\ngrvt-cli order create --instrument BTC_USDT_Perp --side buy --size 0.1 --type market  # Go long if negative\ngrvt-cli funding history --instrument BTC_USDT_Perp --limit 5 -o json  # Monitor payments\n```\n\n### Portfolio Health Check\n\n```bash\ngrvt-cli account sub-account -o json             # Margin & balance\ngrvt-cli position list -o json                    # Open positions\ngrvt-cli order list -o json                       # Open orders\n```\n\n### Cancel Everything\n\n```bash\ngrvt-cli order cancel-all\ngrvt-cli position list -o json\n# For each position, create opposite reduce-only market order\n```\n\n## Error Handling\n\nErrors include actionable recovery instructions:\n\n```\nERROR: Not authenticated. Session expired or not logged in.\n\nTo fix this, run:\n  grvt-cli auth login\n```\n\n| Error                          | Recovery                                       |\n| ------------------------------ | ---------------------------------------------- |\n| `Not authenticated`            | `grvt-cli auth login`                          |\n| `API key is not configured`    | `grvt-cli config init`                         |\n| `Order below minimum notional` | Increase `--size` or `--price`                 |\n| `Instrument not found`         | `grvt-cli market instruments --kind PERPETUAL` |\n\n## Safety Rules\n\n1. **Use `--reduce-only` for all exit orders** — prevents accidental position flips\n2. **Check instrument specs** before placing orders — verify `minSize` and `tickSize`\n3. **Check account balance** before large orders — `grvt-cli account sub-account -o json`\n4. **Start with small sizes** when testing strategies\n5. **Never expose API secret** — it's used locally for signing, never sent to servers\n6. **Use Trade-only API keys** — never use keys with withdrawal permissions\n\n## Security\n\n- **Secret input masking** — `config init` hides your API secret as you type (displays `*`)\n- **Cryptographic nonce** — order signing uses a CSPRNG (`crypto.randomInt`), not `Math.random()`\n- **File permissions** — config and session files are created with `0600` (owner read/write only)\n- **Input validation** — MCP tool inputs (instrument, size, price, order ID) are validated with regex patterns\n- **Error sanitization** — server error responses are filtered to prevent internal detail leakage\n- **Expired session cleanup** — expired session files are automatically deleted on detection\n\n## Configuration Files\n\n| File    | Path                       | Description                     |\n| ------- | -------------------------- | ------------------------------- |\n| Config  | `~/.grvt-cli/config.json`  | API key, secret, sub-account ID |\n| Session | `~/.grvt-cli/session.json` | Login session (auto-managed)    |\n\nBoth files use `0600` permissions (owner read/write only). Sessions auto-refresh when needed.\n\n## Environment Variables\n\n| Variable              | Description                            |\n| --------------------- | -------------------------------------- |\n| `GRVT_API_KEY`        | API key (fallback when config not set) |\n| `GRVT_SECRET_KEY`     | API secret / private key               |\n| `GRVT_SUB_ACCOUNT_ID` | Default sub-account ID                 |\n\n## Resources\n\n- **GRVT Exchange**: https://grvt.io\n- **npm Package**: https://www.npmjs.com/package/@2oolkit/grvt-cli\n- **GitHub**: https://github.com/haeminmoon/grvt-cli\n- **GRVT API Docs**: https://docs.grvt.io/api\n","readmeFilename":"README.md"}