{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openmm-portfolio",
    "name": "OpenMM Portfolio",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/adacapo21/openmm-portfolio",
    "canonicalUrl": "https://clawhub.ai/adacapo21/openmm-portfolio",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openmm-portfolio",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openmm-portfolio",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/exchange-data.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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/openmm-portfolio"
    },
    "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/openmm-portfolio",
    "agentPageUrl": "https://openagent3.xyz/skills/openmm-portfolio/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openmm-portfolio/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openmm-portfolio/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": "OpenMM Portfolio Management",
        "body": "Track balances, review open orders, and monitor market data across exchanges."
      },
      {
        "title": "Required Credentials",
        "body": "At least one exchange must be configured via environment variables. Set the credentials for each exchange you want to query:\n\n# MEXC\nMEXC_API_KEY=your-mexc-api-key\nMEXC_SECRET=your-mexc-secret\nMEXC_UID=your-mexc-uid-for-whitelisted-access\n\n# Gate.io\nGATEIO_API_KEY=your-gateio-api-key\nGATEIO_SECRET=your-gateio-secret\n\n# Bitget (requires passphrase)\nBITGET_API_KEY=your-bitget-api-key\nBITGET_SECRET=your-bitget-secret\nBITGET_PASSPHRASE=your-bitget-passphrase\n\n# Kraken\nKRAKEN_API_KEY=your-kraken-api-key\nKRAKEN_SECRET=your-kraken-secret\n\nSee the openmm-exchange-setup skill for detailed configuration instructions."
      },
      {
        "title": "View Balances",
        "body": "# All assets on an exchange\nopenmm balance --exchange mexc\nopenmm balance --exchange kraken\n\n# Specific asset\nopenmm balance --exchange mexc --asset BTC\nopenmm balance --exchange kraken --asset ADA\nopenmm balance --exchange bitget --asset USDT\n\n# JSON output\nopenmm balance --exchange mexc --json\n\nTo see balances across all exchanges, query each one:\n\nopenmm balance --exchange mexc\nopenmm balance --exchange gateio\nopenmm balance --exchange bitget\nopenmm balance --exchange kraken"
      },
      {
        "title": "Review Open Orders",
        "body": "# All open orders on an exchange\nopenmm orders list --exchange mexc\n\n# Filter by trading pair\nopenmm orders list --exchange bitget --symbol SNEK/USDT\n\n# Limit results\nopenmm orders list --exchange kraken --limit 5"
      },
      {
        "title": "Check Market Prices",
        "body": "# Current price\nopenmm ticker --exchange mexc --symbol BTC/USDT\nopenmm ticker --exchange kraken --symbol ADA/EUR\n\n# Order book depth\nopenmm orderbook --exchange bitget --symbol SNEK/USDT --limit 10\n\n# Recent trades\nopenmm trades --exchange mexc --symbol ETH/USDT --limit 50"
      },
      {
        "title": "Compare Prices Across Exchanges",
        "body": "# Compare DEX and CEX prices for Cardano tokens\nopenmm price-comparison --symbol SNEK\nopenmm price-comparison --symbol INDY"
      },
      {
        "title": "Cardano Token Prices",
        "body": "# Aggregated price from DEX pools\nopenmm pool-discovery prices NIGHT\nopenmm pool-discovery prices SNEK\n\n# Discover liquidity pools\nopenmm pool-discovery discover INDY\nopenmm pool-discovery discover SNEK --min-liquidity 50000"
      },
      {
        "title": "MCP Tools for Portfolio Overview",
        "body": "When using the MCP server, these tools are relevant for portfolio management:\n\nToolDescriptionget_balanceGet balances for an exchange (all or specific asset)list_ordersList open orders on an exchangeget_tickerCurrent price for a trading pairget_orderbookOrder book depth (bids/asks)get_tradesRecent trades with buy/sell summaryget_cardano_priceAggregated Cardano token pricediscover_poolsDiscover Cardano DEX liquidity pools"
      },
      {
        "title": "Tips for Agents",
        "body": "Check balances before trading — always verify available funds\nQuery each exchange separately — there is no cross-exchange aggregate command\nUse --json for parsing — structured output for programmatic use\nUse BASE/QUOTE format — e.g. BTC/USDT, ADA/EUR, SNEK/USDT\nRespect minimum order values — MEXC/Gate.io/Bitget: 1 USDT, Kraken: 5 EUR/USD"
      }
    ],
    "body": "OpenMM Portfolio Management\n\nTrack balances, review open orders, and monitor market data across exchanges.\n\nRequired Credentials\n\nAt least one exchange must be configured via environment variables. Set the credentials for each exchange you want to query:\n\n# MEXC\nMEXC_API_KEY=your-mexc-api-key\nMEXC_SECRET=your-mexc-secret\nMEXC_UID=your-mexc-uid-for-whitelisted-access\n\n# Gate.io\nGATEIO_API_KEY=your-gateio-api-key\nGATEIO_SECRET=your-gateio-secret\n\n# Bitget (requires passphrase)\nBITGET_API_KEY=your-bitget-api-key\nBITGET_SECRET=your-bitget-secret\nBITGET_PASSPHRASE=your-bitget-passphrase\n\n# Kraken\nKRAKEN_API_KEY=your-kraken-api-key\nKRAKEN_SECRET=your-kraken-secret\n\n\nSee the openmm-exchange-setup skill for detailed configuration instructions.\n\nView Balances\n# All assets on an exchange\nopenmm balance --exchange mexc\nopenmm balance --exchange kraken\n\n# Specific asset\nopenmm balance --exchange mexc --asset BTC\nopenmm balance --exchange kraken --asset ADA\nopenmm balance --exchange bitget --asset USDT\n\n# JSON output\nopenmm balance --exchange mexc --json\n\n\nTo see balances across all exchanges, query each one:\n\nopenmm balance --exchange mexc\nopenmm balance --exchange gateio\nopenmm balance --exchange bitget\nopenmm balance --exchange kraken\n\nReview Open Orders\n# All open orders on an exchange\nopenmm orders list --exchange mexc\n\n# Filter by trading pair\nopenmm orders list --exchange bitget --symbol SNEK/USDT\n\n# Limit results\nopenmm orders list --exchange kraken --limit 5\n\nCheck Market Prices\n# Current price\nopenmm ticker --exchange mexc --symbol BTC/USDT\nopenmm ticker --exchange kraken --symbol ADA/EUR\n\n# Order book depth\nopenmm orderbook --exchange bitget --symbol SNEK/USDT --limit 10\n\n# Recent trades\nopenmm trades --exchange mexc --symbol ETH/USDT --limit 50\n\nCompare Prices Across Exchanges\n# Compare DEX and CEX prices for Cardano tokens\nopenmm price-comparison --symbol SNEK\nopenmm price-comparison --symbol INDY\n\nCardano Token Prices\n# Aggregated price from DEX pools\nopenmm pool-discovery prices NIGHT\nopenmm pool-discovery prices SNEK\n\n# Discover liquidity pools\nopenmm pool-discovery discover INDY\nopenmm pool-discovery discover SNEK --min-liquidity 50000\n\nMCP Tools for Portfolio Overview\n\nWhen using the MCP server, these tools are relevant for portfolio management:\n\nTool\tDescription\nget_balance\tGet balances for an exchange (all or specific asset)\nlist_orders\tList open orders on an exchange\nget_ticker\tCurrent price for a trading pair\nget_orderbook\tOrder book depth (bids/asks)\nget_trades\tRecent trades with buy/sell summary\nget_cardano_price\tAggregated Cardano token price\ndiscover_pools\tDiscover Cardano DEX liquidity pools\nTips for Agents\nCheck balances before trading — always verify available funds\nQuery each exchange separately — there is no cross-exchange aggregate command\nUse --json for parsing — structured output for programmatic use\nUse BASE/QUOTE format — e.g. BTC/USDT, ADA/EUR, SNEK/USDT\nRespect minimum order values — MEXC/Gate.io/Bitget: 1 USDT, Kraken: 5 EUR/USD"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adacapo21/openmm-portfolio",
    "publisherUrl": "https://clawhub.ai/adacapo21/openmm-portfolio",
    "owner": "adacapo21",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openmm-portfolio",
    "downloadUrl": "https://openagent3.xyz/downloads/openmm-portfolio",
    "agentUrl": "https://openagent3.xyz/skills/openmm-portfolio/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openmm-portfolio/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openmm-portfolio/agent.md"
  }
}