derivatives-trading-portfolio-margin について
BinanceのPortfolio Margin APIを扱うスキルで、口座情報、振替、レバレッジ設定、注文、履歴を扱います。認証が必要なエンドポイントを使うエージェント向けで、JSONを返します。
主な機能
- 01口座・ポジション照会
- 02マージン・先物注文の操作
- 03レバレッジ・ポジションモード設定
- 04振替・借入・返済
- 05取引・収益履歴の照会
活用シーン
- 01Portfolio Marginのポジション確認
- 02先物・マージン注文の発注や取消
- 03取引・収益記録の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill derivatives-trading-portfolio-marginインストール後、Claude Code で/derivatives-trading-portfolio-marginを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdLICENSE.mdreferences/authentication.md詳細
Binance デリバティブ取引ポートフォリオマージン スキル
認証済み API エンドポイントを使用して、Binance でデリバティブ取引ポートフォリオマージンのリクエストを実行します。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返します。
クイックリファレンス
| エンドポイント | 説明 | 必須 | 任意 | 認証 |
|---|---|---|---|---|
/papi/v1/balance (GET) | アカウント残高(USER_DATA) | なし | asset, recvWindow | はい |
/papi/v1/account (GET) | アカウント情報(USER_DATA) | なし | recvWindow | はい |
/papi/v1/bnb-transfer (POST) | BNB の送金(TRADE) | amount, transferSide | recvWindow | はい |
/papi/v1/cm/leverageBracket (GET) | CM の想定元本およびレバレッジブラケット(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/repay-futures-switch (POST) | 先物自動返済ステータスの変更(TRADE) | autoRepay | recvWindow | はい |
/papi/v1/repay-futures-switch (GET) | 先物自動返済ステータスの取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/cm/leverage (POST) | CM の初期レバレッジの変更(TRADE) | symbol, leverage | recvWindow | はい |
/papi/v1/cm/positionSide/dual (POST) | CM のポジションモードの変更(TRADE) | dualSidePosition | recvWindow | はい |
/papi/v1/cm/positionSide/dual (GET) | CM の現在のポジションモードの取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/leverage (POST) | UM の初期レバレッジの変更(TRADE) | symbol, leverage | recvWindow | はい |
/papi/v1/um/positionSide/dual (POST) | UM のポジションモードの変更(TRADE) | dualSidePosition | recvWindow | はい |
/papi/v1/um/positionSide/dual (GET) | UM の現在のポジションモードの取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/auto-collection (POST) | 資金の自動回収(TRADE) | なし | recvWindow | はい |
/papi/v1/asset-collection (POST) | 資産別の資金回収(TRADE) | asset | recvWindow | はい |
/papi/v1/cm/account (GET) | CM アカウント詳細の取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/cm/income (GET) | CM 収入履歴の取得(USER_DATA) | なし | symbol, incomeType, startTime, endTime, page, limit, recvWindow | はい |
/papi/v1/um/order/asyn (GET) | UM 先物注文履歴のダウンロード ID の取得(USER_DATA) | startTime, endTime | recvWindow | はい |
/papi/v1/um/trade/asyn (GET) | UM 先物取引履歴のダウンロード ID の取得(USER_DATA) | startTime, endTime | recvWindow | はい |
/papi/v1/um/income/asyn (GET) | UM 先物取引履歴のダウンロード ID の取得(USER_DATA) | startTime, endTime | recvWindow | はい |
/papi/v1/margin/marginInterestHistory (GET) | マージンの借入/貸付利息履歴の取得(USER_DATA) | なし | asset, startTime, endTime, current, size, archived, recvWindow | はい |
/papi/v2/um/account (GET) | UM アカウント詳細 V2 の取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/account (GET) | UM アカウント詳細の取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/accountConfig (GET) | UM 先物アカウント設定(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/order/asyn/id (GET) | ID による UM 先物注文のダウンロードリンクの取得(USER_DATA) | downloadId | recvWindow | はい |
/papi/v1/um/symbolConfig (GET) | UM 先物シンボル設定(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/um/trade/asyn/id (GET) | ID による UM 先物取引のダウンロードリンクの取得(USER_DATA) | downloadId | recvWindow | はい |
/papi/v1/um/income/asyn/id (GET) | ID による UM 先物取引履歴のダウンロードリンクの取得(USER_DATA) | downloadId | recvWindow | はい |
/papi/v1/um/income (GET) | UM 収入履歴の取得(USER_DATA) | なし | symbol, incomeType, startTime, endTime, page, limit, recvWindow | はい |
/papi/v1/cm/commissionRate (GET) | CM のユーザー手数料率の取得(USER_DATA) | symbol | recvWindow | はい |
/papi/v1/um/commissionRate (GET) | UM のユーザー手数料率の取得(USER_DATA) | symbol | recvWindow | はい |
/papi/v1/margin/maxBorrowable (GET) | マージンの最大借入可能額(USER_DATA) | asset | recvWindow | はい |
/papi/v1/um/apiTradingStatus (GET) | ポートフォリオマージン UM 取引の定量ルール指標(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/cm/positionRisk (GET) | CM ポジション情報の照会(USER_DATA) | なし | marginAsset, pair, recvWindow | はい |
/papi/v1/margin/marginLoan (GET) | マージン借入記録の照会(USER_DATA) | asset | txId, startTime, endTime, current, size, archived, recvWindow | はい |
/papi/v1/margin/maxWithdraw (GET) | マージンの最大出金可能額の照会(USER_DATA) | asset | recvWindow | はい |
/papi/v1/margin/repayLoan (GET) | マージン返済記録の照会(USER_DATA) | asset | txId, startTime, endTime, current, size, archived, recvWindow | はい |
/papi/v1/portfolio/interest-history (GET) | ポートフォリオマージンのマイナス残高利息履歴の照会(USER_DATA) | なし | asset, startTime, endTime, size, recvWindow | はい |
/papi/v1/um/positionRisk (GET) | UM ポジション情報の照会(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/portfolio/negative-balance-exchange-record (GET) | ユーザーのマイナス残高自動交換記録の照会(USER_DATA) | startTime, endTime | recvWindow | はい |
/papi/v1/rateLimit/order (GET) | ユーザーのレート制限の照会(USER_DATA) | なし | recvWindow | はい |
/papi/v1/repay-futures-negative-balance (POST) | 先物のマイナス残高の返済(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/leverageBracket (GET) | UM の想定元本およびレバレッジブラケット(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/ping (GET) | 接続のテスト | なし | なし | いいえ |
/papi/v1/cm/userTrades (GET) | CM アカウントの取引一覧(USER_DATA) | なし | symbol, pair, startTime, endTime, fromId, limit, recvWindow | はい |
/papi/v1/cm/adlQuantile (GET) | CM ポジションの ADL クオンタイル推定(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/cm/conditional/allOpenOrders (DELETE) | CM のすべての未約定条件付き注文のキャンセル(TRADE) | symbol | recvWindow | はい |
/papi/v1/cm/allOpenOrders (DELETE) | CM のすべての未約定注文のキャンセル(TRADE) | symbol | recvWindow | はい |
/papi/v1/um/conditional/allOpenOrders (DELETE) | UM のすべての未約定条件付き注文のキャンセル(TRADE) | symbol | recvWindow | はい |
/papi/v1/um/allOpenOrders (DELETE) | UM のすべての未約定注文のキャンセル(TRADE) | symbol | recvWindow | はい |
/papi/v1/cm/conditional/order (DELETE) | CM 条件付き注文のキャンセル(TRADE) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/cm/conditional/order (POST) | CM 条件付き注文の新規作成(TRADE) | symbol, side, strategyType | positionSide, timeInForce, quantity, reduceOnly, price, workingType, priceProtect, newClientStrategyId, stopPrice, activationPrice, callbackRate, recvWindow | はい |
/papi/v1/cm/order (DELETE) | CM 注文のキャンセル(TRADE) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/cm/order (PUT) | CM 注文の変更(TRADE) | symbol, side, quantity, price | orderId, origClientOrderId, priceMatch, recvWindow | はい |
/papi/v1/cm/order (POST) | CM 注文の新規作成(TRADE) | symbol, side, type | positionSide, timeInForce, quantity, reduceOnly, price, priceMatch, newClientOrderId, newOrderRespType, recvWindow | はい |
/papi/v1/cm/order (GET) | CM 注文の照会(USER_DATA) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/margin/allOpenOrders (DELETE) | マージンアカウントの指定シンボルにおけるすべての未約定注文のキャンセル(TRADE) | symbol | recvWindow | はい |
/papi/v1/margin/orderList (DELETE) | マージンアカウントの OCO 注文のキャンセル(TRADE) | symbol | orderListId, listClientOrderId, newClientOrderId, recvWindow | はい |
/papi/v1/margin/orderList (GET) | マージンアカウントの OCO 注文の照会(USER_DATA) | なし | orderListId, origClientOrderId, recvWindow | はい |
/papi/v1/margin/order (DELETE) | マージンアカウント注文のキャンセル(TRADE) | symbol | orderId, origClientOrderId, newClientOrderId, recvWindow | はい |
/papi/v1/margin/order (POST) | マージン注文の新規作成(TRADE) | symbol, side, type | quantity, quoteOrderQty, price, stopPrice, newClientOrderId, newOrderRespType, icebergQty, sideEffectType, timeInForce, selfTradePreventionMode, autoRepayAtCancel, recvWindow | はい |
/papi/v1/margin/order (GET) | マージンアカウント注文の照会(USER_DATA) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/um/conditional/order (DELETE) | UM 条件付き注文のキャンセル(TRADE) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/um/conditional/order (POST) | UM 条件付き注文の新規作成(TRADE) | symbol, side, strategyType | positionSide, timeInForce, quantity, reduceOnly, price, workingType, priceProtect, newClientStrategyId, stopPrice, activationPrice, callbackRate, priceMatch, selfTradePreventionMode, goodTillDate, recvWindow | はい |
/papi/v1/um/order (DELETE) | UM 注文のキャンセル(TRADE) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/um/order (PUT) | UM 注文の変更(TRADE) | symbol, side, quantity, price | orderId, origClientOrderId, priceMatch, recvWindow | はい |
/papi/v1/um/order (POST) | UM 注文の新規作成(TRADE) | symbol, side, type | positionSide, timeInForce, quantity, reduceOnly, price, newClientOrderId, newOrderRespType, priceMatch, selfTradePreventionMode, goodTillDate, recvWindow | はい |
/papi/v1/um/order (GET) | UM 注文の照会(USER_DATA) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/um/feeBurn (GET) | UM 先物の BNB 手数料バーンステータスの取得(USER_DATA) | なし | recvWindow | はい |
/papi/v1/um/feeBurn (POST) | UM 先物取引での BNB 手数料バーンの切り替え(TRADE) | feeBurn | recvWindow | はい |
/papi/v1/marginLoan (POST) | マージンアカウントからの借入(MARGIN) | asset, amount | recvWindow | はい |
/papi/v1/margin/order/oco (POST) | マージンアカウントの OCO 注文の新規作成(TRADE) | symbol, side, quantity, price, stopPrice | listClientOrderId, limitClientOrderId, limitIcebergQty, stopClientOrderId, stopLimitPrice, stopIcebergQty, stopLimitTimeInForce, newOrderRespType, sideEffectType, recvWindow | はい |
/papi/v1/margin/repay-debt (POST) | マージンアカウントの債務返済(TRADE) | asset | amount, specifyRepayAssets, recvWindow | はい |
/papi/v1/repayLoan (POST) | マージンアカウントの返済(MARGIN) | asset, amount | recvWindow | はい |
/papi/v1/margin/myTrades (GET) | マージンアカウントの取引一覧(USER_DATA) | symbol | orderId, startTime, endTime, fromId, limit, recvWindow | はい |
/papi/v1/cm/conditional/allOrders (GET) | CM のすべての条件付き注文の照会(USER_DATA) | なし | symbol, strategyId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/cm/allOrders (GET) | CM のすべての注文の照会(USER_DATA) | symbol | pair, orderId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/cm/conditional/openOrders (GET) | CM の現在のすべての未約定条件付き注文の照会(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/cm/openOrders (GET) | CM の現在のすべての未約定注文の照会(USER_DATA) | なし | symbol, pair, recvWindow | はい |
/papi/v1/um/conditional/openOrders (GET) | UM の現在のすべての未約定条件付き注文の照会(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/um/openOrders (GET) | UM の現在のすべての未約定注文の照会(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/margin/allOrders (GET) | マージンアカウントのすべての注文の照会(USER_DATA) | symbol | orderId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/um/conditional/allOrders (GET) | UM のすべての条件付き注文の照会(USER_DATA) | なし | symbol, strategyId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/um/allOrders (GET) | UM のすべての注文の照会(USER_DATA) | symbol | orderId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/cm/conditional/orderHistory (GET) | CM 条件付き注文履歴の照会(USER_DATA) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/cm/orderAmendment (GET) | CM 注文変更履歴の照会(TRADE) | symbol | orderId, origClientOrderId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/cm/conditional/openOrder (GET) | CM の現在の未約定条件付き注文の照会(USER_DATA) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/cm/openOrder (GET) | CM の現在の未約定注文の照会(USER_DATA) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/margin/openOrders (GET) | マージンの現在の未約定注文の照会(USER_DATA) | symbol | recvWindow | はい |
/papi/v1/um/conditional/openOrder (GET) | UM の現在の未約定条件付き注文の照会(USER_DATA) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/um/openOrder (GET) | UM の現在の未約定注文の照会(USER_DATA) | symbol | orderId, origClientOrderId, recvWindow | はい |
/papi/v1/margin/openOrderList (GET) | マージンアカウントの未約定 OCO 注文の照会(USER_DATA) | なし | recvWindow | はい |
/papi/v1/margin/allOrderList (GET) | マージンアカウントのすべての OCO 注文の照会(USER_DATA) | なし | fromId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/um/conditional/orderHistory (GET) | UM 条件付き注文履歴の照会(USER_DATA) | symbol | strategyId, newClientStrategyId, recvWindow | はい |
/papi/v1/um/orderAmendment (GET) | UM 注文変更履歴の照会(TRADE) | symbol | orderId, origClientOrderId, startTime, endTime, limit, recvWindow | はい |
/papi/v1/cm/forceOrders (GET) | ユーザーの CM 強制注文の照会(USER_DATA) | なし | symbol, autoCloseType, startTime, endTime, limit, recvWindow | はい |
/papi/v1/margin/forceOrders (GET) | ユーザーのマージン強制注文の照会(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/papi/v1/um/forceOrders (GET) | ユーザーの UM 強制注文の照会(USER_DATA) | なし | symbol, autoCloseType, startTime, endTime, limit, recvWindow | はい |
/papi/v1/um/userTrades (GET) | UM アカウントの取引一覧(USER_DATA) | symbol | startTime, endTime, fromId, limit, recvWindow | はい |
/papi/v1/um/adlQuantile (GET) | UM ポジションの ADL クオンタイル推定(USER_DATA) | なし | symbol, recvWindow | はい |
/papi/v1/listenKey (DELETE) | ユーザーデータストリームの終了(USER_STREAM) | なし | なし | いいえ |
/papi/v1/listenKey (PUT) | ユーザーデータストリームのキープアライブ(USER_STREAM) | なし | なし | いいえ |
/papi/v1/listenKey (POST) | ユーザーデータストリームの開始(USER_STREAM) | なし | なし | いいえ |
パラメーター
共通パラメーター
- asset:
- recvWindow: (例:5000)
- amount: (例:1.0)
- transferSide: "TO_UM","FROM_UM"
- symbol:
- autoRepay: デフォルト:
true。先物のマイナス残高の自動返済機能を無効にする場合はfalseを指定します(例:true) - symbol:
- leverage: 目標とする初期レバレッジ:1~125の整数
- dualSidePosition: "true":ヘッジモード。"false":ワンウェイモード
- asset:
- incomeType: TRANSFER, WELCOME_BONUS, REALIZED_PNL, FUNDING_FEE, COMMISSION, INSURANCE_CLEAR, REFERRAL_KICKBACK, COMMISSION_REBATE, API_REBATE, CONTEST_REWARD, CROSS_COLLATERAL_TRANSFER, OPTIONS_PREMIUM_FEE, OPTIONS_SETTLE_PROFIT, INTERNAL_TRANSFER, AUTO_EXCHANGE, DELIVERED_SETTELMENT, COIN_SWAP_DEPOSIT, COIN_SWAP_WITHDRAW, POSITION_LIMIT_INCREASE_FEE
- startTime: 取得する資金調達の開始時刻(ミリ秒単位、指定時刻を含みます)。(例:1623319461670)
- endTime: 資金調達を取得する終了時刻(ミリ秒単位、指定時刻を含みます)。(例:1641782889000)
- page:
- limit: デフォルトは100、最大は1000です(例:100)
- startTime: (例:1623319461670)
- endTime: (例:1641782889000)
- current: 現在照会中のページ。1から開始します。デフォルト:1(例:1)
- size: デフォルト:10、最大:100(例:10)
- archived: デフォルト:
false。6か月前のアーカイブデータを取得するにはtrueを指定します - downloadId: ダウンロードID取得APIで取得します(例:1)
- marginAsset:
- pair:
- txId:
POST/papi/v1/marginLoanのtranId(例:1) - fromId: 取得開始位置の取引ID。デフォルトでは最新の取引を取得します(例:1)
- strategyId: (例:1)
- newClientStrategyId: (例:1)
- orderId: (例:1)
- origClientOrderId: (例:1)
- orderListId:
orderListIdまたはlistClientOrderIdのいずれかを指定する必要があります(例:1) - listClientOrderId:
orderListIdまたはlistClientOrderIdのいずれかを指定する必要があります(例:1) - newClientOrderId: このキャンセルを一意に識別するために使用します。デフォルトでは自動生成されます(例:1)
- quantity: 注文数量(例:1.0)
- limitClientOrderId: 指値注文の一意のID(例:1)
- price: (例:1.0)
- limitIcebergQty: (例:1.0)
- stopClientOrderId: ストップロス/ストップロス指値注文レッグの一意のID(例:1)
- stopPrice: (例:1.0)
- stopLimitPrice: 指定する場合は、stopLimitTimeInForceが必須です(例:1.0)
- stopIcebergQty: (例:1.0)
- amount:
- specifyRepayAssets: 債務返済に使用する資産のリスト。カンマ区切りでまとめて追加できます
- quantity: (例:1.0)
- reduceOnly: "true"または"false"。デフォルトは"false"です。ヘッジモードでは指定できません。
- price: (例:1.0)
- priceProtect: "TRUE"または"FALSE"。デフォルトは"FALSE"です。
STOP/STOP_MARKETまたはTAKE_PROFIT/TAKE_PROFIT_MARKET注文で使用します - stopPrice:
STOP/STOP_MARKETまたはTAKE_PROFIT/TAKE_PROFIT_MARKET注文で使用します。(例:1.0) - activationPrice:
TRAILING_STOP_MARKET注文で使用します。デフォルトはマーク価格です(例:1.0) - callbackRate:
TRAILING_STOP_MARKET注文で使用します。最小値は0.1、最大値は5で、1は1%を表します(例:1.0) - quoteOrderQty: (例:1.0)
- icebergQty:
LIMIT、STOP_LOSS_LIMIT、TAKE_PROFIT_LIMITで使用し、アイスバーグ注文を作成します(例:1.0) - autoRepayAtCancel: MARGIN_BUYまたはAUTO_BORROW_REPAY注文が有効になった場合にのみ適用されます。trueの場合、注文のキャンセル後に注文によって発生した債務を返済します。デフォルトはtrueです(例:true)
- goodTillDate: timeInForceが
GTDの場合の注文キャンセル時刻です。timeInforceにGTDを設定した場合は必須です。注文のタイムスタンプは秒単位の精度でのみ保持され、ミリ秒部分は無視されます。goodTillDateのタイムスタンプは現在時刻より600秒以上先で、253402300799000Modeより小さい必要があります。ヘッジモードでは必ず指定してください。 - feeBurn: "true":手数料割引オン。"false":手数料割引オフ
列挙型
- side:BUY | SELL
- stopLimitTimeInForce:GTC | IOC | FOK
- newOrderRespType:ACK | RESULT
- sideEffectType:NO_SIDE_EFFECT | MARGIN_BUY | AUTO_REPAY
- priceMatch:NONE | OPPONENT | OPPONENT_5 | OPPONENT_10 | OPPONENT_20 | QUEUE | QUEUE_5 | QUEUE_10 | QUEUE_20
- positionSide:BOTH | LONG | SHORT
- strategyType:STOP | STOP_MARKET | LIMIT_MAKER | TAKE_PROFIT | TAKE_PROFIT_MARKET | TRAILING_STOP_MARKET
- timeInForce:GTC | IOC | FOK | GTX
- workingType:MARK_PRICE
- type:LIMIT | MARKET
- selfTradePreventionMode:NONE | EXPIRE_TAKER | EXPIRE_BOTH | EXPIRE_MAKER
- autoCloseType:LIQUIDATION | ADL
認証
認証が必要なエンドポイントでは、Binance API の認証情報を指定する必要があります。 必要な認証情報:
- apiKey:ヘッダー用の Binance API キー
- secretKey:署名用の Binance API シークレット
ベース URL:
- Mainnet:https://papi.binance.com
- Testnet:https://testnet.binancefuture.com
セキュリティ
認証情報の共有
ユーザーは、さまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の 2 つの方法で認証情報を自動取得しようとしますが、ユーザーが認証情報を設定したことや .env ファイルに保存したことを明示的に伝えることもできます。その場合、エージェントはそのファイルを再読み込みする必要があります。エージェントは、ユーザーの確認なしに最初の 2 つの方法で HTTP リクエストを行うこともできます。
- 環境変数
次の特定の変数のみを検索します(環境変数全体を決して出力しないでください)。
許可されている環境変数
- Mainnet:
BINANCE_API_KEYおよびBINANCE_SECRET_KEY - Testnet:
BINANCE_TESTNET_API_KEYおよびBINANCE_TESTNET_SECRET_KEY
生のキーがエージェントのコンテキストに入らないよう、1 回の exec 呼び出しで読み取り、使用します:
KEY="$BINANCE_API_KEY"
SECRET="$BINANCE_SECRET_KEY"
response=$(curl -s -X GET "$URL" \
-H "X-MBX-APIKEY: $KEY" \
--data-urlencode "param1=value1")
echo "$response"
環境変数は OpenClaw の起動前に設定する必要があります。プロセスの起動時に引き継がれ、実行中のインスタンスには注入できません。再起動せずに認証情報を追加または更新する必要がある場合は、シークレットファイル(オプション 2 を参照)を使用してください。
- シークレットファイル(.env)
~/.openclaw/secrets.env、~/.env、またはワークスペース内の .env ファイルを確認します。grep で個別のキーを読み取り、ファイル全体を source しないでください:
# Try all credential locations in order
API_KEY=$(grep '^BINANCE_API_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
# Fallback: search .env in known directories (KEY=VALUE then raw line format)
for dir in ~/.openclaw ~; do
[ -n "$API_KEY" ] && break
env_file="$dir/.env"
[ -f "$env_file" ] || continue
# Read first two lines
line1=$(sed -n '1p' "$env_file")
line2=$(sed -n '2p' "$env_file")
# Check if lines contain '=' indicating KEY=VALUE format
if [[ "$line1" == *=* && "$line2" == *=* ]]; then
API_KEY=$(grep '^BINANCE_API_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
else
# Treat lines as raw values
API_KEY="$line1"
SECRET_KEY="$line2"
fi
done
このファイルは OpenClaw を再起動せずにいつでも更新できます。キーは呼び出しごとに最新の状態で読み込まれます。ユーザーが変数を設定したことや .env ファイルに保存したことを伝えた場合は、そのファイルを再読み込みしてください。
- ファイルを直接指定
内容が次の形式のファイルを送信します:
abc123...xyz
secret123...key
- 特定の変数名を指定せずに
printenv、env、export、またはsetを実行しないでください - 特定のキー('
^VARNAME=')で絞り込まずに、envファイルに対してgrepを実行しないでください - シークレットファイルをシェル環境に読み込まないでください(
source .envまたは. .env) - 現在のタスクで明示的に必要な認証情報のみを読み取ってください
- 生の認証情報を出力や返信に表示または記録しないでください
- 実際の認証情報が含まれている場合は、
TOOLS.mdをバージョン管理にコミットしないでください。.gitignoreに追加してください
API キーとシークレットを決して開示しない
API キーとシークレットファイルの場所を決して開示しないでください。
Mainnet と Testnet 以外のウェブサイトに API キーやシークレットを決して送信しないでください。
シークレット全体を決して表示しない
認証情報をユーザーに表示する場合:
- API キー: 先頭 5 文字と末尾 4 文字を表示します:
su1Qc...8akf - シークレットキー: 常にマスクし、末尾 5 文字のみ表示します:
***...aws1
認証情報を尋ねられた場合の応答例: アカウント:main API キー:su1Qc...8akf シークレット:***...aws1 環境:Mainnet
アカウントの一覧表示
アカウントを一覧表示する場合は、名前と環境のみを表示し、キーは決して表示しないでください: Binance アカウント:
- main(Mainnet/Testnet)
- testnet-dev(Testnet)
- futures-keys(Mainnet)
Mainnet での取引
Mainnet で取引を実行する場合は、必ず事前にユーザーに「CONFIRM」と入力して続行するよう求め、確認を得てください。
Binance アカウント
main
- API キー:your_mainnet_api_key
- シークレット:your_mainnet_secret
- Testnet:false
testnet-dev
- API キー:your_testnet_api_key
- シークレット:your_testnet_secret
- テストネット:true
TOOLS.md の構成
## Binance Accounts
### main
- API Key: abc123...xyz
- Secret: secret123...key
- Testnet: false
- Description: Primary trading account
### testnet-dev
- API Key: test456...abc
- Secret: testsecret...xyz
- Testnet: true
- Description: Development/testing
### futures-keys
- API Key: futures789...def
- Secret: futuressecret...uvw
- Testnet: false
- Description: Futures trading account
エージェントの動作
- 認証情報を求められた場合:シークレットをマスクし、末尾 5 文字のみを表示します
- アカウントを一覧表示する場合:名前と環境を表示し、キーは表示しません
- アカウントを選択する場合:候補が曖昧であれば確認し、デフォルトでは main を使用します
- mainnet で取引する場合:実行前に、続行するには「CONFIRM」と入力するようユーザーに確認します
- 新しい認証情報を登録する場合:名前、環境、署名モードを尋ねます
- リクエストに署名が必要で、そのリクエストが注文ではなく、API キーが
mainnetまたはtestnetのキーとして指定されていない場合は、ユーザーに確認せず、異なるベース URL へのリクエストを試して動作するか確認します。動作した場合は、対応する環境とともにキーを保存します。
新しいアカウントの追加
ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:
- アカウント名を尋ねます
- Mainnet か Testnet かを尋ねます
- マスクされた表示で確認を示し、
TOOLS.mdに保存します
リクエストへの署名
署名が必要な取引エンドポイントの場合:
- 最初にキーの種類を検出します。署名する前にシークレットキーの形式を確認します。
- タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターでクエリ文字列を構築します。
- RFC 3986 に従い、パラメーターを UTF-8 でパーセントエンコードします。
- アカウント設定に応じて、secretKey を使用し、HMAC SHA256、RSA、または Ed25519 でクエリ文字列に署名します。
- クエリ文字列に署名を追加します。
X-MBX-APIKEYヘッダーを含めます。
それ以外の場合は、手順 4~6 を実行しないでください。
新しいクライアント注文 ID
newClientOrderId パラメーターを含むエンドポイントでは、値は必ず agent- で始める必要があります。パラメーターが指定されていない場合は、agent- に続く 18 文字のランダムな英数字が自動的に生成されます。値が指定されている場合は、その値の先頭に agent- が付加されます。
例:agent-1a2b3c4d5e6f7g8h9i
User Agent ヘッダー
次の文字列を含む User-Agent ヘッダーを指定します:binance-derivatives-trading-portfolio-margin/1.1.0 (Skill)
実装の詳細については、references/authentication.md を参照してください。