{
  "schemaVersion": "1.0",
  "item": {
    "slug": "trading-upbit-skill",
    "name": "Trading upbit skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/kuns9/trading-upbit-skill",
    "canonicalUrl": "https://clawhub.ai/kuns9/trading-upbit-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/trading-upbit-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=trading-upbit-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      ".gitignore",
      "config.example.json",
      "package.json",
      "README.md",
      "SECURITY.md",
      "skill.js"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/trading-upbit-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/trading-upbit-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/trading-upbit-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trading-upbit-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trading-upbit-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. 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": "trading-upbit-skill",
        "body": "Upbit automated trading skill for OpenClaw and local execution."
      },
      {
        "title": "What to consider before installing (Security)",
        "body": "This skill implements an automated Upbit trading bot and requires Upbit API keys. Before installing or handing over production keys:\n\nInspect critical files:\n\nscripts/execution/upbitClient.js (Upbit HTTP client)\nscripts/config/index.js (config + secrets loading)\nskill.js (CLI entrypoint)\n\n\n\nRun in dry-run mode first:\n\nSet execution.dryRun=true\nRun node skill.js smoke_test, node skill.js monitor_once, node skill.js worker_once\n\n\n\nUse the platform secret store:\n\nProvide keys via environment variables (OpenClaw Skills Config / secret store):\n\nUPBIT_OPEN_API_ACCESS_KEY\nUPBIT_OPEN_API_SECRET_KEY\n\n\nAvoid storing secrets in config.json.\n\n\n\nLimit key permissions during testing:\n\nUse minimal funds / a test account where possible.\nMonitor your Upbit account activity closely.\n\n\n\nQuick self-check:\n\nRun node skill.js security_check to scan the repository for hard-coded external URLs (allowlist: api.upbit.com).\n\nSecurity notes:\n\nThis skill does not include telemetry and does not upload data by design.\nThe Upbit API base URL is allowlisted to https://api.upbit.com/v1 and redirects are disabled."
      },
      {
        "title": "What it does",
        "body": "Monitors markets (watchlist + optional TopVolume)\nGenerates BUY/SELL events in resources/events.json\nProcesses events in a worker (places orders or dry-run), and persists positions in resources/positions.json\nDesigned for cron: monitor_once and worker_once are run-once commands"
      },
      {
        "title": "monitor_once",
        "body": "Run one monitoring cycle, enqueue events.\n\nnode skill.js monitor_once"
      },
      {
        "title": "worker_once",
        "body": "Process pending events (BUY/SELL), update positions.\n\nnode skill.js worker_once"
      },
      {
        "title": "smoke_test",
        "body": "Validate config and public endpoints (no trading).\n\nnode skill.js smoke_test"
      },
      {
        "title": "Budget Policy (v13)",
        "body": "Order sizing can be set to a percentage of available KRW, split equally across multiple buys in the same worker run.\n\n{\n  \"trading\": {\n    \"budgetPolicy\": {\n      \"mode\": \"balance_pct_split\",\n      \"pct\": 0.3,\n      \"reserveKRW\": 0,\n      \"minOrderKRW\": 5000,\n      \"roundToKRW\": 1000\n    }\n  }\n}\n\nBehavior:\n\ntotalBudget = floor((availableKRW - reserveKRW) * pct)\nif there are N BUY_SIGNALs pending, perOrderKRW = floor(totalBudget / N) rounded down to roundToKRW"
      },
      {
        "title": "Cron (recommended)",
        "body": "Monitor (every 5 minutes):\n\ncd <skillRoot> && node skill.js monitor_once\n\nWorker (every 1 minute):\n\ncd <skillRoot> && node skill.js worker_once"
      },
      {
        "title": "Files",
        "body": "Required:\n\nconfig.json (do not commit)\n\nAuto-created:\n\nresources/events.json\nresources/positions.json\nresources/topVolumeCache.json\nresources/nearCounter.json\nresources/heartbeat.json\n\nTesting utilities:\n\nscripts/tests/* (see README_TESTING.md)"
      }
    ],
    "body": "trading-upbit-skill\n\nUpbit automated trading skill for OpenClaw and local execution.\n\nWhat to consider before installing (Security)\n\nThis skill implements an automated Upbit trading bot and requires Upbit API keys. Before installing or handing over production keys:\n\nInspect critical files:\n\nscripts/execution/upbitClient.js (Upbit HTTP client)\nscripts/config/index.js (config + secrets loading)\nskill.js (CLI entrypoint)\n\nRun in dry-run mode first:\n\nSet execution.dryRun=true\nRun node skill.js smoke_test, node skill.js monitor_once, node skill.js worker_once\n\nUse the platform secret store:\n\nProvide keys via environment variables (OpenClaw Skills Config / secret store):\nUPBIT_OPEN_API_ACCESS_KEY\nUPBIT_OPEN_API_SECRET_KEY\nAvoid storing secrets in config.json.\n\nLimit key permissions during testing:\n\nUse minimal funds / a test account where possible.\nMonitor your Upbit account activity closely.\n\nQuick self-check:\n\nRun node skill.js security_check to scan the repository for hard-coded external URLs (allowlist: api.upbit.com).\n\nSecurity notes:\n\nThis skill does not include telemetry and does not upload data by design.\nThe Upbit API base URL is allowlisted to https://api.upbit.com/v1 and redirects are disabled.\nWhat it does\nMonitors markets (watchlist + optional TopVolume)\nGenerates BUY/SELL events in resources/events.json\nProcesses events in a worker (places orders or dry-run), and persists positions in resources/positions.json\nDesigned for cron: monitor_once and worker_once are run-once commands\nCommands\nmonitor_once\n\nRun one monitoring cycle, enqueue events.\n\nnode skill.js monitor_once\nworker_once\n\nProcess pending events (BUY/SELL), update positions.\n\nnode skill.js worker_once\nsmoke_test\n\nValidate config and public endpoints (no trading).\n\nnode skill.js smoke_test\nBudget Policy (v13)\n\nOrder sizing can be set to a percentage of available KRW, split equally across multiple buys in the same worker run.\n\n{\n  \"trading\": {\n    \"budgetPolicy\": {\n      \"mode\": \"balance_pct_split\",\n      \"pct\": 0.3,\n      \"reserveKRW\": 0,\n      \"minOrderKRW\": 5000,\n      \"roundToKRW\": 1000\n    }\n  }\n}\n\n\nBehavior:\n\ntotalBudget = floor((availableKRW - reserveKRW) * pct)\nif there are N BUY_SIGNALs pending, perOrderKRW = floor(totalBudget / N) rounded down to roundToKRW\nCron (recommended)\n\nMonitor (every 5 minutes):\n\ncd <skillRoot> && node skill.js monitor_once\n\nWorker (every 1 minute):\n\ncd <skillRoot> && node skill.js worker_once\nFiles\n\nRequired:\n\nconfig.json (do not commit)\n\nAuto-created:\n\nresources/events.json\nresources/positions.json\nresources/topVolumeCache.json\nresources/nearCounter.json\nresources/heartbeat.json\n\nTesting utilities:\n\nscripts/tests/* (see README_TESTING.md)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/kuns9/trading-upbit-skill",
    "publisherUrl": "https://clawhub.ai/kuns9/trading-upbit-skill",
    "owner": "kuns9",
    "version": "1.0.14",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/trading-upbit-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/trading-upbit-skill",
    "agentUrl": "https://openagent3.xyz/skills/trading-upbit-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trading-upbit-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trading-upbit-skill/agent.md"
  }
}