mcpField
D
derivatives-trading-portfolio-margin-pro

derivatives-trading-portfolio-margin-pro

github.com/binanceその他1.1k1.2k 回インストール2 日前に更新
リポジトリ

derivatives-trading-portfolio-margin-pro について

Binance APIを使ってPortfolio Margin Proの口座、資産、返済操作を行うスキルです。認証が必要な操作を扱うエージェント向けで、結果をJSONで返します。

主な機能

  1. 01口座・残高の照会
  2. 02資産とBNBの振替
  3. 03Deltaモードの切り替え
  4. 04返済と資金回収
  5. 05利息・ローン履歴の照会

活用シーン

  1. 01Portfolio Margin Pro残高の確認
  2. 02EarnとFutures間の資産振替
  3. 03負残高の利息履歴の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/binance/binance-skills-hub --skill derivatives-trading-portfolio-margin-pro

インストール後、Claude Code で/derivatives-trading-portfolio-margin-proを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
LICENSE.md
references/
authentication.md

詳細

Binance Derivatives-trading-portfolio-margin-pro スキル

認証済み API エンドポイントを使用して、Binance で Derivatives-trading-portfolio-margin-pro リクエストを実行します。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返します。

クイックリファレンス

エンドポイント説明必須任意認証
/sapi/v1/portfolio/bnb-transfer (POST)BNB の振替(USER_DATA)amount, transferSiderecvWindowはい
/sapi/v1/portfolio/repay-futures-switch (POST)Auto-repay-futures のステータスを変更(TRADE)autoRepayrecvWindowはい
/sapi/v1/portfolio/repay-futures-switch (GET)Auto-repay-futures のステータスを取得(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/repay (POST)Portfolio Margin Pro の破産ローンを返済なしfrom, recvWindowはい
/sapi/v1/portfolio/auto-collection (POST)資金の自動回収(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/asset-collection (POST)資産別に資金を回収(USER_DATA)assetrecvWindowはい
/sapi/v2/portfolio/account (GET)Portfolio Margin Pro の SPAN アカウント情報を取得(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/account (GET)Portfolio Margin Pro のアカウント情報を取得(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/balance (GET)Portfolio Margin Pro のアカウント残高を取得(USER_DATA)なしasset, recvWindowはい
/sapi/v1/portfolio/delta-mode (GET)Delta モードのステータスを取得(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/delta-mode (POST)Delta モードを切り替え(TRADE)deltaEnabledrecvWindowはい
/sapi/v1/portfolio/earn-asset-balance (GET)Portfolio Margin に振替可能な Earn 資産残高を取得(USER_DATA)asset, transferTyperecvWindowはい
/sapi/v1/portfolio/pmLoan (GET)Portfolio Margin Pro の破産ローン額を照会(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/interest-history (GET)Portfolio Margin Pro のマイナス残高に対する利息履歴を照会(USER_DATA)なしasset, startTime, endTime, size, recvWindowはい
/sapi/v1/portfolio/pmloan-history (GET)Portfolio Margin Pro の破産ローン返済履歴を照会(USER_DATA)なしstartTime, endTime, current, size, recvWindowはい
/sapi/v1/portfolio/repay-futures-negative-balance (POST)Futures のマイナス残高を返済(USER_DATA)なしfrom, recvWindowはい
/sapi/v1/portfolio/earn-asset-transfer (POST)Portfolio Margin 用に LDUSDT/RWUSD を振替(TRADE)asset, transferType, amountrecvWindowはい
/sapi/v1/portfolio/collateralRate (GET)Portfolio Margin の担保率(MARKET_DATA)なしなしいいえ
/sapi/v1/portfolio/margin-asset-leverage (GET)Portfolio Margin の資産レバレッジを取得(USER_DATA)なしなしはい
/sapi/v2/portfolio/collateralRate (GET)Portfolio Margin Pro の段階別担保率(USER_DATA)なしrecvWindowはい
/sapi/v1/portfolio/asset-index-price (GET)Portfolio Margin の資産インデックス価格を照会(MARKET_DATA)なしassetいいえ

パラメーター

共通パラメーター
  • amount: (例:1.0)
  • transferSide: "TO_UM","FROM_UM"
  • recvWindow: (例:5000)
  • autoRepay: デフォルト:true。先物のマイナス残高に対する自動返済機能をオフにする場合は false を指定します(例:true)
  • from: SPOT または MARGIN。デフォルトは SPOT(例:SPOT)
  • asset: LDUSDT および RWUSD
  • asset:
  • transferType: EARN_TO_FUTURE /FUTURE_TO_EARN
  • startTime: (例:1623319461670)
  • endTime: (例:1641782889000)
  • size: デフォルト:10、最大:100(例:10)
  • current: 現在照会しているページ。1 から始まります。デフォルト:1(例:1)
  • deltaEnabled: Delta モードを有効にする場合は true、無効にする場合は false

認証

認証が必要なエンドポイントでは、Binance API の認証情報を指定する必要があります。 必要な認証情報:

  • apiKey:Binance API キー(ヘッダー用)
  • secretKey:Binance API シークレット(署名用)

ベース URL:

セキュリティ

認証情報の共有

ユーザーはさまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の2つの方法で認証情報を自動的に取得しますが、ユーザーが認証情報を設定した、または .env ファイルに保存したことを明示的に伝えることもできます。その場合、エージェントは該当ファイルを再読み込みする必要があります。また、最初の2つの方法では、ユーザーの確認なしに HTTP リクエストを実行できます。

  1. 環境変数

次の特定の変数のみを検索してください(環境変数全体を絶対に出力しないでください)。

許可されている環境変数

  • Mainnet:BINANCE_API_KEY と BINANCE_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を参照)。

  1. シークレットファイル(.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 ファイルに保存したことを伝えた場合は、そのファイルを再読み込みしてください。

  1. インラインファイル

次の形式で内容を記述したファイルを送信します。

abc123...xyz
secret123...key
  • 特定の変数名を指定せずに printenv、env、export、または set を絶対に実行しないでください
  • 環境変数ファイルに対して grep を実行する場合は、必ず特定のキー('^VARNAME=')に絞ってください
  • シークレットファイルをシェル環境に読み込まないでください(source .env または . .env)
  • 現在のタスクで明示的に必要な認証情報のみを読み取ってください
  • 出力や返信で生の認証情報を表示または記録しないでください
  • 実際の認証情報を含む場合は、TOOLS.md をバージョン管理にコミットしないでください。.gitignore に追加してください
API キーとシークレットを絶対に開示しない

API キーとシークレットファイルの場所を絶対に開示しないでください。

API キーとシークレットは、Mainnet と Testnet 以外のウェブサイトには絶対に送信しないでください。

シークレット全体を絶対に表示しない

認証情報をユーザーに表示する場合:

  • API キー: 先頭5文字と末尾4文字を表示します:su1Qc...8akf
  • Secret Key: 必ずマスクし、末尾5文字のみを表示します:***...aws1

認証情報を尋ねられた場合の応答例: アカウント:main API キー:su1Qc...8akf シークレット:***...aws1

アカウントの一覧表示

アカウントを一覧表示する際は、名前と環境のみを表示し、キーは絶対に表示しないでください: Binance アカウント:

  • main(Mainnet)
  • futures-keys(Mainnet)
Mainnet での取引

Mainnet で取引を実行する場合は、必ず事前にユーザーに「CONFIRM」と入力して続行するよう依頼し、確認を得てください。


Binance アカウント

main
  • API キー:your_mainnet_api_key
  • シークレット:your_mainnet_secret
TOOLS.md の構成
## Binance Accounts

### main
- API Key: abc123...xyz
- Secret: secret123...key
- Description: Primary trading account


### futures-keys
- API Key: futures789...def
- Secret: futuressecret...uvw
- Description: Futures trading account

エージェントの動作

  1. 認証情報を尋ねられた場合:シークレットをマスクします(末尾5文字のみ表示)
  2. アカウントの一覧表示:名前と環境を表示し、キーは絶対に表示しません
  3. アカウントの選択:曖昧な場合は尋ね、既定では main を選択します
  4. Mainnet で取引を行う場合:続行する前に「CONFIRM」と入力するようユーザーに依頼し、確認を得ます
  5. 新しい認証情報:名前、環境、署名モードを尋ねます

アカウントの追加

ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:

  • アカウント名を尋ねます
  • マスクされた表示で確認を示し、TOOLS.md に保存します

リクエストへの署名

署名が必要な取引エンドポイントでは、次の手順を実行します。

  1. まずキーの種類を判別します。署名する前に、シークレットキーの形式を確認します。
  2. タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターでクエリ文字列を作成します。
  3. RFC 3986 に従って、パラメーターを UTF-8 でパーセントエンコードします。
  4. アカウントの設定に応じて、secretKey を使い、HMAC SHA256、RSA、または Ed25519 でクエリ文字列に署名します。
  5. クエリ文字列に署名を追加します。
  6. X-MBX-APIKEY ヘッダーを含めます。

それ以外の場合は、手順 4~6 を実行しないでください。

User Agent ヘッダー

次の文字列を指定した User-Agent ヘッダーを含めます:binance-derivatives-trading-portfolio-margin-pro/1.1.0 (Skill)

実装の詳細については、references/authentication.md を参照してください。

コメント