Назад към всички

entradex

// Use the EntradeX CLI for DNSE workflows. Use when (1) setting DNSE API credentials via env vars or config file, (2) reading account, market, and order data, (3) placing, modifying, or canceling real trades.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameentradex
descriptionUse the EntradeX CLI for DNSE workflows. Use when (1) setting DNSE API credentials via env vars or config file, (2) reading account, market, and order data, (3) placing, modifying, or canceling real trades.
metadata[object Object]

EntradeX CLI

Install

npm i -g entradex-cli

Usage

entradex [global-options] [command]

Configuration

Credential priority order:

  1. Config file (~/.entradex-cli/config.json) - recommended
  2. Environment variables (DNSE_API_KEY, DNSE_API_SECRET)
  3. Global command options (--api-key, --api-secret)

Setup and inspect config:

entradex config set --key "<api-key>" --secret "<api-secret>"
entradex config set
entradex config get
entradex config clear

Security & Safety

Before using this skill:

  • Verify the npm package: npm view entradex-cli - check author is hieuhani and repository matches
  • Inspect package contents: npm pack entradex-cli --dry-run or view on npmjs.com
  • Treat DNSE_API_KEY and DNSE_API_SECRET as highly sensitive trading credentials

Autonomous execution warning:

  • This skill can place real trades using provided credentials
  • Consider using a separate limited-permission account
  • Rotate API keys if you suspect unauthorized access

Global Options

  • --api-key <key> DNSE API key
  • --api-secret <secret> DNSE API secret
  • --base-url <url> API base URL (default: https://openapi.dnse.com.vn)
  • --debug Show request details
  • -V, --version Show CLI version
  • -h, --help Show help

Commands

Config

entradex config set [--key <key>] [--secret <secret>] [--url <url>]
entradex config get
entradex config clear

Account

entradex account list
entradex account balances <accountNo>
entradex account loan-packages <accountNo> <marketType> [--symbol <symbol>]

Trade

entradex trade order <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]
entradex trade modify <accountNo> <orderId> <marketType> <symbol> <side> <orderType> <price> <quantity> <tradingToken> [--price-stop <price>]
entradex trade cancel <accountNo> <orderId> <marketType> <tradingToken>

Parameters:

  • marketType (enum): STOCK, DERIVATIVE
  • side (enum): NB (buy), NS (sell)
  • orderType (enum): ATO, ATC, LO, MTL, MOK, PLO
    • ATO: At The Opening
    • ATC: At The Close
    • LO: Limit Order
    • MTL: Market To Limit
    • MOK: Market Order Kill
    • PLO: Post Limit Order
  • price (number): unit price; follow DNSE tick-size/market constraints
    • If orderType=LO, price must be greater than 0.
    • If orderType is anything other than LO (ATO, ATC, MTL, MOK, PLO), price must be exactly 0.
  • quantity (integer): order quantity; must satisfy market lot rules
    • For marketType=STOCK, valid quantity is either:
      • Board lot: multiples of 100 (100, 200, ...)
      • Odd lot: integers from 1 to 99
    • For marketType=STOCK, values like 101, 102, ... are invalid odd lots and must be rejected.
  • tradingToken (string): token from entradex auth create-token

Normalization rules for user intent:

  • If user says buy/sell, map to NB/NS.
  • Uppercase enum-style params before execution (marketType, side, orderType).
  • If user provides an unsupported enum value, stop and ask for a valid value.
  • If orderType is not supported by the target market/session, stop and ask user to choose a supported type.

Order

entradex order list <accountNo> <marketType>
entradex order detail <accountNo> <orderId> <marketType>
entradex order history <accountNo> <marketType> [--from <date>] [--to <date>] [--page-size <size>] [--page-index <index>]
entradex order deals <accountNo> <marketType>

Market

entradex market secdef <symbol> [--board-id <id>]
entradex market ppse <accountNo> <marketType> <symbol> <price> <loanPackageId>

Auth

entradex auth send-otp <email> [--otp-type <type>]
entradex auth create-token <otpType> <passcode>

Dry Run

entradex dry-run accounts
entradex dry-run balances <accountNo>
entradex dry-run order <marketType> <symbol> <side> <orderType> <price> <quantity> [--price-stop <price>]

Common Workflow

# 1) Configure credentials
entradex config set

# 2) Send OTP
entradex auth send-otp user@example.com

# 3) Create trading token with passcode
entradex auth create-token smart_otp <passcode>

# 4) Place an order
entradex trade order STOCK VIC NB LO 15000 100 <trading-token>