{
  "schemaVersion": "1.0",
  "item": {
    "slug": "supurr-hyperliquid",
    "name": "Supurr Hyperliquid Algorithmic Trading",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/yashagarwal1994/supurr-hyperliquid",
    "canonicalUrl": "https://clawhub.ai/yashagarwal1994/supurr-hyperliquid",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/supurr-hyperliquid",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=supurr-hyperliquid",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "tutorials/dca.md",
      "tutorials/arb.md",
      "tutorials/grid.md",
      ".claude-plugin/plugin.json"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/supurr-hyperliquid"
    },
    "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/supurr-hyperliquid",
    "agentPageUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/agent",
    "manifestUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Supurr CLI — Complete Command Reference",
        "body": "For LLMs: This is the authoritative reference. Use exact syntax. Config files are in ~/.supurr/configs/."
      },
      {
        "title": "Quick Reference",
        "body": "CommandPurposesupurr initSetup wallet credentialssupurr whoamiShow current walletsupurr new gridGenerate grid strategy configsupurr new arbGenerate spot-perp arb configsupurr new dcaGenerate DCA strategy configsupurr configsList saved configssupurr config <name>View config detailssupurr backtestRun historical simulationsupurr deployDeploy bot to productionsupurr monitorView active botssupurr historyView historical bot sessionssupurr stopStop a running bot (signed)supurr pricesDebug price datasupurr updateUpdate CLI to latest"
      },
      {
        "title": "Global Options",
        "body": "supurr --help              # Show all commands\nsupurr --version, -V       # Show CLI version\nsupurr -d, --debug         # Enable debug logging (any command)"
      },
      {
        "title": "1. supurr init — Credential Setup",
        "body": "# Interactive\nsupurr init\n\n# Non-interactive\nsupurr init --address 0x... --api-wallet 0x...\n\n# Overwrite existing\nsupurr init --force\n\nOptionDescription-f, --forceOverwrite existing credentials--address <address>Wallet address (0x...)--api-wallet <key>API wallet private key"
      },
      {
        "title": "2. supurr whoami — Show Identity",
        "body": "supurr whoami    # Shows: Address + masked key"
      },
      {
        "title": "3. supurr new <strategy> — Config Generator",
        "body": "Supports three strategies: grid, arb, dca.\n\nsupurr new grid [options]   # Grid trading\nsupurr new arb [options]    # Spot-perp arbitrage\nsupurr new dca [options]    # Dollar-cost averaging"
      },
      {
        "title": "3a. supurr new grid — Grid Strategy",
        "body": "Market Types\n\nTypeQuoteRequiresExamplenativeUSDC—--asset BTCspotVariable--quote--asset HYPE --type spot --quote USDChip3Per-DEX--dex--asset BTC --type hip3 --dex hyna\n\nGrid Options\n\nOptionDefaultDescription-a, --asset <symbol>BTCBase asset (BTC, ETH, HYPE, etc.)-o, --output <file>config.jsonOutput filename--type <type>nativeMarket type: native, spot, hip3--dex <dex>—Required for hip3: hyna, xyz, km, vntl--quote <quote>—Required for spot: USDC, USDE, USDT0, USDH--mode <mode>longGrid mode: long, short, neutral--levels <n>20Number of grid levels--start-price <price>—Grid start price--end-price <price>—Grid end price--investment <amount>1000Max investment in quote currency--leverage <n>2Leverage (1 for spot)--testnetfalseUse Hyperliquid testnet\n\nGrid Examples\n\n# Native Perp (BTC-USDC)\nsupurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20\n\n# USDC Spot (HYPE/USDC)\nsupurr new grid --asset HYPE --type spot --quote USDC --levels 3 --start-price 29 --end-price 32 --investment 100\n\n# Non-USDC Spot (HYPE/USDH)\nsupurr new grid --asset HYPE --type spot --quote USDH --levels 3 --start-price 29 --end-price 32 --investment 100\n\n# HIP-3 (hyna:BTC)\nsupurr new grid --asset BTC --type hip3 --dex hyna --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20\n\nHIP-3 DEXes\n\nDEXQuoteAssetshynaUSDECrypto perps (BTC, ETH, HYPE, etc.)xyzUSDEStocks (AAPL, TSLA, etc.)kmUSDTKinetiq MarketsvntlUSDEAI/tech tokens"
      },
      {
        "title": "3b. supurr new arb — Spot-Perp Arbitrage Strategy",
        "body": "Generates a config that simultaneously trades the spot and perp legs of the same asset, capturing spread differentials.\n\nMarket Constraint: Only assets that have both a spot token AND a perp market on Hyperliquid are eligible. The CLI auto-resolves the spot counterpart.\n\nSpot Resolution Logic\n\nHyperliquid spot tokens for major assets use a U-prefix naming convention:\n\nYou pass --assetCLI resolves spot tokenSpot pairPerp pairBTCUBTCUBTC/USDCBTC perpETHUETHUETH/USDCETH perpSOLUSOLUSOL/USDCSOL perpENAUENAUENA/USDCENA perpWLDUWLDUWLD/USDCWLD perpMONUMONUMON/USDCMON perpMEGAUMEGAUMEGA/USDCMEGA perpZECUZECUZEC/USDCZEC perpXPLUXPLUXPL/USDCXPL perpPUMPUPUMPUPUMP/USDCPUMP perpHYPEHYPE (exact name)HYPE/USDCHYPE perpTRUMPTRUMP (exact name)TRUMP/USDCTRUMP perpPURRPURR (exact name)PURR/USDCPURR perpBERABERA (exact name)BERA/USDCBERA perp\n\nResolution order: try U{ASSET} first → fallback to exact name → fail if neither exists.\n\n⚠️ U-prefix Hazard: Do NOT pass asset names that already start with U (e.g., UNIT). The CLI will prepend another U and look for UUNIT, which doesn't exist. Always use the perp ticker name (e.g., BTC, not UBTC).\n\nArb Options\n\nOptionDefaultDescription-a, --asset <symbol>BTCPerp asset name (BTC, ETH, HYPE, etc.)--amount <usdc>100Order amount in USDC per leg--leverage <n>1Leverage for perp leg--open-spread <pct>0.003Min opening spread (0.003 = 0.3%)--close-spread <pct>-0.001Min closing spread (-0.001 = -0.1%)--slippage <pct>0.001Slippage buffer for both legs (0.001 = 0.1%)-o, --output <file>{asset}-arb.jsonOutput filename--testnetfalseUse Hyperliquid testnet\n\nArb Examples\n\n# BTC spot-perp arb (default $100/leg)\nsupurr new arb --asset BTC\n\n# HYPE arb with $50 per leg, 2x leverage on perp\nsupurr new arb --asset HYPE --amount 50 --leverage 2\n\n# ETH arb with tighter spreads\nsupurr new arb --asset ETH --open-spread 0.002 --close-spread -0.0005 --slippage 0.0005\n\n# SOL arb on testnet\nsupurr new arb --asset SOL --testnet\n\nBalance Requirement: Arb bots require USDC balance in both Spot and Perps wallets on Hyperliquid, since the bot trades on both sides simultaneously."
      },
      {
        "title": "3c. supurr new dca — DCA Strategy",
        "body": "Generates a Dollar-Cost Averaging config that opens positions in steps when price deviates, then takes profit on the averaged entry.\n\nDCA Options\n\nOptionDefaultDescription-a, --asset <symbol>BTCBase asset--mode <mode>longDirection: long or short--type <type>nativeMarket type: native, spot, hip3--trigger-price <price>100000Price to trigger base order--base-order <size>0.001Base order size in base asset--dca-order <size>0.001DCA order size in base asset--max-orders <n>5Max number of DCA orders--size-multiplier <x>2.0Size multiplier per DCA step--deviation <pct>0.01Price deviation % to trigger first DCA (0.01 = 1%)--deviation-multiplier <x>1.0Deviation multiplier for subsequent steps--take-profit <pct>0.02Take profit % from avg entry (0.02 = 2%)--stop-loss <pnl>—Optional stop loss as absolute PnL threshold--leverage <n>2Leverage (1 for spot)--restartfalseRestart cycle after take profit--cooldown <secs>60Cooldown between cycles in seconds-o, --output <file>config.jsonOutput filename--testnetfalseUse Hyperliquid testnet\n\nDCA Examples\n\n# BTC DCA long, trigger at $95k\nsupurr new dca --asset BTC --trigger-price 95000\n\n# ETH DCA short with custom deviation\nsupurr new dca --asset ETH --mode short --deviation 0.02\n\n# HYPE DCA with auto-restart\nsupurr new dca --asset HYPE --restart --cooldown 120 --take-profit 0.03\n\n# DCA on spot market\nsupurr new dca --asset HYPE --type spot --quote USDC --trigger-price 25"
      },
      {
        "title": "4. supurr configs — List Saved Configs",
        "body": "supurr configs    # Lists all configs in ~/.supurr/configs/\n\nOutput:\n\n📁 Configs (/Users/you/.supurr/configs):\n  btc-grid.json         grid     BTC-USDC\n  hype-usdc-spot.json   grid     HYPE-USDC\n  hyna-btc.json         grid     BTC-USDE"
      },
      {
        "title": "5. supurr config <name> — View Config",
        "body": "supurr config btc-grid        # View btc-grid.json\nsupurr config btc-grid.json   # Same"
      },
      {
        "title": "Syntax",
        "body": "supurr backtest -c <config> [options]"
      },
      {
        "title": "Options",
        "body": "OptionDescription-c, --config <file>Required. Config file (name or path)-s, --start <date>Start date (YYYY-MM-DD)-e, --end <date>End date (YYYY-MM-DD)-p, --prices <file>Use local prices file-o, --output <file>Save results to JSON--no-cacheDisable price caching"
      },
      {
        "title": "Examples",
        "body": "# By config name (looks in ~/.supurr/configs/)\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# By full path\nsupurr backtest -c ~/.supurr/configs/btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# Save results\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01 -o results.json"
      },
      {
        "title": "Archive Data Availability",
        "body": "DexAsset FormatExamplehyperliquidBTC, HYPENative perp + Spothynahyna:BTC, hyna:ETHHIP-3 DEX\n\nNote: Archive data available from 2026-01-28 onwards.\nImportant: Backtests use Supurr's price archive (tick-level) or a user-provided prices file (-p). Do not use Hyperliquid Info API mids/candles for backtests; they don't provide tick-level historical data and will produce inaccurate results."
      },
      {
        "title": "7. supurr deploy — Deploy Bot",
        "body": "supurr deploy -c <config> [-s <address> | -v <address>]\n\nOptionDescription-c, --config <file>Required. Config file (name or path)-s, --subaccount <address>Trade from a subaccount (validates master ownership)-v, --vault <address>Trade from a vault (validates you are the vault leader)\n\nSubaccount vs Vault:\n\nSubaccount = personal trading account under your master wallet. Verified via subAccounts API (checks master field).\nVault = shared investment pool you manage. Verified via vaultDetails API (checks leader field).\nBoth set vault_address in the bot config on success.\nCannot use both --subaccount and --vault simultaneously."
      },
      {
        "title": "Examples",
        "body": "# Deploy from main wallet\nsupurr deploy -c btc-grid.json\n\n# Deploy from subaccount\nsupurr deploy -c btc-grid.json -s 0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b\n\n# Deploy from vault (you must be the vault leader)\nsupurr deploy -c config.json --vault 0xdc89f67e74098dd93a1476f7da79747f71ccb5d9\n\n# HL: prefix is auto-stripped (copy-paste from Hyperliquid UI)\nsupurr deploy -c config.json -s HL:0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b\n\nOutput:\n\n✔ Loaded config for grid strategy\n✔ Subaccount verified: 0x804e57d7...\n✔ Bot deployed successfully!\n📦 Deployment Details\n  Bot ID:       217\n  Pod Name:     bot-217\n  Bot Type:     grid\n  Market:       BTC-USDC"
      },
      {
        "title": "Gotchas",
        "body": "IssueSolutionHL: prefix in addressAuto-stripped — safe to paste from Hyperliquid explorer\"Subaccount not owned\"Ensure the subaccount's master matches your supurr whoami address\"Vault not found\"Check the vault address exists on the correct network (mainnet vs testnet)\"Vault leader mismatch\"Only the vault leader can deploy — check vaultDetails APIsubAccounts returns nullNormal — means no subaccounts exist for that address"
      },
      {
        "title": "Syntax",
        "body": "supurr monitor [options]"
      },
      {
        "title": "Options",
        "body": "OptionDescription-w, --wallet <address>Filter by wallet address--watchLive mode (refreshes every 2s)"
      },
      {
        "title": "Examples",
        "body": "supurr monitor                 # List all active bots\nsupurr monitor --watch         # Live monitoring (Ctrl+C to exit)\nsupurr monitor -w 0x1234...    # Filter by wallet\n\nOutput Columns:\n\nID — Bot identifier\nType — Strategy (grid, dca, mm, arb)\nMarket — Trading pair (BTC-USDC, HYPE-USDH)\nPosition — Size + direction (L=Long, S=Short)\nPnL — Total profit/loss"
      },
      {
        "title": "9. supurr history — View Bot History",
        "body": "supurr history             # Show last 20 bot sessions\nsupurr history -n 50       # Show last 50 bot sessions\n\nOptionDefaultDescription-n, --limit <count>20Number of bots to show\n\nOutput Columns:\n\nID — Bot identifier\nMarket — Trading pair (from config.markets[0])\nType — Strategy (grid, dca, mm, arb)\nPnL — Total profit/loss (realized + unrealized)\nStop Reason — Why the bot stopped (shutdown:graceful → \"User stopped the bot Successfully\")"
      },
      {
        "title": "10. supurr stop — Stop Bot (Signature Auth)",
        "body": "Signs Stop <bot-id> with your API wallet private key (EIP-191 personal_sign) and sends the signature to the bot API.\n\nsupurr stop              # Interactive - select from list\nsupurr stop --id 217     # Stop specific bot by ID\n\nOptionDescription--id <bot_id>Bot ID to stop (from supurr monitor)\n\nCrypto: Uses @noble/curves/secp256k1 + @noble/hashes/sha3 (pure JS, no native deps). Signature format: 0x{r}{s}{v} (65 bytes)."
      },
      {
        "title": "11. supurr prices — Debug Price Data",
        "body": "supurr prices -a BTC                     # Fetch BTC prices (7 days)\nsupurr prices -a hyna:BTC --dex hyna     # HIP-3 prices\nsupurr prices -a HYPE -s 2026-01-28      # From specific date\n\nOptionDescription-a, --asset <symbol>Required. Asset symbol--dex <dex>DEX name (default: hyperliquid)-s, --start <date>Start date-e, --end <date>End date--no-cacheDisable caching"
      },
      {
        "title": "12. supurr update — Self-Update",
        "body": "supurr update    # Check and install latest version"
      },
      {
        "title": "Workflow 1: Grid — Backtest → Deploy → Monitor",
        "body": "# 1. Initialize (first time only)\nsupurr init --address 0x... --api-wallet 0x...\n\n# 2. Create config\nsupurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20 --output btc-grid.json\n\n# 3. Backtest\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# 4. Deploy\nsupurr deploy -c btc-grid.json\n\n# 5. Monitor\nsupurr monitor --watch\n\n# 6. Stop when done\nsupurr stop --id <bot_id>"
      },
      {
        "title": "Workflow 2: Arb — Setup → Deploy → Monitor",
        "body": "# 1. Initialize\nsupurr init --address 0x... --api-wallet 0x...\n\n# 2. Generate arb config (auto-resolves spot counterpart)\nsupurr new arb --asset BTC --amount 200 --leverage 1 --output btc-arb.json\n\n# 3. Review the generated config\nsupurr config btc-arb\n\n# 4. Ensure USDC balance in BOTH Spot and Perps wallets on Hyperliquid\n\n# 5. Deploy\nsupurr deploy -c btc-arb.json\n\n# 6. Monitor\nsupurr monitor --watch"
      },
      {
        "title": "Workflow 3: DCA — Configure → Deploy",
        "body": "# 1. Create DCA config\nsupurr new dca --asset BTC --trigger-price 95000 --base-order 0.001 --max-orders 5 --take-profit 0.02 --output btc-dca.json\n\n# 2. Deploy\nsupurr deploy -c btc-dca.json\n\n# 3. Monitor\nsupurr monitor --watch"
      },
      {
        "title": "Workflow 4: Test All Market Types",
        "body": "# Native Perp\nsupurr new grid --asset BTC --output native-btc.json\nsupurr backtest -c native-btc.json -s 2026-01-28 -e 2026-02-01\n\n# USDC Spot\nsupurr new grid --asset HYPE --type spot --quote USDC --output hype-usdc.json\nsupurr backtest -c hype-usdc.json -s 2026-01-30 -e 2026-01-31\n\n# Non-USDC Spot\nsupurr new grid --asset HYPE --type spot --quote USDH --output hype-usdh.json\nsupurr backtest -c hype-usdh.json -s 2026-01-30 -e 2026-01-31\n\n# HIP-3\nsupurr new grid --asset BTC --type hip3 --dex hyna --output hyna-btc.json\nsupurr backtest -c hyna-btc.json -s 2026-01-28 -e 2026-02-01"
      },
      {
        "title": "Config Storage",
        "body": "~/.supurr/\n├── credentials.json      # { address, private_key }\n├── configs/              # Saved bot configs\n│   ├── btc-grid.json\n│   ├── hype-usdc.json\n│   └── ...\n└── cache/                # Price data cache\n    └── hyperliquid/\n        ├── BTC/\n        └── HYPE/"
      },
      {
        "title": "API Endpoints Used",
        "body": "PurposeEndpointAuthBot DeployPOST /bots/create/<wallet>—Active BotsGET /dashboard/active_bots—Bot HistoryGET /dashboard/user_bots/<address> (Python)—Stop BotPOST /bots/<bot_id>/stop (Node)EIP-191 signaturePrice DataGET /prices?dex=X&asset=Y&start_time=Z—Price ArchiveGET /{dex}/{asset}/{date}.json—"
      },
      {
        "title": "Troubleshooting",
        "body": "IssueSolution\"Config not found\"Use supurr configs to list available configs\"No credentials\"Run supurr init first\"0 prices fetched\"Check date range (data from 2026-01-28+)\"API wallet not valid\"Register API wallet on Hyperliquid firstHIP-3 backtest failsUse format --dex hyna --asset BTC\"No spot market found\"Asset has no spot counterpart — arb not available for this assetArb asset starts with UUse the perp name (e.g., BTC not UBTC) — CLI adds U prefix"
      },
      {
        "title": "Appendix: Hyperliquid Info API",
        "body": "Backtesting note: This appendix is for live metadata and user state lookups. It is not a source of tick-level historical data for supurr backtest.\n\nGet address via: supurr whoami — returns the configured wallet address.\n\nAll endpoints use POST https://api.hyperliquid.xyz/info with Content-Type: application/json."
      },
      {
        "title": "Market Data (No Address Required)",
        "body": "QueryRequest BodyAll Mid Prices{\"type\": \"allMids\"}Sub-DEX Prices{\"type\": \"allMids\", \"dex\": \"hyna\"}Perp Metadata{\"type\": \"metaAndAssetCtxs\"}Spot Metadata{\"type\": \"spotMeta\"}L2 Order Book{\"type\": \"l2Book\", \"coin\": \"BTC\"}List HIP-3 DEXes{\"type\": \"perpDexs\"}"
      },
      {
        "title": "User Data (Address Required)",
        "body": "QueryRequest BodyPerp Positions{\"type\": \"clearinghouseState\", \"user\": \"0x...\"}Spot Balances{\"type\": \"spotClearinghouseState\", \"user\": \"0x...\"}Open Orders{\"type\": \"openOrders\", \"user\": \"0x...\"}Order History{\"type\": \"historicalOrders\", \"user\": \"0x...\"}Trade Fills{\"type\": \"userFills\", \"user\": \"0x...\", \"aggregateByTime\": true}Funding History{\"type\": \"userFunding\", \"user\": \"0x...\", \"startTime\": <ts>, \"endTime\": <ts>}Sub-Accounts{\"type\": \"subAccounts\", \"user\": \"0x...\"}Vault Details{\"type\": \"vaultDetails\", \"vaultAddress\": \"0x...\"}"
      },
      {
        "title": "HIP-3 Sub-DEXes",
        "body": "DEXQuoteAssetshynaUSDECrypto perps (BTC, ETH, HYPE)xyzUSDEStocks (AAPL, TSLA, NVDA)vntlUSDEAI/tech tokenskmUSDTKinetiq MarketscashUSDCTech stocks"
      },
      {
        "title": "TypeScript Helper",
        "body": "const HL = \"https://api.hyperliquid.xyz/info\";\n\nasync function query<T>(body: object): Promise<T> {\n  const res = await fetch(HL, {\n    method: \"POST\",\n    headers: { \"Content-Type\": \"application/json\" },\n    body: JSON.stringify(body),\n  });\n  return res.json();\n}\n\n// Examples\nconst mids = await query({ type: \"allMids\" });\nconst positions = await query({ type: \"clearinghouseState\", user: \"0x...\" });\nconst spotBal = await query({ type: \"spotClearinghouseState\", user: \"0x...\" });\nconst dexes = await query({ type: \"perpDexs\" });"
      },
      {
        "title": "Common Hazards",
        "body": "IssueSolutionszDecimals truncationTruncate qty to szDecimals before submitHIP-3 price prefixSub-DEX prices keyed as hyna:BTC, not BTCSub-DEX asset indexUse local index from DEX's universe, not globalFill limitsuserFills max 2000 — paginate with time ranges"
      },
      {
        "title": "Tutorials",
        "body": "Step-by-step deployment guides with parameter selection advice and practical tips:\n\nGrid Bot Tutorial — Range trading with buy/sell grids\nArb Bot Tutorial — Market-neutral spot-perp arbitrage\nDCA Bot Tutorial — Dollar-cost averaging with auto-restart"
      }
    ],
    "body": "Supurr CLI — Complete Command Reference\n\nFor LLMs: This is the authoritative reference. Use exact syntax. Config files are in ~/.supurr/configs/.\n\nQuick Reference\nCommand\tPurpose\nsupurr init\tSetup wallet credentials\nsupurr whoami\tShow current wallet\nsupurr new grid\tGenerate grid strategy config\nsupurr new arb\tGenerate spot-perp arb config\nsupurr new dca\tGenerate DCA strategy config\nsupurr configs\tList saved configs\nsupurr config <name>\tView config details\nsupurr backtest\tRun historical simulation\nsupurr deploy\tDeploy bot to production\nsupurr monitor\tView active bots\nsupurr history\tView historical bot sessions\nsupurr stop\tStop a running bot (signed)\nsupurr prices\tDebug price data\nsupurr update\tUpdate CLI to latest\nGlobal Options\nsupurr --help              # Show all commands\nsupurr --version, -V       # Show CLI version\nsupurr -d, --debug         # Enable debug logging (any command)\n\n1. supurr init — Credential Setup\n# Interactive\nsupurr init\n\n# Non-interactive\nsupurr init --address 0x... --api-wallet 0x...\n\n# Overwrite existing\nsupurr init --force\n\nOption\tDescription\n-f, --force\tOverwrite existing credentials\n--address <address>\tWallet address (0x...)\n--api-wallet <key>\tAPI wallet private key\n2. supurr whoami — Show Identity\nsupurr whoami    # Shows: Address + masked key\n\n3. supurr new <strategy> — Config Generator\n\nSupports three strategies: grid, arb, dca.\n\nsupurr new grid [options]   # Grid trading\nsupurr new arb [options]    # Spot-perp arbitrage\nsupurr new dca [options]    # Dollar-cost averaging\n\n3a. supurr new grid — Grid Strategy\nMarket Types\nType\tQuote\tRequires\tExample\nnative\tUSDC\t—\t--asset BTC\nspot\tVariable\t--quote\t--asset HYPE --type spot --quote USDC\nhip3\tPer-DEX\t--dex\t--asset BTC --type hip3 --dex hyna\nGrid Options\nOption\tDefault\tDescription\n-a, --asset <symbol>\tBTC\tBase asset (BTC, ETH, HYPE, etc.)\n-o, --output <file>\tconfig.json\tOutput filename\n--type <type>\tnative\tMarket type: native, spot, hip3\n--dex <dex>\t—\tRequired for hip3: hyna, xyz, km, vntl\n--quote <quote>\t—\tRequired for spot: USDC, USDE, USDT0, USDH\n--mode <mode>\tlong\tGrid mode: long, short, neutral\n--levels <n>\t20\tNumber of grid levels\n--start-price <price>\t—\tGrid start price\n--end-price <price>\t—\tGrid end price\n--investment <amount>\t1000\tMax investment in quote currency\n--leverage <n>\t2\tLeverage (1 for spot)\n--testnet\tfalse\tUse Hyperliquid testnet\nGrid Examples\n# Native Perp (BTC-USDC)\nsupurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20\n\n# USDC Spot (HYPE/USDC)\nsupurr new grid --asset HYPE --type spot --quote USDC --levels 3 --start-price 29 --end-price 32 --investment 100\n\n# Non-USDC Spot (HYPE/USDH)\nsupurr new grid --asset HYPE --type spot --quote USDH --levels 3 --start-price 29 --end-price 32 --investment 100\n\n# HIP-3 (hyna:BTC)\nsupurr new grid --asset BTC --type hip3 --dex hyna --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20\n\nHIP-3 DEXes\nDEX\tQuote\tAssets\nhyna\tUSDE\tCrypto perps (BTC, ETH, HYPE, etc.)\nxyz\tUSDE\tStocks (AAPL, TSLA, etc.)\nkm\tUSDT\tKinetiq Markets\nvntl\tUSDE\tAI/tech tokens\n3b. supurr new arb — Spot-Perp Arbitrage Strategy\n\nGenerates a config that simultaneously trades the spot and perp legs of the same asset, capturing spread differentials.\n\nMarket Constraint: Only assets that have both a spot token AND a perp market on Hyperliquid are eligible. The CLI auto-resolves the spot counterpart.\n\nSpot Resolution Logic\n\nHyperliquid spot tokens for major assets use a U-prefix naming convention:\n\nYou pass --asset\tCLI resolves spot token\tSpot pair\tPerp pair\nBTC\tUBTC\tUBTC/USDC\tBTC perp\nETH\tUETH\tUETH/USDC\tETH perp\nSOL\tUSOL\tUSOL/USDC\tSOL perp\nENA\tUENA\tUENA/USDC\tENA perp\nWLD\tUWLD\tUWLD/USDC\tWLD perp\nMON\tUMON\tUMON/USDC\tMON perp\nMEGA\tUMEGA\tUMEGA/USDC\tMEGA perp\nZEC\tUZEC\tUZEC/USDC\tZEC perp\nXPL\tUXPL\tUXPL/USDC\tXPL perp\nPUMP\tUPUMP\tUPUMP/USDC\tPUMP perp\nHYPE\tHYPE (exact name)\tHYPE/USDC\tHYPE perp\nTRUMP\tTRUMP (exact name)\tTRUMP/USDC\tTRUMP perp\nPURR\tPURR (exact name)\tPURR/USDC\tPURR perp\nBERA\tBERA (exact name)\tBERA/USDC\tBERA perp\n\nResolution order: try U{ASSET} first → fallback to exact name → fail if neither exists.\n\n⚠️ U-prefix Hazard: Do NOT pass asset names that already start with U (e.g., UNIT). The CLI will prepend another U and look for UUNIT, which doesn't exist. Always use the perp ticker name (e.g., BTC, not UBTC).\n\nArb Options\nOption\tDefault\tDescription\n-a, --asset <symbol>\tBTC\tPerp asset name (BTC, ETH, HYPE, etc.)\n--amount <usdc>\t100\tOrder amount in USDC per leg\n--leverage <n>\t1\tLeverage for perp leg\n--open-spread <pct>\t0.003\tMin opening spread (0.003 = 0.3%)\n--close-spread <pct>\t-0.001\tMin closing spread (-0.001 = -0.1%)\n--slippage <pct>\t0.001\tSlippage buffer for both legs (0.001 = 0.1%)\n-o, --output <file>\t{asset}-arb.json\tOutput filename\n--testnet\tfalse\tUse Hyperliquid testnet\nArb Examples\n# BTC spot-perp arb (default $100/leg)\nsupurr new arb --asset BTC\n\n# HYPE arb with $50 per leg, 2x leverage on perp\nsupurr new arb --asset HYPE --amount 50 --leverage 2\n\n# ETH arb with tighter spreads\nsupurr new arb --asset ETH --open-spread 0.002 --close-spread -0.0005 --slippage 0.0005\n\n# SOL arb on testnet\nsupurr new arb --asset SOL --testnet\n\n\nBalance Requirement: Arb bots require USDC balance in both Spot and Perps wallets on Hyperliquid, since the bot trades on both sides simultaneously.\n\n3c. supurr new dca — DCA Strategy\n\nGenerates a Dollar-Cost Averaging config that opens positions in steps when price deviates, then takes profit on the averaged entry.\n\nDCA Options\nOption\tDefault\tDescription\n-a, --asset <symbol>\tBTC\tBase asset\n--mode <mode>\tlong\tDirection: long or short\n--type <type>\tnative\tMarket type: native, spot, hip3\n--trigger-price <price>\t100000\tPrice to trigger base order\n--base-order <size>\t0.001\tBase order size in base asset\n--dca-order <size>\t0.001\tDCA order size in base asset\n--max-orders <n>\t5\tMax number of DCA orders\n--size-multiplier <x>\t2.0\tSize multiplier per DCA step\n--deviation <pct>\t0.01\tPrice deviation % to trigger first DCA (0.01 = 1%)\n--deviation-multiplier <x>\t1.0\tDeviation multiplier for subsequent steps\n--take-profit <pct>\t0.02\tTake profit % from avg entry (0.02 = 2%)\n--stop-loss <pnl>\t—\tOptional stop loss as absolute PnL threshold\n--leverage <n>\t2\tLeverage (1 for spot)\n--restart\tfalse\tRestart cycle after take profit\n--cooldown <secs>\t60\tCooldown between cycles in seconds\n-o, --output <file>\tconfig.json\tOutput filename\n--testnet\tfalse\tUse Hyperliquid testnet\nDCA Examples\n# BTC DCA long, trigger at $95k\nsupurr new dca --asset BTC --trigger-price 95000\n\n# ETH DCA short with custom deviation\nsupurr new dca --asset ETH --mode short --deviation 0.02\n\n# HYPE DCA with auto-restart\nsupurr new dca --asset HYPE --restart --cooldown 120 --take-profit 0.03\n\n# DCA on spot market\nsupurr new dca --asset HYPE --type spot --quote USDC --trigger-price 25\n\n4. supurr configs — List Saved Configs\nsupurr configs    # Lists all configs in ~/.supurr/configs/\n\n\nOutput:\n\n📁 Configs (/Users/you/.supurr/configs):\n  btc-grid.json         grid     BTC-USDC\n  hype-usdc-spot.json   grid     HYPE-USDC\n  hyna-btc.json         grid     BTC-USDE\n\n5. supurr config <name> — View Config\nsupurr config btc-grid        # View btc-grid.json\nsupurr config btc-grid.json   # Same\n\n6. supurr backtest — Run Backtest\nSyntax\nsupurr backtest -c <config> [options]\n\nOptions\nOption\tDescription\n-c, --config <file>\tRequired. Config file (name or path)\n-s, --start <date>\tStart date (YYYY-MM-DD)\n-e, --end <date>\tEnd date (YYYY-MM-DD)\n-p, --prices <file>\tUse local prices file\n-o, --output <file>\tSave results to JSON\n--no-cache\tDisable price caching\nExamples\n# By config name (looks in ~/.supurr/configs/)\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# By full path\nsupurr backtest -c ~/.supurr/configs/btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# Save results\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01 -o results.json\n\nArchive Data Availability\nDex\tAsset Format\tExample\nhyperliquid\tBTC, HYPE\tNative perp + Spot\nhyna\thyna:BTC, hyna:ETH\tHIP-3 DEX\n\nNote: Archive data available from 2026-01-28 onwards.\n\nImportant: Backtests use Supurr's price archive (tick-level) or a user-provided prices file (-p). Do not use Hyperliquid Info API mids/candles for backtests; they don't provide tick-level historical data and will produce inaccurate results.\n\n7. supurr deploy — Deploy Bot\nsupurr deploy -c <config> [-s <address> | -v <address>]\n\nOption\tDescription\n-c, --config <file>\tRequired. Config file (name or path)\n-s, --subaccount <address>\tTrade from a subaccount (validates master ownership)\n-v, --vault <address>\tTrade from a vault (validates you are the vault leader)\n\nSubaccount vs Vault:\n\nSubaccount = personal trading account under your master wallet. Verified via subAccounts API (checks master field).\nVault = shared investment pool you manage. Verified via vaultDetails API (checks leader field).\nBoth set vault_address in the bot config on success.\nCannot use both --subaccount and --vault simultaneously.\nExamples\n# Deploy from main wallet\nsupurr deploy -c btc-grid.json\n\n# Deploy from subaccount\nsupurr deploy -c btc-grid.json -s 0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b\n\n# Deploy from vault (you must be the vault leader)\nsupurr deploy -c config.json --vault 0xdc89f67e74098dd93a1476f7da79747f71ccb5d9\n\n# HL: prefix is auto-stripped (copy-paste from Hyperliquid UI)\nsupurr deploy -c config.json -s HL:0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b\n\n\nOutput:\n\n✔ Loaded config for grid strategy\n✔ Subaccount verified: 0x804e57d7...\n✔ Bot deployed successfully!\n📦 Deployment Details\n  Bot ID:       217\n  Pod Name:     bot-217\n  Bot Type:     grid\n  Market:       BTC-USDC\n\nGotchas\nIssue\tSolution\nHL: prefix in address\tAuto-stripped — safe to paste from Hyperliquid explorer\n\"Subaccount not owned\"\tEnsure the subaccount's master matches your supurr whoami address\n\"Vault not found\"\tCheck the vault address exists on the correct network (mainnet vs testnet)\n\"Vault leader mismatch\"\tOnly the vault leader can deploy — check vaultDetails API\nsubAccounts returns null\tNormal — means no subaccounts exist for that address\n8. supurr monitor — View Active Bots\nSyntax\nsupurr monitor [options]\n\nOptions\nOption\tDescription\n-w, --wallet <address>\tFilter by wallet address\n--watch\tLive mode (refreshes every 2s)\nExamples\nsupurr monitor                 # List all active bots\nsupurr monitor --watch         # Live monitoring (Ctrl+C to exit)\nsupurr monitor -w 0x1234...    # Filter by wallet\n\n\nOutput Columns:\n\nID — Bot identifier\nType — Strategy (grid, dca, mm, arb)\nMarket — Trading pair (BTC-USDC, HYPE-USDH)\nPosition — Size + direction (L=Long, S=Short)\nPnL — Total profit/loss\n9. supurr history — View Bot History\nsupurr history             # Show last 20 bot sessions\nsupurr history -n 50       # Show last 50 bot sessions\n\nOption\tDefault\tDescription\n-n, --limit <count>\t20\tNumber of bots to show\n\nOutput Columns:\n\nID — Bot identifier\nMarket — Trading pair (from config.markets[0])\nType — Strategy (grid, dca, mm, arb)\nPnL — Total profit/loss (realized + unrealized)\nStop Reason — Why the bot stopped (shutdown:graceful → \"User stopped the bot Successfully\")\n10. supurr stop — Stop Bot (Signature Auth)\n\nSigns Stop <bot-id> with your API wallet private key (EIP-191 personal_sign) and sends the signature to the bot API.\n\nsupurr stop              # Interactive - select from list\nsupurr stop --id 217     # Stop specific bot by ID\n\nOption\tDescription\n--id <bot_id>\tBot ID to stop (from supurr monitor)\n\nCrypto: Uses @noble/curves/secp256k1 + @noble/hashes/sha3 (pure JS, no native deps). Signature format: 0x{r}{s}{v} (65 bytes).\n\n11. supurr prices — Debug Price Data\nsupurr prices -a BTC                     # Fetch BTC prices (7 days)\nsupurr prices -a hyna:BTC --dex hyna     # HIP-3 prices\nsupurr prices -a HYPE -s 2026-01-28      # From specific date\n\nOption\tDescription\n-a, --asset <symbol>\tRequired. Asset symbol\n--dex <dex>\tDEX name (default: hyperliquid)\n-s, --start <date>\tStart date\n-e, --end <date>\tEnd date\n--no-cache\tDisable caching\n12. supurr update — Self-Update\nsupurr update    # Check and install latest version\n\nComplete Workflows\nWorkflow 1: Grid — Backtest → Deploy → Monitor\n# 1. Initialize (first time only)\nsupurr init --address 0x... --api-wallet 0x...\n\n# 2. Create config\nsupurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20 --output btc-grid.json\n\n# 3. Backtest\nsupurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01\n\n# 4. Deploy\nsupurr deploy -c btc-grid.json\n\n# 5. Monitor\nsupurr monitor --watch\n\n# 6. Stop when done\nsupurr stop --id <bot_id>\n\nWorkflow 2: Arb — Setup → Deploy → Monitor\n# 1. Initialize\nsupurr init --address 0x... --api-wallet 0x...\n\n# 2. Generate arb config (auto-resolves spot counterpart)\nsupurr new arb --asset BTC --amount 200 --leverage 1 --output btc-arb.json\n\n# 3. Review the generated config\nsupurr config btc-arb\n\n# 4. Ensure USDC balance in BOTH Spot and Perps wallets on Hyperliquid\n\n# 5. Deploy\nsupurr deploy -c btc-arb.json\n\n# 6. Monitor\nsupurr monitor --watch\n\nWorkflow 3: DCA — Configure → Deploy\n# 1. Create DCA config\nsupurr new dca --asset BTC --trigger-price 95000 --base-order 0.001 --max-orders 5 --take-profit 0.02 --output btc-dca.json\n\n# 2. Deploy\nsupurr deploy -c btc-dca.json\n\n# 3. Monitor\nsupurr monitor --watch\n\nWorkflow 4: Test All Market Types\n# Native Perp\nsupurr new grid --asset BTC --output native-btc.json\nsupurr backtest -c native-btc.json -s 2026-01-28 -e 2026-02-01\n\n# USDC Spot\nsupurr new grid --asset HYPE --type spot --quote USDC --output hype-usdc.json\nsupurr backtest -c hype-usdc.json -s 2026-01-30 -e 2026-01-31\n\n# Non-USDC Spot\nsupurr new grid --asset HYPE --type spot --quote USDH --output hype-usdh.json\nsupurr backtest -c hype-usdh.json -s 2026-01-30 -e 2026-01-31\n\n# HIP-3\nsupurr new grid --asset BTC --type hip3 --dex hyna --output hyna-btc.json\nsupurr backtest -c hyna-btc.json -s 2026-01-28 -e 2026-02-01\n\nConfig Storage\n~/.supurr/\n├── credentials.json      # { address, private_key }\n├── configs/              # Saved bot configs\n│   ├── btc-grid.json\n│   ├── hype-usdc.json\n│   └── ...\n└── cache/                # Price data cache\n    └── hyperliquid/\n        ├── BTC/\n        └── HYPE/\n\nAPI Endpoints Used\nPurpose\tEndpoint\tAuth\nBot Deploy\tPOST /bots/create/<wallet>\t—\nActive Bots\tGET /dashboard/active_bots\t—\nBot History\tGET /dashboard/user_bots/<address> (Python)\t—\nStop Bot\tPOST /bots/<bot_id>/stop (Node)\tEIP-191 signature\nPrice Data\tGET /prices?dex=X&asset=Y&start_time=Z\t—\nPrice Archive\tGET /{dex}/{asset}/{date}.json\t—\nTroubleshooting\nIssue\tSolution\n\"Config not found\"\tUse supurr configs to list available configs\n\"No credentials\"\tRun supurr init first\n\"0 prices fetched\"\tCheck date range (data from 2026-01-28+)\n\"API wallet not valid\"\tRegister API wallet on Hyperliquid first\nHIP-3 backtest fails\tUse format --dex hyna --asset BTC\n\"No spot market found\"\tAsset has no spot counterpart — arb not available for this asset\nArb asset starts with U\tUse the perp name (e.g., BTC not UBTC) — CLI adds U prefix\nAppendix: Hyperliquid Info API\n\nBacktesting note: This appendix is for live metadata and user state lookups. It is not a source of tick-level historical data for supurr backtest.\n\nGet address via: supurr whoami — returns the configured wallet address.\n\nAll endpoints use POST https://api.hyperliquid.xyz/info with Content-Type: application/json.\n\nMarket Data (No Address Required)\nQuery\tRequest Body\nAll Mid Prices\t{\"type\": \"allMids\"}\nSub-DEX Prices\t{\"type\": \"allMids\", \"dex\": \"hyna\"}\nPerp Metadata\t{\"type\": \"metaAndAssetCtxs\"}\nSpot Metadata\t{\"type\": \"spotMeta\"}\nL2 Order Book\t{\"type\": \"l2Book\", \"coin\": \"BTC\"}\nList HIP-3 DEXes\t{\"type\": \"perpDexs\"}\nUser Data (Address Required)\nQuery\tRequest Body\nPerp Positions\t{\"type\": \"clearinghouseState\", \"user\": \"0x...\"}\nSpot Balances\t{\"type\": \"spotClearinghouseState\", \"user\": \"0x...\"}\nOpen Orders\t{\"type\": \"openOrders\", \"user\": \"0x...\"}\nOrder History\t{\"type\": \"historicalOrders\", \"user\": \"0x...\"}\nTrade Fills\t{\"type\": \"userFills\", \"user\": \"0x...\", \"aggregateByTime\": true}\nFunding History\t{\"type\": \"userFunding\", \"user\": \"0x...\", \"startTime\": <ts>, \"endTime\": <ts>}\nSub-Accounts\t{\"type\": \"subAccounts\", \"user\": \"0x...\"}\nVault Details\t{\"type\": \"vaultDetails\", \"vaultAddress\": \"0x...\"}\nHIP-3 Sub-DEXes\nDEX\tQuote\tAssets\nhyna\tUSDE\tCrypto perps (BTC, ETH, HYPE)\nxyz\tUSDE\tStocks (AAPL, TSLA, NVDA)\nvntl\tUSDE\tAI/tech tokens\nkm\tUSDT\tKinetiq Markets\ncash\tUSDC\tTech stocks\nTypeScript Helper\nconst HL = \"https://api.hyperliquid.xyz/info\";\n\nasync function query<T>(body: object): Promise<T> {\n  const res = await fetch(HL, {\n    method: \"POST\",\n    headers: { \"Content-Type\": \"application/json\" },\n    body: JSON.stringify(body),\n  });\n  return res.json();\n}\n\n// Examples\nconst mids = await query({ type: \"allMids\" });\nconst positions = await query({ type: \"clearinghouseState\", user: \"0x...\" });\nconst spotBal = await query({ type: \"spotClearinghouseState\", user: \"0x...\" });\nconst dexes = await query({ type: \"perpDexs\" });\n\nCommon Hazards\nIssue\tSolution\nszDecimals truncation\tTruncate qty to szDecimals before submit\nHIP-3 price prefix\tSub-DEX prices keyed as hyna:BTC, not BTC\nSub-DEX asset index\tUse local index from DEX's universe, not global\nFill limits\tuserFills max 2000 — paginate with time ranges\nTutorials\n\nStep-by-step deployment guides with parameter selection advice and practical tips:\n\nGrid Bot Tutorial — Range trading with buy/sell grids\nArb Bot Tutorial — Market-neutral spot-perp arbitrage\nDCA Bot Tutorial — Dollar-cost averaging with auto-restart"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/yashagarwal1994/supurr-hyperliquid",
    "publisherUrl": "https://clawhub.ai/yashagarwal1994/supurr-hyperliquid",
    "owner": "yashagarwal1994",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/supurr-hyperliquid",
    "downloadUrl": "https://openagent3.xyz/downloads/supurr-hyperliquid",
    "agentUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/agent",
    "manifestUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/supurr-hyperliquid/agent.md"
  }
}