{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openmm-exchange-setup",
    "name": "OpenMM Exchange Setup",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/adacapo21/openmm-exchange-setup",
    "canonicalUrl": "https://clawhub.ai/adacapo21/openmm-exchange-setup",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openmm-exchange-setup",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openmm-exchange-setup",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.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/openmm-exchange-setup"
    },
    "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-exchange-setup",
    "agentPageUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/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 Exchange Setup",
        "body": "Interactive guide for configuring exchange API credentials in OpenMM."
      },
      {
        "title": "When to Use",
        "body": "Use this skill when:\n\nSetting up OpenMM for the first time\nAdding a new exchange\nTroubleshooting connection issues"
      },
      {
        "title": "Supported Exchanges",
        "body": "ExchangeMin OrderCredentials RequiredMEXC1 USDTAPI key + SecretGate.io1 USDTAPI key + SecretBitget1 USDTAPI key + Secret + PassphraseKraken5 EUR/USDAPI key + Secret"
      },
      {
        "title": "Step 1: Create API Keys",
        "body": "Guide user to the exchange's API management page:\n\nMEXC:    https://www.mexc.com/ucenter/api\nGate.io: https://www.gate.io/myaccount/apikeys\nKraken:  https://www.kraken.com/u/security/api\nBitget:  https://www.bitget.com/account/newapi"
      },
      {
        "title": "Step 2: Configure Permissions",
        "body": "Required permissions for each exchange:\n\nMEXC:\n\nEnable Spot Trading\nEnable Reading\nDisable Withdrawals (safety)\nIP whitelist recommended\n\nGate.io:\n\nSpot Trade\nSpot Read\nNo Withdraw permission\nIP whitelist recommended\n\nKraken:\n\nQuery Funds\nQuery Open Orders & Trades\nCreate & Modify Orders\nNo Withdraw permission\n\nBitget:\n\nTrade\nRead Only\nNo Transfer permission\nNote the Passphrase — it is set when creating the API key"
      },
      {
        "title": "Step 3: Set Environment Variables",
        "body": "OpenMM uses environment variables for credentials. Add them to your .env file or export in your shell:\n\n# MEXC\nexport MEXC_API_KEY=\"your_mexc_api_key\"\nexport MEXC_SECRET=\"your_mexc_secret_key\"\n\n# Gate.io\nexport GATEIO_API_KEY=\"your_gateio_api_key\"\nexport GATEIO_SECRET=\"your_gateio_secret_key\"\n\n# Bitget (requires passphrase)\nexport BITGET_API_KEY=\"your_bitget_api_key\"\nexport BITGET_SECRET=\"your_bitget_secret_key\"\nexport BITGET_PASSPHRASE=\"your_bitget_passphrase\"\n\n# Kraken\nexport KRAKEN_API_KEY=\"your_kraken_api_key\"\nexport KRAKEN_SECRET=\"your_kraken_secret_key\"\n\nOr create a .env file in the project root:\n\nMEXC_API_KEY=your_mexc_api_key\nMEXC_SECRET=your_mexc_secret_key\nGATEIO_API_KEY=your_gateio_api_key\nGATEIO_SECRET=your_gateio_secret_key\nBITGET_API_KEY=your_bitget_api_key\nBITGET_SECRET=your_bitget_secret_key\nBITGET_PASSPHRASE=your_bitget_passphrase\nKRAKEN_API_KEY=your_kraken_api_key\nKRAKEN_SECRET=your_kraken_secret_key"
      },
      {
        "title": "Step 4: Verify Connection",
        "body": "Test that credentials work by checking balances:\n\n# MEXC\nopenmm balance --exchange mexc\n\n# Gate.io\nopenmm balance --exchange gateio\n\n# Bitget\nopenmm balance --exchange bitget\n\n# Kraken\nopenmm balance --exchange kraken"
      },
      {
        "title": "Step 5: Test Market Data",
        "body": "Confirm market data access:\n\nopenmm ticker --exchange mexc --symbol BTC/USDT\nopenmm orderbook --exchange kraken --symbol ADA/EUR --limit 5"
      },
      {
        "title": "MCP Server Setup",
        "body": "To use OpenMM as an MCP server, add to your MCP client config:\n\n{\n  \"mcpServers\": {\n    \"openmm\": {\n      \"command\": \"npx\",\n      \"args\": [\"@qbtlabs/openmm-mcp\"],\n      \"env\": {\n        \"MEXC_API_KEY\": \"your_key\",\n        \"MEXC_SECRET\": \"your_secret\",\n        \"KRAKEN_API_KEY\": \"your_key\",\n        \"KRAKEN_SECRET\": \"your_secret\"\n      }\n    }\n  }\n}\n\nOnly include env vars for exchanges you want to use."
      },
      {
        "title": "\"credentials not found\"",
        "body": "Verify environment variables are set: echo $MEXC_API_KEY\nCheck .env file is in the correct directory\nEnsure variable names match exactly (e.g. MEXC_SECRET not MEXC_SECRET_KEY)"
      },
      {
        "title": "\"credentials validation failed\" (Bitget)",
        "body": "Verify all three vars: BITGET_API_KEY, BITGET_SECRET, BITGET_PASSPHRASE\nThe passphrase is set when creating the API key on Bitget"
      },
      {
        "title": "\"authentication failed\" (Kraken)",
        "body": "Verify KRAKEN_API_KEY and KRAKEN_SECRET\nCheck key permissions on Kraken API settings page"
      },
      {
        "title": "\"Timestamp Error\"",
        "body": "System clock may be out of sync\nRun: sudo ntpdate time.google.com"
      },
      {
        "title": "\"Rate Limited\"",
        "body": "Reduce request frequency\nCheck exchange's rate limit docs"
      },
      {
        "title": "Security Best Practices",
        "body": "Never enable withdrawals — trading doesn't need it\nUse IP whitelisting — restrict to your server's IP\nNever commit .env files — add .env to .gitignore\nRotate keys periodically — every 90 days recommended\nUse separate keys for testing — don't mix testnet/mainnet"
      }
    ],
    "body": "OpenMM Exchange Setup\n\nInteractive guide for configuring exchange API credentials in OpenMM.\n\nWhen to Use\n\nUse this skill when:\n\nSetting up OpenMM for the first time\nAdding a new exchange\nTroubleshooting connection issues\nSupported Exchanges\nExchange\tMin Order\tCredentials Required\nMEXC\t1 USDT\tAPI key + Secret\nGate.io\t1 USDT\tAPI key + Secret\nBitget\t1 USDT\tAPI key + Secret + Passphrase\nKraken\t5 EUR/USD\tAPI key + Secret\nSetup Workflow\nStep 1: Create API Keys\n\nGuide user to the exchange's API management page:\n\nMEXC:    https://www.mexc.com/ucenter/api\nGate.io: https://www.gate.io/myaccount/apikeys\nKraken:  https://www.kraken.com/u/security/api\nBitget:  https://www.bitget.com/account/newapi\n\nStep 2: Configure Permissions\n\nRequired permissions for each exchange:\n\nMEXC:\n\nEnable Spot Trading\nEnable Reading\nDisable Withdrawals (safety)\nIP whitelist recommended\n\nGate.io:\n\nSpot Trade\nSpot Read\nNo Withdraw permission\nIP whitelist recommended\n\nKraken:\n\nQuery Funds\nQuery Open Orders & Trades\nCreate & Modify Orders\nNo Withdraw permission\n\nBitget:\n\nTrade\nRead Only\nNo Transfer permission\nNote the Passphrase — it is set when creating the API key\nStep 3: Set Environment Variables\n\nOpenMM uses environment variables for credentials. Add them to your .env file or export in your shell:\n\n# MEXC\nexport MEXC_API_KEY=\"your_mexc_api_key\"\nexport MEXC_SECRET=\"your_mexc_secret_key\"\n\n# Gate.io\nexport GATEIO_API_KEY=\"your_gateio_api_key\"\nexport GATEIO_SECRET=\"your_gateio_secret_key\"\n\n# Bitget (requires passphrase)\nexport BITGET_API_KEY=\"your_bitget_api_key\"\nexport BITGET_SECRET=\"your_bitget_secret_key\"\nexport BITGET_PASSPHRASE=\"your_bitget_passphrase\"\n\n# Kraken\nexport KRAKEN_API_KEY=\"your_kraken_api_key\"\nexport KRAKEN_SECRET=\"your_kraken_secret_key\"\n\n\nOr create a .env file in the project root:\n\nMEXC_API_KEY=your_mexc_api_key\nMEXC_SECRET=your_mexc_secret_key\nGATEIO_API_KEY=your_gateio_api_key\nGATEIO_SECRET=your_gateio_secret_key\nBITGET_API_KEY=your_bitget_api_key\nBITGET_SECRET=your_bitget_secret_key\nBITGET_PASSPHRASE=your_bitget_passphrase\nKRAKEN_API_KEY=your_kraken_api_key\nKRAKEN_SECRET=your_kraken_secret_key\n\nStep 4: Verify Connection\n\nTest that credentials work by checking balances:\n\n# MEXC\nopenmm balance --exchange mexc\n\n# Gate.io\nopenmm balance --exchange gateio\n\n# Bitget\nopenmm balance --exchange bitget\n\n# Kraken\nopenmm balance --exchange kraken\n\nStep 5: Test Market Data\n\nConfirm market data access:\n\nopenmm ticker --exchange mexc --symbol BTC/USDT\nopenmm orderbook --exchange kraken --symbol ADA/EUR --limit 5\n\nMCP Server Setup\n\nTo use OpenMM as an MCP server, add to your MCP client config:\n\n{\n  \"mcpServers\": {\n    \"openmm\": {\n      \"command\": \"npx\",\n      \"args\": [\"@qbtlabs/openmm-mcp\"],\n      \"env\": {\n        \"MEXC_API_KEY\": \"your_key\",\n        \"MEXC_SECRET\": \"your_secret\",\n        \"KRAKEN_API_KEY\": \"your_key\",\n        \"KRAKEN_SECRET\": \"your_secret\"\n      }\n    }\n  }\n}\n\n\nOnly include env vars for exchanges you want to use.\n\nTroubleshooting\n\"credentials not found\"\nVerify environment variables are set: echo $MEXC_API_KEY\nCheck .env file is in the correct directory\nEnsure variable names match exactly (e.g. MEXC_SECRET not MEXC_SECRET_KEY)\n\"credentials validation failed\" (Bitget)\nVerify all three vars: BITGET_API_KEY, BITGET_SECRET, BITGET_PASSPHRASE\nThe passphrase is set when creating the API key on Bitget\n\"authentication failed\" (Kraken)\nVerify KRAKEN_API_KEY and KRAKEN_SECRET\nCheck key permissions on Kraken API settings page\n\"Timestamp Error\"\nSystem clock may be out of sync\nRun: sudo ntpdate time.google.com\n\"Rate Limited\"\nReduce request frequency\nCheck exchange's rate limit docs\nSecurity Best Practices\nNever enable withdrawals — trading doesn't need it\nUse IP whitelisting — restrict to your server's IP\nNever commit .env files — add .env to .gitignore\nRotate keys periodically — every 90 days recommended\nUse separate keys for testing — don't mix testnet/mainnet"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adacapo21/openmm-exchange-setup",
    "publisherUrl": "https://clawhub.ai/adacapo21/openmm-exchange-setup",
    "owner": "adacapo21",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openmm-exchange-setup",
    "downloadUrl": "https://openagent3.xyz/downloads/openmm-exchange-setup",
    "agentUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openmm-exchange-setup/agent.md"
  }
}