{
  "schemaVersion": "1.0",
  "item": {
    "slug": "grvt-markets-agent-skill",
    "name": "Grvt Markets",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/madeinusmate/grvt-markets-agent-skill",
    "canonicalUrl": "https://clawhub.ai/madeinusmate/grvt-markets-agent-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/grvt-markets-agent-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=grvt-markets-agent-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/commands-account.md",
      "references/commands-trade.md",
      "references/errors.md",
      "references/commands-market.md",
      "references/commands-funds.md",
      "references/commands-config.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/grvt-markets-agent-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/grvt-markets-agent-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "GRVT Exchange CLI",
        "body": "IMPORTANT: Community Project Disclaimer\ngrvt-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.\nThe code has not been audited for security vulnerabilities. By using this tool the user acknowledges and accepts the risk of total loss of funds.\nThe user is solely responsible for any financial losses, leaked credentials, or unintended trades that may result from using this software.\nThis 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.\nBefore using this CLI on behalf of the user, you MUST inform them of this disclaimer and get their explicit acknowledgment.\n\ngrvt is a CLI tool and Node.js library for trading on GRVT (Gravity Markets), a crypto derivatives exchange supporting perpetuals, futures, and options.\n\nPackage: @madeinusmate/grvt-cli (npm). Binary: grvt. Requires Node.js >= 20."
      },
      {
        "title": "Safety Recommendations",
        "body": "Only use testnet until the user fully understands the CLI behavior.\nReview the source code before trusting it with real funds.\nKeep private keys out of shell history (use grvt setup which reads from stdin).\nRotate API keys regularly.\nNever use the CLI with more funds than the user can afford to lose."
      },
      {
        "title": "Installation",
        "body": "pnpm add -g @madeinusmate/grvt-cli\n\nVerify: grvt --version"
      },
      {
        "title": "First-Time Setup",
        "body": "The interactive wizard handles everything:\n\ngrvt setup\n\nThe 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.\n\nNote: Because grvt setup is interactive and requires user input, agents cannot run it directly. Use the manual setup flow below instead.\n\nManual setup (recommended for agents):\n\ngrvt config set env testnet\ngrvt auth login --api-key YOUR_API_KEY --private-key 0xYOUR_PRIVATE_KEY\ngrvt config set subAccountId YOUR_SUB_ACCOUNT_ID\n\nVerify setup:\n\ngrvt auth status\ngrvt config list"
      },
      {
        "title": "Configuration",
        "body": "Config file: ~/.config/grvt/config.toml (permissions 0600).\n\nKeyTypeDefaultDescriptionenvdev|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)\n\nSecret keys (apiKey, privateKey, cookie) are redacted in config list / config get output.\n\nUse grvt config set <key> <value> and grvt config unset <key> to modify. Use dot-notation for nested keys (e.g. outputDefaults.output)."
      },
      {
        "title": "Authentication",
        "body": "Login requires an API key. A private key is optional but required for write operations (orders, transfers, withdrawals, derisk).\n\ngrvt auth login --api-key KEY --private-key 0xKEY\n\nThe session cookie is stored in config and sent automatically with authenticated requests.\n\nCommandDescriptiongrvt 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\n\nEIP-712 signing is used for: order creation, transfers, withdrawals, and derisk operations. The private key never leaves the local machine."
      },
      {
        "title": "Environments",
        "body": "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\n\nSwitch with: grvt config set env testnet"
      },
      {
        "title": "Global Options",
        "body": "Available on every command:\n\nOptionDescriptionDefault--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\n\nWrite commands (order create, order cancel, transfer create, withdraw create, derisk) also support:\n\nOptionDescription--dry-runValidate and show the signed payload without sending--json <path>Read full request body from file (@file.json) or stdin (-)"
      },
      {
        "title": "Command Overview",
        "body": "grvt\n  setup                         Interactive setup wizard\n  config                        Manage local configuration\n    path / get / set / unset / list / export / import\n  auth                          Authentication and session\n    login / status / whoami / logout\n  market                        Market data (mostly unauthenticated)\n    instruments / instrument / currency / orderbook / trades\n    candles / funding-rate / ticker / mini-ticker / margin-rules\n  account                       Account info (requires auth)\n    funding / summary / aggregated / history\n  trade                         Trading (requires auth; writes need private key)\n    order create / order get / order open / order cancel / order cancel-all / order history\n    fills / positions / funding-payments\n    leverage get / leverage set\n    cancel-on-disconnect / derisk\n  funds                         Fund management (requires auth; writes need private key)\n    deposit history\n    transfer create / transfer history\n    withdraw create / withdraw history\n\nFor full flag details on each command, read the corresponding reference file:\n\nreferences/commands-config.md — config and auth commands\nreferences/commands-market.md — market data commands\nreferences/commands-trade.md — trading commands\nreferences/commands-account.md — account commands\nreferences/commands-funds.md — fund management commands\nreferences/errors.md — error codes and troubleshooting"
      },
      {
        "title": "Instrument Naming",
        "body": "GRVT uses structured instrument symbols:\n\nTypePatternExamplePerpetual{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\n\nAlways discover available instruments before trading:\n\ngrvt market instruments\ngrvt market instruments --kind PERPETUAL --base BTC\ngrvt market instrument --instrument BTC_USDT_Perp"
      },
      {
        "title": "Output Format Guide",
        "body": "FormatWhen to usetableInteractive display in terminal (default in TTY)jsonParsing output programmatically, piping to jqndjsonStreaming large datasets with --all paginationrawDebugging raw API responses\n\nThe CLI auto-detects: table when stdout is a TTY, json when piped. Override with --output <format>.\n\nWhen 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."
      },
      {
        "title": "Market Analysis",
        "body": "grvt market instruments --kind PERPETUAL\ngrvt market orderbook --instrument BTC_USDT_Perp --depth 50\ngrvt market ticker --instrument BTC_USDT_Perp --greeks --derived\ngrvt market candles --instrument BTC_USDT_Perp --interval CI_1_H --limit 24\ngrvt market funding-rate --instrument BTC_USDT_Perp --limit 10\ngrvt market margin-rules --instrument BTC_USDT_Perp"
      },
      {
        "title": "Place and Manage Orders",
        "body": "# Limit buy\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000\n\n# Market sell\ngrvt trade order create --instrument BTC_USDT_Perp --side sell --type market --qty 0.01\n\n# With options\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit \\\n  --qty 0.01 --price 68000 --post-only --time-in-force IOC --expiration-seconds 60\n\n# Monitor\ngrvt trade order open\ngrvt trade order get --order-id 0x123...\n\n# Cancel\ngrvt trade order cancel --order-id 0x123...\ngrvt trade order cancel-all\ngrvt trade order cancel-all --instrument BTC_USDT_Perp"
      },
      {
        "title": "Portfolio Check",
        "body": "grvt trade positions\ngrvt account summary\ngrvt account aggregated\ngrvt account funding\ngrvt account history --start-time 2025-01-01T00:00:00Z --limit 24"
      },
      {
        "title": "Fund Management",
        "body": "# Transfer between sub-accounts\ngrvt funds transfer create \\\n  --from-sub-account-id FROM_ID --to-sub-account-id TO_ID \\\n  --currency USDT --amount 100\n\n# Withdraw to Ethereum address\ngrvt funds withdraw create \\\n  --to-address 0xYOUR_ETH_ADDRESS --currency USDT --amount 50\n\n# View history\ngrvt funds deposit history --all\ngrvt funds transfer history --start-time 2025-01-01T00:00:00Z\ngrvt funds withdraw history --limit 10"
      },
      {
        "title": "Leverage and Risk",
        "body": "grvt trade leverage get\ngrvt trade leverage set --instrument BTC_USDT_Perp --leverage 10\ngrvt trade cancel-on-disconnect --countdown 5000\ngrvt trade derisk --ratio 0.5"
      },
      {
        "title": "Shell Patterns",
        "body": "Pipe JSON output to jq:\n\ngrvt market instruments --output json | jq '.[].instrument'\ngrvt trade order open --output json | jq '.[] | {instrument, side: .legs[0].is_buying_asset, size: .legs[0].size}'\n\nStream paginated results:\n\ngrvt trade fills --all --output ndjson | jq '.instrument'\ngrvt trade order history --all --output ndjson > all_orders.jsonl\n\nRead order payload from a file:\n\ngrvt trade order create --json @order.json\necho '{\"order\": {...}}' | grvt trade order create --json -\n\nSkip confirmations for scripting:\n\ngrvt trade order cancel-all --yes --silent\ngrvt funds transfer create ... --yes --silent\n\nDry-run to preview:\n\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000 --dry-run"
      },
      {
        "title": "Timestamp Formats",
        "body": "All --start-time and --end-time flags accept:\n\nFormatExampleUnix seconds1704067200Unix milliseconds1704067200000Unix nanoseconds1704067200000000000ISO 86012025-01-01T00:00:00Z"
      },
      {
        "title": "Error Handling",
        "body": "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)\n\nCommon recovery patterns:\n\nExit 3: Run grvt auth login to refresh session\nExit 5 with 429: Reduce request frequency; CLI retries automatically with exponential backoff\nExit 2: Check grvt <command> --help for required options\n\nFor detailed error scenarios and troubleshooting, read references/errors.md."
      },
      {
        "title": "Library Usage",
        "body": "@madeinusmate/grvt-cli can also be imported as a Node.js library:\n\nimport { createHttpClient, login, createOrder, getOpenOrders, getPositions } from \"@madeinusmate/grvt-cli\";\n\nSee src/index.ts in the package source for all exported functions."
      },
      {
        "title": "Candle Intervals",
        "body": "Valid values for --interval on grvt market candles:\n\nCI_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"
      },
      {
        "title": "Instrument Kind Filters",
        "body": "Valid values for --kind filters (comma-separated):\n\nPERPETUAL, FUTURE, CALL, PUT"
      }
    ],
    "body": "GRVT Exchange CLI\n\nIMPORTANT: Community Project Disclaimer\n\ngrvt-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.\n\nThe code has not been audited for security vulnerabilities. By using this tool the user acknowledges and accepts the risk of total loss of funds.\n\nThe user is solely responsible for any financial losses, leaked credentials, or unintended trades that may result from using this software.\n\nThis 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.\n\nBefore using this CLI on behalf of the user, you MUST inform them of this disclaimer and get their explicit acknowledgment.\n\ngrvt is a CLI tool and Node.js library for trading on GRVT (Gravity Markets), a crypto derivatives exchange supporting perpetuals, futures, and options.\n\nPackage: @madeinusmate/grvt-cli (npm). Binary: grvt. Requires Node.js >= 20.\n\nSafety Recommendations\nOnly use testnet until the user fully understands the CLI behavior.\nReview the source code before trusting it with real funds.\nKeep private keys out of shell history (use grvt setup which reads from stdin).\nRotate API keys regularly.\nNever use the CLI with more funds than the user can afford to lose.\nInstallation\npnpm add -g @madeinusmate/grvt-cli\n\n\nVerify: grvt --version\n\nFirst-Time Setup\n\nThe interactive wizard handles everything:\n\ngrvt setup\n\n\nThe 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.\n\nNote: Because grvt setup is interactive and requires user input, agents cannot run it directly. Use the manual setup flow below instead.\n\nManual setup (recommended for agents):\n\ngrvt config set env testnet\ngrvt auth login --api-key YOUR_API_KEY --private-key 0xYOUR_PRIVATE_KEY\ngrvt config set subAccountId YOUR_SUB_ACCOUNT_ID\n\n\nVerify setup:\n\ngrvt auth status\ngrvt config list\n\nConfiguration\n\nConfig file: ~/.config/grvt/config.toml (permissions 0600).\n\nKey\tType\tDefault\tDescription\nenv\tdev|staging|testnet|prod\tprod\tGRVT environment\napiKey\tstring\t-\tGRVT API key\nprivateKey\tstring\t-\tEthereum private key (0x-prefixed) for EIP-712 signing\nsubAccountId\tstring\t-\tDefault sub-account for trading commands\naccountId\tstring\t-\tMain account ID (set automatically on login)\ncookie\tstring\t-\tSession cookie (set automatically on login)\noutputDefaults.output\tjson|ndjson|table|raw\ttable\tDefault output format\noutputDefaults.pretty\tboolean\tfalse\tPretty-print JSON\noutputDefaults.silent\tboolean\tfalse\tSuppress info logs\nhttp.timeoutMs\tnumber\t10000\tRequest timeout (ms)\nhttp.retries\tnumber\t3\tRetry count\nhttp.backoffMs\tnumber\t200\tInitial backoff (ms)\nhttp.maxBackoffMs\tnumber\t10000\tMax backoff (ms)\n\nSecret keys (apiKey, privateKey, cookie) are redacted in config list / config get output.\n\nUse grvt config set <key> <value> and grvt config unset <key> to modify. Use dot-notation for nested keys (e.g. outputDefaults.output).\n\nAuthentication\n\nLogin requires an API key. A private key is optional but required for write operations (orders, transfers, withdrawals, derisk).\n\ngrvt auth login --api-key KEY --private-key 0xKEY\n\n\nThe session cookie is stored in config and sent automatically with authenticated requests.\n\nCommand\tDescription\ngrvt auth login\tAuthenticate (stores session cookie + account ID)\ngrvt auth status\tVerify session is valid (calls API)\ngrvt auth whoami\tShow current auth state (local only, no API call)\ngrvt auth logout\tClear all stored credentials\n\nEIP-712 signing is used for: order creation, transfers, withdrawals, and derisk operations. The private key never leaves the local machine.\n\nEnvironments\nEnvironment\tMarket Data\tTrading\tEdge (Auth)\ndev\tmarket-data.dev.gravitymarkets.io\ttrades.dev.gravitymarkets.io\tedge.dev.gravitymarkets.io\nstaging\tmarket-data.staging.gravitymarkets.io\ttrades.staging.gravitymarkets.io\tedge.staging.gravitymarkets.io\ntestnet\tmarket-data.testnet.grvt.io\ttrades.testnet.grvt.io\tedge.testnet.grvt.io\nprod\tmarket-data.grvt.io\ttrades.grvt.io\tedge.grvt.io\n\nSwitch with: grvt config set env testnet\n\nGlobal Options\n\nAvailable on every command:\n\nOption\tDescription\tDefault\n--output <format>\tjson, ndjson, table, raw\ttable (TTY) / json (piped)\n--pretty\tPretty-print JSON\tfalse\n--silent\tSuppress info logs\tfalse\n--no-color\tDisable colors\t-\n--yes\tSkip confirmation prompts\t-\n--retries <n>\tRetry count\t3\n--timeout-ms <n>\tRequest timeout (ms)\t10000\n\nWrite commands (order create, order cancel, transfer create, withdraw create, derisk) also support:\n\nOption\tDescription\n--dry-run\tValidate and show the signed payload without sending\n--json <path>\tRead full request body from file (@file.json) or stdin (-)\nCommand Overview\ngrvt\n  setup                         Interactive setup wizard\n  config                        Manage local configuration\n    path / get / set / unset / list / export / import\n  auth                          Authentication and session\n    login / status / whoami / logout\n  market                        Market data (mostly unauthenticated)\n    instruments / instrument / currency / orderbook / trades\n    candles / funding-rate / ticker / mini-ticker / margin-rules\n  account                       Account info (requires auth)\n    funding / summary / aggregated / history\n  trade                         Trading (requires auth; writes need private key)\n    order create / order get / order open / order cancel / order cancel-all / order history\n    fills / positions / funding-payments\n    leverage get / leverage set\n    cancel-on-disconnect / derisk\n  funds                         Fund management (requires auth; writes need private key)\n    deposit history\n    transfer create / transfer history\n    withdraw create / withdraw history\n\n\nFor full flag details on each command, read the corresponding reference file:\n\nreferences/commands-config.md — config and auth commands\nreferences/commands-market.md — market data commands\nreferences/commands-trade.md — trading commands\nreferences/commands-account.md — account commands\nreferences/commands-funds.md — fund management commands\nreferences/errors.md — error codes and troubleshooting\nInstrument Naming\n\nGRVT uses structured instrument symbols:\n\nType\tPattern\tExample\nPerpetual\t{BASE}_{QUOTE}_Perp\tBTC_USDT_Perp\nFuture\t{BASE}_{QUOTE}_Fut_{DATE}\tBTC_USDT_Fut_20Oct23\nCall\t{BASE}_{QUOTE}_Call_{DATE}_{STRIKE}\tETH_USDT_Call_20Oct23_2800\nPut\t{BASE}_{QUOTE}_Put_{DATE}_{STRIKE}\tETH_USDT_Put_20Oct23_2800\n\nAlways discover available instruments before trading:\n\ngrvt market instruments\ngrvt market instruments --kind PERPETUAL --base BTC\ngrvt market instrument --instrument BTC_USDT_Perp\n\nOutput Format Guide\nFormat\tWhen to use\ntable\tInteractive display in terminal (default in TTY)\njson\tParsing output programmatically, piping to jq\nndjson\tStreaming large datasets with --all pagination\nraw\tDebugging raw API responses\n\nThe CLI auto-detects: table when stdout is a TTY, json when piped. Override with --output <format>.\n\nWhen 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.\n\nKey Workflows\nMarket Analysis\ngrvt market instruments --kind PERPETUAL\ngrvt market orderbook --instrument BTC_USDT_Perp --depth 50\ngrvt market ticker --instrument BTC_USDT_Perp --greeks --derived\ngrvt market candles --instrument BTC_USDT_Perp --interval CI_1_H --limit 24\ngrvt market funding-rate --instrument BTC_USDT_Perp --limit 10\ngrvt market margin-rules --instrument BTC_USDT_Perp\n\nPlace and Manage Orders\n# Limit buy\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000\n\n# Market sell\ngrvt trade order create --instrument BTC_USDT_Perp --side sell --type market --qty 0.01\n\n# With options\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit \\\n  --qty 0.01 --price 68000 --post-only --time-in-force IOC --expiration-seconds 60\n\n# Monitor\ngrvt trade order open\ngrvt trade order get --order-id 0x123...\n\n# Cancel\ngrvt trade order cancel --order-id 0x123...\ngrvt trade order cancel-all\ngrvt trade order cancel-all --instrument BTC_USDT_Perp\n\nPortfolio Check\ngrvt trade positions\ngrvt account summary\ngrvt account aggregated\ngrvt account funding\ngrvt account history --start-time 2025-01-01T00:00:00Z --limit 24\n\nFund Management\n# Transfer between sub-accounts\ngrvt funds transfer create \\\n  --from-sub-account-id FROM_ID --to-sub-account-id TO_ID \\\n  --currency USDT --amount 100\n\n# Withdraw to Ethereum address\ngrvt funds withdraw create \\\n  --to-address 0xYOUR_ETH_ADDRESS --currency USDT --amount 50\n\n# View history\ngrvt funds deposit history --all\ngrvt funds transfer history --start-time 2025-01-01T00:00:00Z\ngrvt funds withdraw history --limit 10\n\nLeverage and Risk\ngrvt trade leverage get\ngrvt trade leverage set --instrument BTC_USDT_Perp --leverage 10\ngrvt trade cancel-on-disconnect --countdown 5000\ngrvt trade derisk --ratio 0.5\n\nShell Patterns\n\nPipe JSON output to jq:\n\ngrvt market instruments --output json | jq '.[].instrument'\ngrvt trade order open --output json | jq '.[] | {instrument, side: .legs[0].is_buying_asset, size: .legs[0].size}'\n\n\nStream paginated results:\n\ngrvt trade fills --all --output ndjson | jq '.instrument'\ngrvt trade order history --all --output ndjson > all_orders.jsonl\n\n\nRead order payload from a file:\n\ngrvt trade order create --json @order.json\necho '{\"order\": {...}}' | grvt trade order create --json -\n\n\nSkip confirmations for scripting:\n\ngrvt trade order cancel-all --yes --silent\ngrvt funds transfer create ... --yes --silent\n\n\nDry-run to preview:\n\ngrvt trade order create --instrument BTC_USDT_Perp --side buy --type limit --qty 0.01 --price 68000 --dry-run\n\nTimestamp Formats\n\nAll --start-time and --end-time flags accept:\n\nFormat\tExample\nUnix seconds\t1704067200\nUnix milliseconds\t1704067200000\nUnix nanoseconds\t1704067200000000000\nISO 8601\t2025-01-01T00:00:00Z\nError Handling\nExit Code\tMeaning\n0\tSuccess\n2\tUsage / validation error (bad flags, missing required options)\n3\tAuthentication / permission error (expired session, invalid key)\n4\tPartial failure (batch operations like cancel-all)\n5\tAPI / network error (server errors, timeouts, rate limits)\n\nCommon recovery patterns:\n\nExit 3: Run grvt auth login to refresh session\nExit 5 with 429: Reduce request frequency; CLI retries automatically with exponential backoff\nExit 2: Check grvt <command> --help for required options\n\nFor detailed error scenarios and troubleshooting, read references/errors.md.\n\nLibrary Usage\n\n@madeinusmate/grvt-cli can also be imported as a Node.js library:\n\nimport { createHttpClient, login, createOrder, getOpenOrders, getPositions } from \"@madeinusmate/grvt-cli\";\n\n\nSee src/index.ts in the package source for all exported functions.\n\nCandle Intervals\n\nValid values for --interval on grvt market candles:\n\nCI_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\n\nInstrument Kind Filters\n\nValid values for --kind filters (comma-separated):\n\nPERPETUAL, FUTURE, CALL, PUT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/madeinusmate/grvt-markets-agent-skill",
    "publisherUrl": "https://clawhub.ai/madeinusmate/grvt-markets-agent-skill",
    "owner": "madeinusmate",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/grvt-markets-agent-skill",
    "agentUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/grvt-markets-agent-skill/agent.md"
  }
}