Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Trade on GRVT (Gravity Markets) derivatives exchange via the grvt-cli tool. Use when the user wants to trade crypto derivatives, place or cancel orders, chec...
Trade on GRVT (Gravity Markets) derivatives exchange via the grvt-cli tool. Use when the user wants to trade crypto derivatives, place or cancel orders, chec...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
IMPORTANT: Community Project Disclaimer grvt-cli is a community hobby project. It is NOT officially supported, endorsed, audited, or maintained by the GRVT team. No security audit or formal code review has been performed. The code has not been audited for security vulnerabilities. By using this tool the user acknowledges and accepts the risk of total loss of funds. The user is solely responsible for any financial losses, leaked credentials, or unintended trades that may result from using this software. This tool stores API keys and private keys in plaintext on disk (with 0600 file permissions). Keys should never be shared or used on untrusted machines. Before using this CLI on behalf of the user, you MUST inform them of this disclaimer and get their explicit acknowledgment. grvt is a CLI tool and Node.js library for trading on GRVT (Gravity Markets), a crypto derivatives exchange supporting perpetuals, futures, and options. Package: @madeinusmate/grvt-cli (npm). Binary: grvt. Requires Node.js >= 20.
Only use testnet until the user fully understands the CLI behavior. Review the source code before trusting it with real funds. Keep private keys out of shell history (use grvt setup which reads from stdin). Rotate API keys regularly. Never use the CLI with more funds than the user can afford to lose.
pnpm add -g @madeinusmate/grvt-cli Verify: grvt --version
The interactive wizard handles everything: grvt setup The setup wizard displays a disclaimer requiring explicit acceptance before proceeding. It is interactive and reads sensitive input from stdin (keeping keys out of shell history). It walks through: environment, API key, private key, and default sub-account ID, then authenticates automatically. Note: Because grvt setup is interactive and requires user input, agents cannot run it directly. Use the manual setup flow below instead. Manual setup (recommended for agents): grvt config set env testnet grvt auth login --api-key YOUR_API_KEY --private-key 0xYOUR_PRIVATE_KEY grvt config set subAccountId YOUR_SUB_ACCOUNT_ID Verify setup: grvt auth status grvt config list
Config file: ~/.config/grvt/config.toml (permissions 0600). KeyTypeDefaultDescriptionenvdev|staging|testnet|prodprodGRVT environmentapiKeystring-GRVT API keyprivateKeystring-Ethereum private key (0x-prefixed) for EIP-712 signingsubAccountIdstring-Default sub-account for trading commandsaccountIdstring-Main account ID (set automatically on login)cookiestring-Session cookie (set automatically on login)outputDefaults.outputjson|ndjson|table|rawtableDefault output formatoutputDefaults.prettybooleanfalsePretty-print JSONoutputDefaults.silentbooleanfalseSuppress info logshttp.timeoutMsnumber10000Request timeout (ms)http.retriesnumber3Retry counthttp.backoffMsnumber200Initial backoff (ms)http.maxBackoffMsnumber10000Max backoff (ms) Secret keys (apiKey, privateKey, cookie) are redacted in config list / config get output. Use grvt config set <key> <value> and grvt config unset <key> to modify. Use dot-notation for nested keys (e.g. outputDefaults.output).
Login requires an API key. A private key is optional but required for write operations (orders, transfers, withdrawals, derisk). grvt auth login --api-key KEY --private-key 0xKEY The session cookie is stored in config and sent automatically with authenticated requests. CommandDescriptiongrvt auth loginAuthenticate (stores session cookie + account ID)grvt auth statusVerify session is valid (calls API)grvt auth whoamiShow current auth state (local only, no API call)grvt auth logoutClear all stored credentials EIP-712 signing is used for: order creation, transfers, withdrawals, and derisk operations. The private key never leaves the local machine.
EnvironmentMarket DataTradingEdge (Auth)devmarket-data.dev.gravitymarkets.iotrades.dev.gravitymarkets.ioedge.dev.gravitymarkets.iostagingmarket-data.staging.gravitymarkets.iotrades.staging.gravitymarkets.ioedge.staging.gravitymarkets.iotestnetmarket-data.testnet.grvt.iotrades.testnet.grvt.ioedge.testnet.grvt.ioprodmarket-data.grvt.iotrades.grvt.ioedge.grvt.io Switch with: grvt config set env testnet
Available on every command: OptionDescriptionDefault--output <format>json, ndjson, table, rawtable (TTY) / json (piped)--prettyPretty-print JSONfalse--silentSuppress info logsfalse--no-colorDisable colors---yesSkip confirmation prompts---retries <n>Retry count3--timeout-ms <n>Request timeout (ms)10000 Write commands (order create, order cancel, transfer create, withdraw create, derisk) also support: OptionDescription--dry-runValidate and show the signed payload without sending--json <path>Read full request body from file (@file.json) or stdin (-)
grvt setup Interactive setup wizard config Manage local configuration path / get / set / unset / list / export / import auth Authentication and session login / status / whoami / logout market Market data (mostly unauthenticated) instruments / instrument / currency / orderbook / trades candles / funding-rate / ticker / mini-ticker / margin-rules account Account info (requires auth) funding / summary / aggregated / history trade Trading (requires auth; writes need private key) order create / order get / order open / order cancel / order cancel-all / order history fills / positions / funding-payments leverage get / leverage set cancel-on-disconnect / derisk funds Fund management (requires auth; writes need private key) deposit history transfer create / transfer history withdraw create / withdraw history For full flag details on each command, read the corresponding reference file: references/commands-config.md โ config and auth commands references/commands-market.md โ market data commands references/commands-trade.md โ trading commands references/commands-account.md โ account commands references/commands-funds.md โ fund management commands references/errors.md โ error codes and troubleshooting
GRVT uses structured instrument symbols: TypePatternExamplePerpetual{BASE}_{QUOTE}_PerpBTC_USDT_PerpFuture{BASE}_{QUOTE}_Fut_{DATE}BTC_USDT_Fut_20Oct23Call{BASE}_{QUOTE}_Call_{DATE}_{STRIKE}ETH_USDT_Call_20Oct23_2800Put{BASE}_{QUOTE}_Put_{DATE}_{STRIKE}ETH_USDT_Put_20Oct23_2800 Always discover available instruments before trading: grvt market instruments grvt market instruments --kind PERPETUAL --base BTC grvt market instrument --instrument BTC_USDT_Perp
FormatWhen to usetableInteractive display in terminal (default in TTY)jsonParsing output programmatically, piping to jqndjsonStreaming large datasets with --all paginationrawDebugging raw API responses The CLI auto-detects: table when stdout is a TTY, json when piped. Override with --output <format>. When using --all with ndjson, records stream to stdout as they arrive (one JSON object per line), enabling efficient processing of large result sets without buffering everything in memory.
grvt market instruments --kind PERPETUAL grvt market orderbook --instrument BTC_USDT_Perp --depth 50 grvt market ticker --instrument BTC_USDT_Perp --greeks --derived grvt market candles --instrument BTC_USDT_Perp --interval CI_1_H --limit 24 grvt market funding-rate --instrument BTC_USDT_Perp --limit 10 grvt market margin-rules --instrument BTC_USDT_Perp
# Limit buy grvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000 # Market sell grvt trade order create --instrument BTC_USDT_Perp --side sell --type market --qty 0.01 # With options grvt trade order create --instrument BTC_USDT_Perp --side buy --type limit \ --qty 0.01 --price 68000 --post-only --time-in-force IOC --expiration-seconds 60 # Monitor grvt trade order open grvt trade order get --order-id 0x123... # Cancel grvt trade order cancel --order-id 0x123... grvt trade order cancel-all grvt trade order cancel-all --instrument BTC_USDT_Perp
grvt trade positions grvt account summary grvt account aggregated grvt account funding grvt account history --start-time 2025-01-01T00:00:00Z --limit 24
# Transfer between sub-accounts grvt funds transfer create \ --from-sub-account-id FROM_ID --to-sub-account-id TO_ID \ --currency USDT --amount 100 # Withdraw to Ethereum address grvt funds withdraw create \ --to-address 0xYOUR_ETH_ADDRESS --currency USDT --amount 50 # View history grvt funds deposit history --all grvt funds transfer history --start-time 2025-01-01T00:00:00Z grvt funds withdraw history --limit 10
grvt trade leverage get grvt trade leverage set --instrument BTC_USDT_Perp --leverage 10 grvt trade cancel-on-disconnect --countdown 5000 grvt trade derisk --ratio 0.5
Pipe JSON output to jq: grvt market instruments --output json | jq '.[].instrument' grvt trade order open --output json | jq '.[] | {instrument, side: .legs[0].is_buying_asset, size: .legs[0].size}' Stream paginated results: grvt trade fills --all --output ndjson | jq '.instrument' grvt trade order history --all --output ndjson > all_orders.jsonl Read order payload from a file: grvt trade order create --json @order.json echo '{"order": {...}}' | grvt trade order create --json - Skip confirmations for scripting: grvt trade order cancel-all --yes --silent grvt funds transfer create ... --yes --silent Dry-run to preview: grvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000 --dry-run
All --start-time and --end-time flags accept: FormatExampleUnix seconds1704067200Unix milliseconds1704067200000Unix nanoseconds1704067200000000000ISO 86012025-01-01T00:00:00Z
Exit CodeMeaning0Success2Usage / validation error (bad flags, missing required options)3Authentication / permission error (expired session, invalid key)4Partial failure (batch operations like cancel-all)5API / network error (server errors, timeouts, rate limits) Common recovery patterns: Exit 3: Run grvt auth login to refresh session Exit 5 with 429: Reduce request frequency; CLI retries automatically with exponential backoff Exit 2: Check grvt <command> --help for required options For detailed error scenarios and troubleshooting, read references/errors.md.
@madeinusmate/grvt-cli can also be imported as a Node.js library: import { createHttpClient, login, createOrder, getOpenOrders, getPositions } from "@madeinusmate/grvt-cli"; See src/index.ts in the package source for all exported functions.
Valid values for --interval on grvt market candles: CI_1_M, CI_5_M, CI_15_M, CI_30_M, CI_1_H, CI_2_H, CI_4_H, CI_6_H, CI_8_H, CI_12_H, CI_1_D, CI_1_W
Valid values for --kind filters (comma-separated): PERPETUAL, FUTURE, CALL, PUT
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.