{
  "schemaVersion": "1.0",
  "item": {
    "slug": "entradex",
    "name": "EntradeX",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/hieuhani/entradex",
    "canonicalUrl": "https://clawhub.ai/hieuhani/entradex",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/entradex",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=entradex",
    "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/entradex"
    },
    "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/entradex",
    "agentPageUrl": "https://openagent3.xyz/skills/entradex/agent",
    "manifestUrl": "https://openagent3.xyz/skills/entradex/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/entradex/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": "EntradeX CLI",
        "body": "Install\n\nnpm i -g entradex-cli"
      },
      {
        "title": "Usage",
        "body": "entradex [global-options] [command]"
      },
      {
        "title": "Configuration",
        "body": "Credential priority order:\n\nConfig file (~/.entradex-cli/config.json) - recommended\nEnvironment variables (DNSE_API_KEY, DNSE_API_SECRET)\nGlobal command options (--api-key, --api-secret)\n\nSetup and inspect config:\n\nentradex config set --key \"<api-key>\" --secret \"<api-secret>\"\nentradex config set\nentradex config get\nentradex config clear"
      },
      {
        "title": "Security & Safety",
        "body": "Before using this skill:\n\nVerify the npm package: npm view entradex-cli - check author is hieuhani and repository matches\nInspect package contents: npm pack entradex-cli --dry-run or view on npmjs.com\nTreat DNSE_API_KEY and DNSE_API_SECRET as highly sensitive trading credentials\n\nAutonomous execution warning:\n\nThis skill can place real trades using provided credentials\nConsider using a separate limited-permission account\nRotate API keys if you suspect unauthorized access"
      },
      {
        "title": "Global Options",
        "body": "--api-key <key> DNSE API key\n--api-secret <secret> DNSE API secret\n--base-url <url> API base URL (default: https://openapi.dnse.com.vn)\n--debug Show request details\n-V, --version Show CLI version\n-h, --help Show help"
      },
      {
        "title": "Config",
        "body": "entradex config set [--key <key>] [--secret <secret>] [--url <url>]\nentradex config get\nentradex config clear"
      },
      {
        "title": "Account",
        "body": "entradex account list\nentradex account balances <accountNo>\nentradex account loan-packages <accountNo> <marketType> [--symbol <symbol>]"
      },
      {
        "title": "Trade",
        "body": "entradex trade order <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]\nentradex trade modify <accountNo> <orderId> <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]\nentradex trade cancel <accountNo> <orderId> <marketType> <tradingToken>\n\nParameters:\n\nmarketType (enum): STOCK, DERIVATIVE\nside (enum): NB (buy), NS (sell)\norderType (enum): ATO, ATC, LO, MTL, MOK, PLO\n\nATO: At The Opening\nATC: At The Close\nLO: Limit Order\nMTL: Market To Limit\nMOK: Market Order Kill\nPLO: Post Limit Order\n\n\nprice (number): unit price; follow DNSE tick-size/market constraints\n\nIf orderType=LO, price must be greater than 0.\nIf orderType is anything other than LO (ATO, ATC, MTL, MOK, PLO), price must be exactly 0.\n\n\nquantity (integer): order quantity; must satisfy market lot rules\n\nFor marketType=STOCK, valid quantity is either:\n\nBoard lot: multiples of 100 (100, 200, ...)\nOdd lot: integers from 1 to 99\n\n\nFor marketType=STOCK, values like 101, 102, ... are invalid odd lots and must be rejected.\n\n\ntradingToken (string): token from entradex auth create-token\n\nNormalization rules for user intent:\n\nIf user says buy/sell, map to NB/NS.\nUppercase enum-style params before execution (marketType, side, orderType).\nIf user provides an unsupported enum value, stop and ask for a valid value.\nIf orderType is not supported by the target market/session, stop and ask user to choose a supported type."
      },
      {
        "title": "Order",
        "body": "entradex order list <accountNo> <marketType>\nentradex order detail <accountNo> <orderId> <marketType>\nentradex order history <accountNo> <marketType> [--from <date>] [--to <date>] [--page-size <size>] [--page-index <index>]\nentradex order deals <accountNo> <marketType>"
      },
      {
        "title": "Market",
        "body": "entradex market secdef <symbol> [--board-id <id>]\nentradex market ppse <accountNo> <marketType> <symbol> <price> <loanPackageId>"
      },
      {
        "title": "Auth",
        "body": "entradex auth send-otp <email> [--otp-type <type>]\nentradex auth create-token <otpType> <passcode>"
      },
      {
        "title": "Dry Run",
        "body": "entradex dry-run accounts\nentradex dry-run balances <accountNo>\nentradex dry-run order <marketType> <symbol> <side> <orderType> <price> <quantity> [--price-stop <price>]"
      },
      {
        "title": "Common Workflow",
        "body": "# 1) Configure credentials\nentradex config set\n\n# 2) Send OTP\nentradex auth send-otp user@example.com\n\n# 3) Create trading token with passcode\nentradex auth create-token smart_otp <passcode>\n\n# 4) Place an order\nentradex trade order STOCK VIC NB LO 15000 100 <trading-token>"
      }
    ],
    "body": "EntradeX CLI\n\nInstall\n\nnpm i -g entradex-cli\n\nUsage\nentradex [global-options] [command]\n\nConfiguration\n\nCredential priority order:\n\nConfig file (~/.entradex-cli/config.json) - recommended\nEnvironment variables (DNSE_API_KEY, DNSE_API_SECRET)\nGlobal command options (--api-key, --api-secret)\n\nSetup and inspect config:\n\nentradex config set --key \"<api-key>\" --secret \"<api-secret>\"\nentradex config set\nentradex config get\nentradex config clear\n\nSecurity & Safety\n\nBefore using this skill:\n\nVerify the npm package: npm view entradex-cli - check author is hieuhani and repository matches\nInspect package contents: npm pack entradex-cli --dry-run or view on npmjs.com\nTreat DNSE_API_KEY and DNSE_API_SECRET as highly sensitive trading credentials\n\nAutonomous execution warning:\n\nThis skill can place real trades using provided credentials\nConsider using a separate limited-permission account\nRotate API keys if you suspect unauthorized access\nGlobal Options\n--api-key <key> DNSE API key\n--api-secret <secret> DNSE API secret\n--base-url <url> API base URL (default: https://openapi.dnse.com.vn)\n--debug Show request details\n-V, --version Show CLI version\n-h, --help Show help\nCommands\nConfig\nentradex config set [--key <key>] [--secret <secret>] [--url <url>]\nentradex config get\nentradex config clear\n\nAccount\nentradex account list\nentradex account balances <accountNo>\nentradex account loan-packages <accountNo> <marketType> [--symbol <symbol>]\n\nTrade\nentradex trade order <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]\nentradex trade modify <accountNo> <orderId> <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]\nentradex trade cancel <accountNo> <orderId> <marketType> <tradingToken>\n\n\nParameters:\n\nmarketType (enum): STOCK, DERIVATIVE\nside (enum): NB (buy), NS (sell)\norderType (enum): ATO, ATC, LO, MTL, MOK, PLO\nATO: At The Opening\nATC: At The Close\nLO: Limit Order\nMTL: Market To Limit\nMOK: Market Order Kill\nPLO: Post Limit Order\nprice (number): unit price; follow DNSE tick-size/market constraints\nIf orderType=LO, price must be greater than 0.\nIf orderType is anything other than LO (ATO, ATC, MTL, MOK, PLO), price must be exactly 0.\nquantity (integer): order quantity; must satisfy market lot rules\nFor marketType=STOCK, valid quantity is either:\nBoard lot: multiples of 100 (100, 200, ...)\nOdd lot: integers from 1 to 99\nFor marketType=STOCK, values like 101, 102, ... are invalid odd lots and must be rejected.\ntradingToken (string): token from entradex auth create-token\n\nNormalization rules for user intent:\n\nIf user says buy/sell, map to NB/NS.\nUppercase enum-style params before execution (marketType, side, orderType).\nIf user provides an unsupported enum value, stop and ask for a valid value.\nIf orderType is not supported by the target market/session, stop and ask user to choose a supported type.\nOrder\nentradex order list <accountNo> <marketType>\nentradex order detail <accountNo> <orderId> <marketType>\nentradex order history <accountNo> <marketType> [--from <date>] [--to <date>] [--page-size <size>] [--page-index <index>]\nentradex order deals <accountNo> <marketType>\n\nMarket\nentradex market secdef <symbol> [--board-id <id>]\nentradex market ppse <accountNo> <marketType> <symbol> <price> <loanPackageId>\n\nAuth\nentradex auth send-otp <email> [--otp-type <type>]\nentradex auth create-token <otpType> <passcode>\n\nDry Run\nentradex dry-run accounts\nentradex dry-run balances <accountNo>\nentradex dry-run order <marketType> <symbol> <side> <orderType> <price> <quantity> [--price-stop <price>]\n\nCommon Workflow\n# 1) Configure credentials\nentradex config set\n\n# 2) Send OTP\nentradex auth send-otp user@example.com\n\n# 3) Create trading token with passcode\nentradex auth create-token smart_otp <passcode>\n\n# 4) Place an order\nentradex trade order STOCK VIC NB LO 15000 100 <trading-token>"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/hieuhani/entradex",
    "publisherUrl": "https://clawhub.ai/hieuhani/entradex",
    "owner": "hieuhani",
    "version": "0.1.16",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/entradex",
    "downloadUrl": "https://openagent3.xyz/downloads/entradex",
    "agentUrl": "https://openagent3.xyz/skills/entradex/agent",
    "manifestUrl": "https://openagent3.xyz/skills/entradex/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/entradex/agent.md"
  }
}