simple-earn について
Binance Simple Earn、BFUSD、RWUSD を管理するユーザー向けに、認証済み API リクエストを行うスキルです。口座情報、申込、償還、履歴を扱い、結果を JSON で返します。一部のエンドポイントでは API 認証情報と署名が必要です。
主な機能
- 01Simple Earn の口座とポジション照会
- 02フレキシブル・ロック商品一覧
- 03申込・償還のプレビューと実行
- 04自動申込と償還オプションの設定
- 05報酬・利率・履歴の取得
活用シーン
- 01商品クォータと口座ポジションの確認
- 02Earn 商品の申込または償還
- 03BFUSD または RWUSD 履歴の確認
- 04自動申込と償還先の調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill simple-earnインストール後、Claude Code で/simple-earnを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdLICENSE.mdreferences/authentication.md詳細
Binance Simple-earn スキル
認証済み API エンドポイントを使用して Binance で Simple-earn をリクエストします。一部のエンドポイントでは API キーとシークレットキーが必要です。結果は JSON 形式で返します。
クイックリファレンス
| エンドポイント | 説明 | 必須 | 任意 | 認証 |
|---|---|---|---|---|
/sapi/v1/bfusd/account (GET) | BFUSD アカウントを取得(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/bfusd/quota (GET) | BFUSD クォータの詳細を取得(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/bfusd/redeem (POST) | BFUSD を償還(TRADE) | amount, type | recvWindow | はい |
/sapi/v1/bfusd/subscribe (POST) | BFUSD を申し込み(TRADE) | asset, amount | recvWindow | はい |
/sapi/v1/bfusd/history/rateHistory (GET) | BFUSD の利率履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/bfusd/history/redemptionHistory (GET) | BFUSD の償還履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/bfusd/history/rewardsHistory (GET) | BFUSD の報酬履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/bfusd/history/subscriptionHistory (GET) | BFUSD の申し込み履歴を取得(USER_DATA) | なし | asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/personalLeftQuota (GET) | フレキシブルの個人残りクォータを取得(USER_DATA) | productId | recvWindow | はい |
/sapi/v1/simple-earn/flexible/position (GET) | フレキシブル商品のポジションを取得(USER_DATA) | なし | asset, productId, current, size, recvWindow | はい |
/sapi/v1/simple-earn/locked/personalLeftQuota (GET) | ロック商品の個人残りクォータを取得(USER_DATA) | projectId | recvWindow | はい |
/sapi/v1/simple-earn/locked/position (GET) | ロック商品のポジションを取得 | なし | asset, positionId, projectId, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/list (GET) | Simple Earn のフレキシブル商品リストを取得(USER_DATA) | なし | asset, current, size, recvWindow | はい |
/sapi/v1/simple-earn/locked/list (GET) | Simple Earn のロック商品リストを取得(USER_DATA) | なし | asset, current, size, recvWindow | はい |
/sapi/v1/simple-earn/account (GET) | Simple アカウント(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/simple-earn/flexible/subscriptionPreview (GET) | フレキシブルの申し込みプレビューを取得(USER_DATA) | productId, amount | recvWindow | はい |
/sapi/v1/simple-earn/locked/subscriptionPreview (GET) | ロック商品の申し込みプレビューを取得(USER_DATA) | projectId, amount | autoSubscribe, recvWindow | はい |
/sapi/v1/simple-earn/flexible/redeem (POST) | フレキシブル商品を償還(TRADE) | productId | redeemAll, amount, destAccount, recvWindow | はい |
/sapi/v1/simple-earn/locked/redeem (POST) | ロック商品を償還(TRADE) | positionId | recvWindow | はい |
/sapi/v1/simple-earn/flexible/setAutoSubscribe (POST) | フレキシブルの自動申し込みを設定(USER_DATA) | productId, autoSubscribe | recvWindow | はい |
/sapi/v1/simple-earn/locked/setAutoSubscribe (POST) | ロック商品の自動申し込みを設定(USER_DATA) | positionId, autoSubscribe | recvWindow | はい |
/sapi/v1/simple-earn/locked/setRedeemOption (POST) | ロック商品の償還オプションを設定(USER_DATA) | positionId, redeemTo | recvWindow | はい |
/sapi/v1/simple-earn/flexible/subscribe (POST) | フレキシブル商品を申し込み(TRADE) | productId, amount | autoSubscribe, sourceAccount, recvWindow | はい |
/sapi/v1/simple-earn/locked/subscribe (POST) | ロック商品を申し込み(TRADE) | projectId, amount | autoSubscribe, sourceAccount, redeemTo, recvWindow | はい |
/sapi/v1/simple-earn/flexible/history/collateralRecord (GET) | 担保記録を取得(USER_DATA) | なし | productId, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/history/redemptionRecord (GET) | フレキシブルの償還記録を取得(USER_DATA) | なし | productId, redeemId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/history/rewardsRecord (GET) | フレキシブルの報酬履歴を取得(USER_DATA) | type | productId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/history/subscriptionRecord (GET) | フレキシブルの申し込み記録を取得(USER_DATA) | なし | productId, purchaseId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/locked/history/redemptionRecord (GET) | ロック商品の償還記録を取得(USER_DATA) | なし | positionId, redeemId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/locked/history/rewardsRecord (GET) | ロック商品の報酬履歴を取得(USER_DATA) | なし | positionId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/locked/history/subscriptionRecord (GET) | ロック商品の申し込み記録を取得(USER_DATA) | なし | purchaseId, asset, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/simple-earn/flexible/history/rateHistory (GET) | 利率履歴を取得(USER_DATA) | productId | aprPeriod, startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/rwusd/quota (GET) | RWUSD クォータの詳細を取得(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/rwusd/account (GET) | RWUSD アカウントを取得(USER_DATA) | なし | recvWindow | はい |
/sapi/v1/rwusd/redeem (POST) | RWUSD を償還(TRADE) | amount, type | recvWindow | はい |
/sapi/v1/rwusd/subscribe (POST) | RWUSD を申し込み(TRADE) | asset, amount | recvWindow | はい |
/sapi/v1/rwusd/history/rateHistory (GET) | RWUSD の利率履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/rwusd/history/redemptionHistory (GET) | RWUSD の償還履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/rwusd/history/rewardsHistory (GET) | RWUSD の報酬履歴を取得(USER_DATA) | なし | startTime, endTime, current, size, recvWindow | はい |
/sapi/v1/rwusd/history/subscriptionHistory (GET) | RWUSD の申し込み履歴を取得(USER_DATA) | なし | asset, startTime, endTime, current, size, recvWindow | はい |
パラメーター
共通パラメーター
- recvWindow:値は60000(ms)を超えることはできません(例:5000)
- amount:金額(例:1.0)
- type:FAST または STANDARD。デフォルトは STANDARD(例:s)
- asset:USDT または USDC(利用可能な方)
- startTime:(例:1623319461670)
- endTime:(例:1641782889000)
- current:現在照会中のページ。1から開始します。デフォルト:1(例:1)
- size:1ページあたりの結果数。デフォルト:10、最大:100(例:10)
- asset:USDC または USDT
- productId:(例:1)
- productId:(例:1)
- projectId:(例:1)
- positionId:(例:1)
- projectId:(例:1)
- autoSubscribe:true または false。デフォルトは true。(例:true)
- redeemAll:true または false。デフォルトは false
- amount:redeemAll が false の場合、amount は必須です(例:1.0)
- destAccount:
SPOT、FUND。デフォルトはSPOT(例:SPOT) - positionId:(例:1)
- autoSubscribe:true または false
- redeemTo:
SPOT、'FLEXIBLE' - sourceAccount:
SPOT、FUND、ALL。デフォルトはSPOT(例:SPOT) - redeemTo:
SPOT、FLEXIBLE。デフォルトはSPOT(例:SPOT) - redeemId:(例:1)
- purchaseId:(例:1)
- aprPeriod:"DAY"、"YEAR"、デフォルトは"DAY"(例:DAY)
認証
認証が必要なエンドポイントでは、Binance API の認証情報を指定する必要があります。 必須の認証情報:
- apiKey:Binance API キー(ヘッダー用)
- secretKey:Binance API シークレット(署名用)
ベース URL:
- Mainnet:https://api.binance.com
セキュリティ
認証情報の共有
ユーザーはさまざまな方法で Binance API の認証情報を提供できます。エージェントは最初の2つの方法で認証情報を自動的に取得しようとしますが、ユーザーが認証情報を設定済み、または .env ファイルに保存済みであると明示することもできます。その場合、エージェントはそのファイルを再読み込みする必要があります。最初の2つの方法では、ユーザーの確認なしで HTTP リクエストを行うこともできます。
- 環境変数
次の特定の変数のみを検索してください(環境変数全体を出力しないでください)。
認証済み環境変数
- 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を参照)を使用してください。
- シークレットファイル(.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 キーとシークレットのファイルの場所を決して開示しないでください。
API キーとシークレットを Mainnet および Testnet 以外のウェブサイトに決して送信しないでください。
シークレット全体を決して表示しない
認証情報をユーザーに表示する場合:
- **API キー:**先頭5文字と末尾4文字を表示します:
su1Qc...8akf - **シークレットキー:**常にマスクし、末尾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
エージェントの動作
- 認証情報を求められた場合:シークレットをマスクします(末尾 5 文字のみ表示)
- アカウントの一覧表示:名前と環境を表示し、キーは絶対に表示しません
- アカウントの選択:曖昧な場合は確認し、デフォルトで main を選択します
- Mainnet で取引を行う場合:続行するには「CONFIRM」と入力するようユーザーに求め、事前に確認します
- 新しい認証情報:名前、環境、署名方式を尋ねます
新しいアカウントの追加
ユーザーがインラインファイルまたはメッセージで新しい認証情報を提供した場合:
- アカウント名を尋ねます
- マスクした表示で確認を行い、
TOOLS.mdに保存します
署名リクエスト
署名が必要な取引エンドポイントの場合:
- まずキーの種類を検出します。署名する前にシークレットキーの形式を確認します。
- タイムスタンプ(Unix ミリ秒)を含むすべてのパラメーターを使って、クエリー文字列を作成します。
- RFC 3986 に従い、UTF-8 を使ってパラメーターをパーセントエンコードします。
- アカウントの設定に応じて、secretKey を使い、HMAC SHA256、RSA、または Ed25519 でクエリー文字列に署名します。
- クエリー文字列に署名を追加します。
X-MBX-APIKEYヘッダーを含めます。
それ以外の場合は、手順 4~6 を実行しないでください。
User Agent ヘッダー
次の文字列を含む User-Agent ヘッダーを追加します:binance-simple-earn/1.1.0 (Skill)
実装の詳細については、references/authentication.md を参照してください。