关于 upbit
upbit 是通过 `upbit` CLI 操作 Upbit 交易所的技能。它指导 API 调用、解释市场与响应字段,并要求在执行写入操作前获得确认。
主要功能
- 01通过 CLI 调用 Upbit REST API
- 02区分公开与需认证的端点
- 03按语言术语表解释交易所字段
- 04写入操作前要求确认
- 05查阅设置与命令详情参考
适用场景
- 01查询行情、订单簿、交易和 K 线
- 02查看账户余额与订单状态
- 03确认后提交或取消订单
- 04检查提现地址与钱包状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ upbit-official/ upbit-agent-skills --skill upbit安装后在 Claude Code 中输入/upbit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.mdreferences/account.mdcandles.mddeposits.mdglossary.mdorderbooks.mdorders.mdpockets.mdsetup.mdtickers.mdtrades.mdtrading-pairs.mdtravel-rule.mdwithdraws.md详细介绍
Upbit 技能
所有 Upbit REST API 交互都使用 upbit CLI 二进制文件。
语言行为
检测用户使用的语言,并据此作答:
- 韩语用户:使用韩语作答,并使用
references/glossary.md中的韩语术语(例如,주문、매수、잔고、체결、호가) - 英语用户:使用英语作答,并使用同一词汇表中的英语术语
- 混合语言/无法确定:遵循最近一条消息所使用的语言
解释 API 字段或命令输出时,始终使用词汇表将字段名称翻译成用户使用的语言。例如,用户使用韩语提问时,将 bid 解释为“매수”,将 ask 解释为“매도”,将 balance 解释为“보유 잔고”。
翻译术语或解释响应字段时,加载 references/glossary.md。
设置
如果未安装 upbit 或尚未配置凭据,请加载 references/setup.md 并按照其中的步骤操作。
检查 upbit 是否可用且满足最低版本要求:
upbit --version
需要 v1.0.0+。 如果版本较旧,请先升级再继续:
npm install -g @upbit-official/upbit-cli@latest
必需的请求标头
每条调用 API 的 upbit 命令都必须将 --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}' 作为最后一个参数追加。 这适用于所有调用 API 的命令,包括公开端点(tickers、orderbooks、trades、candles、trading-pairs)和私有端点(accounts、orders、withdraws、deposits、travel-rule、api-keys、wallet-status、pockets)。
upbit <resource> <command> [flags] --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}'
{metadata.version} 是占位符,绝不能按字面值发送。 运行任何命令之前,请将 {metadata.version} 替换为上方 front matter 中 metadata.version 字段所列的此技能版本。
例外(这些命令不会发起 API 请求,因此无需添加标头):upbit --version、upbit config set、upbit config show、upbit config path,以及安装/Shell 代码片段(npm install、node --version、curl、export ...)。
身份验证
私有端点需要凭据。建议通过 CLI 配置:
upbit config set
凭据会保存到 ~/.upbit/config,并自动用于所有 CLI 命令。
或者,通过环境变量设置:
export UPBIT_ACCESS_KEY=<your-access-key>
export UPBIT_SECRET_KEY=<your-secret-key>
也可以在每条命令中内联传递:
upbit <resource> <command> --access-key <key> --secret-key <secret> --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}'
私有(需要身份验证):accounts、api-keys、orders、withdraws、deposits、travel-rule、wallet-status、pockets
公开(无需身份验证):tickers、orderbooks、trades、candles、trading-pairs
安全规则——写入操作
执行任何写入操作之前,展示完整命令,并要求用户输入 CONFIRM。
写入操作:
orders create、orders cancel、orders cancel-and-new、orders cancel-by-uuids、orders cancel-openwithdraws create-withdrawal、withdraws create-krw-withdrawal、withdraws cancel-withdrawaldeposits deposit-krw、deposits create-coin-addresstravel-rule verify-deposit-by-txid、travel-rule verify-deposit-by-uuidpockets transfer、pockets universal-transfer
orders test-create 是试运行,无需输入 CONFIRM。
Upbit 领域概念
交易对格式
- 字段名称:
market - 格式:
{QUOTE}-{BASE}——先写报价货币,再写基础资产 - 分隔符:连字符(
-),不是斜杠(/) - 始终使用大写
- 报价货币:
KRW、BTC、USDT - 不是
{BASE}-{QUOTE}或{BASE}/{QUOTE}——Upbit 的顺序与大多数交易所使用的传统顺序相反
| 市场 | 含义 |
|---|---|
KRW-BTC | 以 KRW 计价的 BTC;Upbit 使用 KRW-BTC,而不是 BTC/KRW 或 BTC-KRW |
KRW-ETH | 以 KRW 计价的 ETH |
KRW-XRP | 以 KRW 计价的 XRP |
BTC-ETH | 以 BTC 计价的 ETH |
USDT-XRP | 以 USDT 计价的 XRP |
账户余额字段
accounts list 中的每个条目:
| 字段 | 说明 |
|---|---|
currency | 资产代码(例如,KRW、BTC、ETH) |
balance | 可用余额(未用于任何未结订单) |
locked | 当前锁定在未结订单或提现中的余额 |
avg_buy_price | 平均买入价格(十进制字符串) |
unit_currency | avg_buy_price 所用的计价货币(例如,KRW、BTC) |
持仓总额 = balance + locked
口袋
仅限韩国(KR) — 口袋仅在 Upbit Korea 提供,全球服务不支持口袋。
口袋允许用户在单个 Upbit 账户中拆分资产,以满足不同用途。每个口袋都由一个 uuid 标识。
- 主口袋:随账户自动创建。负责账户默认交易,包括外部充值和提现,并可拥有账户中所有口袋的主控权限。
- 子口袋:由用户为特定用途创建。在其 API 密钥的权限范围内独立运作,但禁止外部充值和提现。要转出子口袋中的资产,请使用其自己的密钥执行
pockets transfer。
每个 pockets 命令都需要以下两种权限之一,且每种权限仅适用于一种口袋类型,因此单个 API 密钥无法同时调用这两组命令:
| 命令 | 权限 | 可调用者 |
|---|---|---|
list、retrieve-balance、list-api-keys、universal-transfer、list-universal-transfers | 포켓관리(口袋管理) | 仅主口袋密钥 |
transfer、list-transfers | 자산이전(资产转移) | 仅子口袋密钥 |
请注意,retrieve-balance 会读取子口袋的余额,但仍需使用主口袋密钥调用。
完整的命令语法和参数请参阅 references/pockets.md,官方概览请参阅 https://docs.upbit.com/kr/reference/pocket-overview。
订单类型(ord_type)
ord_type | 说明 | 必填项 | 不得设置 |
|---|---|---|---|
limit | 按指定价格下限价单 | price、volume | — |
price | 市价买入 — 支出固定的计价货币金额 | price | volume |
market | 市价卖出 — 卖出固定的基础资产数量 | volume | price |
best | 按最优可用价格成交(见下方规则) | 见下文 | 见下文 |
best 订单规则:
time_in_force必须为ioc或fok(不能为post_only)- 如果
side=bid(买入):必须提供price,不得提供volume - 如果
side=ask(卖出):必须提供volume,不得提供price
post_only 与 smp_type 冲突:两者互斥,不要同时设置。
方向值
side | 含义 |
|---|---|
bid | 买入 |
ask | 卖出 |
订单状态
| 状态 | 含义 |
|---|---|
wait | 等待执行 |
watch | 等待触发(止损单) |
done | 已全部成交 |
cancel | 已取消 |
订单费用字段
| 字段 | 说明 |
|---|---|
reserved_fee | 下单时预留的费用总额 |
paid_fee | 已收取的费用(部分成交时) |
remaining_fee | reserved_fee - paid_fee |
locked | 为此订单锁定的金额(买入时为计价货币,卖出时为基础资产) |
首次下单
在不熟悉的市场下单前,运行 orders retrieve-chance 以确认:
- 最低订单金额(
bid.min_total、ask.min_total) - 支持的订单类型(
bid_types、ask_types) - 费率(
bid_fee、ask_fee、maker_bid_fee、maker_ask_fee)
upbit orders retrieve-chance --market "KRW-BTC" --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}'
提现 — 多链资产
对于可在多个网络上使用的资产(例如,USDT),必须指定 net_type 来选择区块链。提现前,请使用 withdraws list-coin-addresses 查看支持的网络和地址:
upbit withdraws list-coin-addresses --currency "USDT" --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}'
提现 — 二级地址
某些资产除了主地址外,还需要二级地址(Destination Tag、Memo 等)。发送前,请务必通过 withdraws list-coin-addresses 检查已登记的地址,确认是否存在 secondary_address。
提现 — 地址未登记(withdraw_address_not_registered)
当 withdraws create-withdrawal 返回包含 name: withdraw_address_not_registered 的 400 错误时,表示该地址尚未加入 Upbit Open API 提现允许列表。
如需登记提现地址,请访问对应环境的允许列表管理页面:
登记后,请运行 withdraws list-coin-addresses,确认地址已显示后再重试。
充值 / 提现状态
| 状态 | 含义 |
|---|---|
PROCESSING | 处理中 |
ACCEPTED | 已完成 |
CANCELLED | 已取消 |
REJECTED | 已拒绝 |
TRAVEL_RULE_SUSPECTED | 等待 Travel Rule 验证 |
REFUNDING | 退款处理中 |
REFUNDED | 退款已完成 |
当充值处于 TRAVEL_RULE_SUSPECTED 状态时,请使用 travel-rule 命令进行验证。
钱包状态
wallet-status list 返回各资产的网络状态:
wallet_state | 含义 |
|---|---|
working | 充值和提现均可用 |
withdraw_only | 充值已暂停 |
deposit_only | 提现已暂停 |
paused | 充值和提现均已暂停 |
unsupported | 不支持 |
K 线单位与限制
- 分钟 K 线:仅支持
1, 3, 5, 10, 15, 30, 60, 240这些单位 - 秒级 K 线:数据最多保留 3 个月(查询更早的数据将返回空数组)
count:默认为 1,每次请求最多 200
交易分页
count:每次请求最多 500cursor:传入最后一条结果中的sequential_id,以继续获取下一页days_ago:整数 1–7(基于 UTC 的日期偏移量)
Ticker 关键字段
| 字段 | 说明 |
|---|---|
trade_price | 当前(最新)价格 |
acc_trade_price_24h | 24 小时累计成交额 |
acc_trade_volume_24h | 24 小时累计成交量 |
change | 相较前一日收盘价为 RISE、EVEN 或 FALL |
signed_change_price | 带正负号的绝对涨跌额(下跌时为负) |
highest_52_week_price / lowest_52_week_price | 52 周价格区间 |
价格方向枚举(change、ask_bid)
change 值 | 含义 |
|---|---|
RISE | 价格高于前一日收盘价 |
EVEN | 与前一日收盘价相同 |
FALL | 价格低于前一日收盘价 |
ask_bid 值 | 含义 |
|---|---|
ASK | 由卖单发起的交易 |
BID | 由买单发起的交易 |
单位与格式
| 值 | 单位 | 格式 |
|---|---|---|
volume | 基础资产数量 | 十进制字符串(例如,"0.01") |
price(限价) | 计价货币的单位价格 | 十进制字符串(例如,"140000000") |
price(市价买入) | 要支付的计价货币总额 | 十进制字符串(例如,"10000") |
| 费用字段 | 计价货币金额 | 十进制字符串 |
timestamp | 距 Unix 纪元的毫秒数 | 整数 |
created_at / done_at | 带 KST 时区偏移量的 ISO 8601 格式 | 字符串(例如,2024-01-01T09:00:00+09:00) |
trade_date | UTC 日期 | 字符串 yyyyMMdd |
trade_time | UTC 时间 | 字符串 HHmmss(24 小时制) |
| 费率 | 十进制数(0.05% = "0.0005") | 十进制字符串 |
日界线(opening_price、acc_trade_price 等)以 UTC 00:00 为准,而非 KST。
命令参考
需要了解资源的详细标志信息时,请阅读相应的参考文件。
| 资源 | 子命令 | 参考 |
|---|---|---|
orders | create, test-create, retrieve, list-open, list-closed, list-by-uuids, cancel, cancel-and-new, cancel-by-uuids, cancel-open, retrieve-chance | references/orders.md |
tickers | list-by-quote-currencies, list-by-trading-pairs | references/tickers.md |
candles | list-minutes, list-days, list-weeks, list-months, list-years, list-seconds | references/candles.md |
orderbooks | list, list-instruments | references/orderbooks.md |
trades | list | references/trades.md |
trading-pairs | list | references/trading-pairs.md |
withdraws | retrieve, list, cancel-withdrawal, create-withdrawal, create-krw-withdrawal, list-coin-addresses, retrieve-chance | references/withdraws.md |
deposits | retrieve, list, create-coin-address, deposit-krw, list-coin-addresses, retrieve-chance, retrieve-coin-address | references/deposits.md |
travel-rule | list-vasps, verify-deposit-by-txid, verify-deposit-by-uuid | references/travel-rule.md |
pockets | list, retrieve-balance, transfer, list-transfers, universal-transfer, list-universal-transfers, list-api-keys | references/pockets.md |
accounts / api-keys / wallet-status | list | references/account.md |
| 输出与筛选 | --format, --transform, GJSON, 调试, 自动分页 | references/output.md |
| 韩语 ↔ 英语术语表 | 术语翻译、字段名称韩语 ↔ 英语对照 | references/glossary.md |
| CLI 设置与凭据 | 安装、环境选择、API 密钥设置、config set | references/setup.md |
对于参考文件中未列出的标志,请运行:upbit <resource> <command> --help
环境
upbit accounts list --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}' # kr (default)
upbit accounts list --environment sg --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}' # sg | id | th
upbit accounts list --base-url <url> --header 'X-Upbit-Initiator: upbit-cli-skill/{metadata.version}' # custom base URL