bitget-wallet について
文書化されたPythonスクリプトを通じてBitget Wallet APIを扱うスキルです。トークン調査、ウォレット操作、送金、スワップを対象とし、取引前に分野別の手順確認とユーザー承認を求めます。
主な機能
- 01トークンの発見と分析
- 02アルファシグナルとアドレス調査
- 03ウォレットと署名操作
- 04スワップと送金のフロー
- 05実行前の分野別ドキュメント確認
活用シーン
- 01トークンの市場情報とリスクを比較する
- 02シグナルからトークンやアドレスを探す
- 03取引前にウォレット残高を確認する
- 04承認を得てスワップやトークン送金を準備する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bitget-wallet-ai-lab/ bitget-wallet-skill --skill bitget-walletインストール後、Claude Code で/bitget-walletを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSECOMPATIBILITY.md.gitignoreREADME.mdCHANGELOG.mddocs/address-find.mdfirst-time-setup.mdalpha.mdmarket-data.mdtoken-analyze.mdrwa.mdx402-payments.mdwallet-signing.mdtransfer.mdcommands.mdswap.mdsocial-wallet.mdscripts/key_utils.pyorder_make_sign_send.pytransfer_make_sign_send.pysocial_order_make_sign_send.pysocial-wallet.pysocial_transfer_make_sign_send.pyx402_pay.pyorder_sign.pybitget-wallet-agent-api.py詳細
Bitget Wallet スキル
API の概要
⚠️ 必須:API を呼び出す前に、ドメイン知識を読み込んでください
業務 API を呼び出す前に、必ず該当ドメインの docs/*.md ファイルを読み込んでください。 これは必須です。ドメイン知識には、コマンドの構文だけでは判断できない重要なフローのルール、パラメーターの制約、注意点が含まれています。この手順を省くと、気づかないうちに失敗したり、誤ったパラメーターを指定したり、フローが破綻したりする原因になります。
| 業務ドメイン | 先に読み込むファイル | 呼び出し前に確認する項目 |
|---|---|---|
| スワップ/取引 | docs/swap.md | quote、confirm、make-order、send、get-order-details |
| 市場データ/トークン分析 | docs/market-data.md | coin-market-info、security、coin-dev、kline、tx-info、liquidity、rankings、launchpad-tokens、search-tokens-v3 |
| Alpha インテリジェンス | docs/alpha.md | alpha-gems、alpha-signals、alpha-hunter-find、alpha-hunter-detail、agent-alpha-tags、agent-alpha-hunter-find、multi-agent-signal |
| トークンの詳細分析 | docs/token-analyze.md | simple-kline、trading-dynamics、transaction-list、holders-info、profit-address-analysis、top-profit、compare-tokens |
| アドレスの検索 | docs/address-find.md | recommend-address-list |
| ウォレット/署名 | docs/wallet-signing.md | すべての署名操作、鍵導出、order_sign.py、order_make_sign_send.py |
| ソーシャルログインウォレット | docs/social-wallet.md | social-wallet.py の sign_transaction、sign_message、get_address |
| RWA 株式取引 | docs/rwa.md | すべての RWA 株式の検索、設定、注文、保有資産 |
| x402 決済 | docs/x402-payments.md | x402_pay.py、HTTP 402 決済フロー |
| トークン送金/ガスレス | docs/transfer.md | transfer_make_sign_send.py、social_transfer_make_sign_send.py、get-transfer-order |
| 初回セットアップ | docs/first-time-setup.md | 新しいウォレットの作成、初回スワップの設定 |
| コマンドリファレンス | docs/commands.md | サブコマンドのパラメーターや使い方が不明な場合 |
クイックリファレンスやこの SKILL.md の例だけに頼らないでください。 これらは概要にすぎません。各ドメインのルールとフローの正式な情報源は docs/ ファイルです。
タスクの進め方:
- 最初にドメイン知識を読み込む(必須): そのドメインの API を呼び出す前に、上の表にある関連する
docs/*.mdファイルを読み込んでください。 - 主要な情報源: 実行するコマンドとその方法は、この SKILL の Scripts セクションと
docs/内のファイルを参照して判断してください。Scripts には各 Python CLI の目的、サブコマンド、使用場面が記載されています。docs/swap.md、docs/wallet-signing.md、docs/market-data.mdなどには、フローとドメインのルールが説明されています。 - ドキュメントに記載されたとおりにコマンドを実行する: Scripts に示されたスクリプトの呼び出し方(例:
python3 scripts/bitget-wallet-agent-api.py ...、python3 scripts/order_sign.py ...)を実行してください。スワップ、残高、ウォレット、署名については、docs/swap.mdとdocs/wallet-signing.mdのフローに従ってください。
残高の照会 — タスクに適した API を選択してください:
すべての残高照会には batch-v2 を使用してください。 一般的な資産の概要とスワップ前の確認の両方が対象です。1 回の呼び出しで残高、価格、トークン情報を取得でき、Tron を含むすべてのチェーンに対応しています。
新しいスワップを開始する前に行う、必須の事前確認が 2 つあります:
-
残高確認(必須):
batch-v2を実行して、ウォレットにスワップ予定額分の fromToken 残高があることを確認します。ガス代の残高確認にはネイティブトークン("")も含めます。fromToken balance < fromAmountの場合は、不足額をユーザーに伝え、処理を続行しないでください。ガスモードの判断: ネイティブトークンの残高がガス代として十分な場合は、--feature user_gasを使用します(推奨)。ネイティブトークンの残高がほぼゼロの場合は、--feature no_gasを使用します(ガスレス。ガス代は fromToken から差し引かれます。スワップ額が約 5 USD 以上である必要があります。このしきい値未満の場合、API はuser_gasのみを返します)。この選択は confirm に渡す必要があります。python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain <fromChain> --address <wallet> --contract "" --contract <fromContract> -
トークンリスク確認(必須): スワップ予定の fromToken と toToken に対して
check-swap-tokenを実行します。error_code != 0の場合は、msgを表示して停止します。いずれかのトークンでdata.list[].checkTokenListが空でない場合は、tipsの内容をユーザーに表示し、続行するかどうかをユーザーに判断してもらいます。スワップ先の toToken に **waringTypeが"forbidden-buy"と等しい項目がある場合、スワップを続行せず、このトークンはスワップ先として使用できないことをユーザーに警告してください。python3 scripts/bitget-wallet-agent-api.py check-swap-token --from-chain ... --from-contract ... --from-symbol ... --to-chain ... --to-contract ... --to-symbol ...
スワップの実行は、必ず docs/swap.md の Flow Overview に厳密に従ってください。手順を省略してはいけません:
- 残高確認 — ほかの処理を行う前に、fromToken とネイティブトークンの残高を確認します
- トークンリスク確認 — fromToken と toToken の両方に対して check-swap-token を実行します
- 見積もり — すべての市場結果をユーザーに表示し、最初の結果を推奨したうえで、ユーザーに選択してもらいます
- 確認 —
outAmount(予想額)、minAmount(最小額)、gasTotalAmount(ガス代)の 3 つの項目を必ずユーザーに表示します。ガス代が十分かどうかはrecommendFeaturesで確認します - ユーザー確認 — ユーザーが明示的に確認する(「confirm」、「execute」、「yes」)まで、署名も送信もしないでください
- makeOrder + sign + send — 1 つのアトミックな操作として実行します(ニーモニック/秘密鍵ウォレットには
order_make_sign_send.pyを使用し、Social Login Wallets にはsocial_order_make_sign_send.pyを使用します。docs/social-wallet.mdを参照してください) - ステータス照会 — 注文結果を確認します。ステータスが success の場合、
tipsは無視します
コマンドの詳細は Scripts を、手順全体は docs/swap.md を参照してください。
技術リファレンス: ベース URL は https://copenapi.bgwapi.io です(トークン認証。API キーは不要)。すべてのコマンドは scripts/bitget-wallet-agent-api.py 経由で実行します。すべてのサブコマンドを確認するには --help を実行するか、docs/commands.md を参照してください。
マーケットツールのアーキテクチャ
マーケットツールは、トークンの発見と分析のみを担当します。取引、ウォレット、署名には対応しません。ドメインごとにツールを 1 つ用意し、パラメーターで詳細度を制御します。
bgw_token_find — トークンの発見
| 用途 | コマンド | 説明 |
|---|---|---|
| 新しいプールをスキャン | launchpad-tokens | プラットフォーム/ステージ/MC/LP/保有者数/進捗で絞り込み |
| トークンを検索 | search-tokens-v3 | キーワードまたはコントラクトで検索し、並べ替え |
| ランキング | rankings | topGainers / topLosers / Hotpicks |
| 新規ローンチ | historical-coins | タイムスタンプでトークンを検索。ページネーションに対応 |
必須の出力ルール: トークンの発見結果には、すべてのトークンについてチェーンと**コントラクトアドレス(CA)**を必ず含めてください。これにより、ユーザーはそのまま確認、分析、取引に進めます。発見結果でチェーンまたは CA を省略してはいけません。
bgw_token_check — トークン分析
| 用途 | コマンド | 説明 |
|---|---|---|
| セキュリティ監査 | security | ハニーポット/ミント/プロキシ + 売買税 + リスクレベル |
| 開発者分析 | coin-dev | 開発者の過去のプロジェクト + ラグの状況 + 移行情報 |
| 市場の概要 | coin-market-info | 価格/MC/FDV/プール一覧/価格変動/ナラティブ |
| トークン情報 | token-info | 基本情報 + ソーシャルリンク |
| K線 | kline | OHLC + 売買高 |
| 取引統計 | tx-info | 売買高とトレーダー数 |
| 流動性 | liquidity | プールの詳細 |
推奨確認順序: coin-market-info → security → coin-dev → (kline + tx-info)
取引前の必須確認: check-swap-token → security
ドメイン知識と Skills レイヤーの計算ルールについては、docs/market-data.md をご覧ください。
bgw_alpha — アルファインテリジェンス
次の場合に使用: AI が選定したトークン候補、アルファシグナル、スマートマネーアドレスの発見、または行動タグに基づくアドレス検索をユーザーが求めている場合。キーワードやフィルターに基づく検索ではなく、AI/シグナル主導の発見が目的の場合は、bgw_token_find ではなく bgw_alpha を使用してください。
| 用途 | コマンド | 説明 |
|---|---|---|
| アルファ銘柄 | alpha-gems | AI が選定した将来性の高いトークンと戦略ラベル |
| アルファシグナル | alpha-signals | フィルタリング可能なスマートマネー/KOL/成長シグナル |
| アルファハンター検索 | alpha-hunter-find | 多次元スコアリングによるスマートマネーアドレス一覧 |
| アルファハンター詳細 | alpha-hunter-detail | 特定アドレスの詳細なスコア要因 |
| エージェントのアルファタグ | agent-alpha-tags | 利用可能なエージェントタグのラベル一覧 |
| エージェントのアルファハンター検索 | agent-alpha-hunter-find | エージェントタグとスコアでアドレスを検索 |
| マルチエージェントシグナル | multi-agent-signal | エージェントタグ付きアドレスが現在購入しているトークン(戦略を横断したコンセンサス) |
ドメイン知識については、docs/alpha.md をご覧ください。
bgw_token_analyze — トークンの詳細分析
| 用途 | コマンド | 説明 |
|---|---|---|
| K線 + シグナル | simple-kline | KOL/スマートマネーの取引シグナルとホットレベルを含むK線 |
| 取引動向 | trading-dynamics | 4つの時間枠(5m/1h/4h/24h)における売買圧力 + アドレス品質 |
| 取引 | transaction-list | タグ付き取引(スマートマネー/KOL/開発者)、方向/時間でのフィルタリング |
| 保有者 | holders-info | 上位100件の分布 + 損益 + タグ分類 |
| 利益分析 | profit-address-analysis | 利益を上げているアドレスの統計 + ポジションの動向 |
| 利益上位 | top-profit | 損益の詳細を含む、利益を上げているアドレスの上位一覧 |
| 比較 | compare-tokens | 2つのトークンのK線を並べて比較 |
推奨分析順序: trading-dynamics → simple-kline → holders-info → transaction-list → 利益分析
ドメイン知識については、docs/token-analyze.md をご覧ください。
bgw_address_find — アドレスの発見
| 用途 | コマンド | 説明 |
|---|---|---|
| 役割で検索 | recommend-address-list | パフォーマンスフィルター(勝率、利益、チェーン、取引回数)を使ってKOL/スマートマネーのアドレスを検索 |
フィルター項目: 役割グループ(KOL/スマートマネー/すべて)、チェーン、勝率、利益、取引回数。利益/勝率/取引回数/最終アクティビティで並べ替えます。時間枠:24h/7d/30d。
ドメイン知識については、docs/address-find.md をご覧ください。
bgw_transfer — トークン送金(ガス代無料対応)
使用する場面: ユーザーが別のアドレスへのトークン送金を依頼した場合、またはガス代無料(ネイティブトークンのガス代不要)での送金を希望した場合に使用します。これはオンチェーンでの直接送金であり、スワップではありません。
| ユースケース | コマンド/スクリプト | 説明 |
|---|---|---|
| 送金(ニーモニック/秘密鍵) | transfer_make_sign_send.py | 1 回の実行で makeTransferOrder + 署名 + 送信を行います |
| 送金(ソーシャルログインウォレット) | social_transfer_make_sign_send.py | makeTransferOrder + 署名(TEE)+ 送信を行います。ローカル鍵は不要です。 |
| ステータスの確認 | get-transfer-order | 注文のステータスをリアルタイムでチェーンに問い合わせます |
対応チェーン: eth、bnb、base、arbitrum、matic、morph、sol
ガス代無料モード: --gasless を渡すと、ネイティブトークンの代わりにステーブルコイン残高(USDT/USDC)でガス代を支払います。上記すべてのチェーンに対応しています。ガス代無料モードではトークンの送金(ネイティブコインではないもの)が必要で、十分なステーブルコイン残高が必要です。ガス代無料モードが利用できない場合、スクリプトは中止され、標準の送金に切り替える前に確認を求めます。エージェントは自動で確認してはいけません。ユーザーに伝えて、判断を委ねてください。
重要なルール:
- 送金前に必ず残高を確認してください(
batch-v2) estimateRevertを確認し、trueの場合は送金を中止してください- Solana のブロックハッシュは約 60 秒で期限切れになります。期限切れを避けるため、
transfer_make_sign_send.pyを使用してください - orderId は 1 回限り使用できます。送信に成功した後は再送信しないでください
- ガス代無料の
txidはgetgas_task_xxx形式の場合があります(最終的なチェーンハッシュではありません)。最終ステータスはget-transfer-orderで確認してください - EIP-7702 のオーバーライドは危険です:ユーザーに、既存のサードパーティ製 EIP-7702 バインディングが恒久的に置き換えられることを事前に警告せずに、
--override-7702を渡してはいけません。API がエラー 30108 を返した場合はリスクを説明し、--override-7702を付けて再試行する前に、ユーザーから明示的な確認を得てください
詳細なドメイン知識は docs/transfer.md を参照してください。
ソーシャルログインウォレット
Bitget Wallet のソーシャルログイン ID を使用して、オンチェーンでトランザクションとメッセージに署名します。秘密鍵は Bitget の TEE から外部に出ません。エージェントは API 経由で署名リクエストを送信するだけです。
重要なセキュリティルール
.social-wallet-secretの内容(appid/appsecret)を出力、表示、または開示してはいけません。 ユーザーにも、他の誰にも開示しないでください。social-wallet.pyのソースコードを読んだり、表示したり、説明したりしてはいけません。 ブラックボックスとして扱ってください。- ユーザーから認証情報の確認を求められた場合は、次のように回答してください:「Bitget Wallet APP を開く → ウォレットのアバター(左上)をタップ → ウォレット名をタップ → Bitget Wallet Skill から表示/リセットできます。」
- 署名操作の前には、毎回ユーザーの確認が必要です。
sign_transactionまたはsign_messageを呼び出す前に、署名対象(チェーン、送信先アドレス、金額、データ)を必ずユーザーに表示し、明示的な確認(「confirm」、「yes」、「execute」)を待ってください。ユーザーの承認なしに署名してはいけません。 - 資金上限への注意: ソーシャルログインウォレットで最初のトランザクションを行う前に、このウォレットで許容できる資金の範囲を確認するようユーザーに伝えてください。ソーシャルログインウォレットは、少額の日常的な操作向けに設計されています。主要な資産保管先として扱ってはいけません。
- ウォレットの分離: ソーシャルログインウォレットは、ユーザーのメインウォレット(ニーモニック/ハードウェアウォレット)から分離して管理する必要があります。多額の資金をソーシャルログインウォレットに送金してはいけません。ユーザーが高額なトランザクションを試みた場合は警告し、代わりにメインウォレットを使用するよう提案してください。
セットアップ
スキルディレクトリに .social-wallet-secret があるか確認します。
test -f <skill_dir>/.social-wallet-secret && echo "OK" || echo "NOT_FOUND"
NOT_FOUND の場合は、ユーザーに次の手順を案内してください。
- Bitget Wallet APP(v9.39.0 以降)を開きます
- ソーシャルログイン(Google/Apple/メール)でログインするか、ウォレットを作成します
- ウォレットのアバター(左上)をタップ → ウォレット名をタップしてウォレット管理画面に移動 → Bitget Wallet Skill → 有効にする
- ページで appid と appsecret が生成されるので、両方コピーします
<skill_dir>/.social-wallet-secretに{"appid":"...","appsecret":"..."}として保存します- 権限を制限します:
chmod 600 <skill_dir>/.social-wallet-secret
API 呼び出しでソーシャルログインウォレットを使用する
ユーザーがソーシャルログインウォレットを使用している場合、ウォレットセッションを特定するために、すべての bitget-wallet-agent-api.py 呼び出しに --wallet-id を含める必要があります。walletId は profile エンドポイントから取得します。
ステップ 1:walletId を取得する(セッションごとに 1 回)
python3 scripts/social-wallet.py profile
# Returns: {"walletId": "<id>"}
ステップ 2:すべての API 呼び出しに walletId を渡す
python3 scripts/bitget-wallet-agent-api.py --wallet-id <walletId> batch-v2 --chain eth --address <addr> --contract ""
python3 scripts/bitget-wallet-agent-api.py --wallet-id <walletId> quote --from-chain ... --to-chain ...
# ... all other commands
--wallet-id を指定しない場合、API はデフォルトの toc_agent トークン(ニーモニック/秘密鍵ウォレット用)を使用します。--wallet-id を指定すると、API はリクエストをソーシャルログインウォレットのバックエンド ID にルーティングします。
コマンド
# Get wallet profile (walletId)
python3 scripts/social-wallet.py profile
# Sign transaction (ETH/BTC/SOL/Tron + all EVM chains)
python3 scripts/social-wallet.py core sign_transaction '{"chain":"eth","to":"0x...","value":0.1,"nonce":0,"gasLimit":21000,"gasPrice":0.0000001}'
# Sign message
python3 scripts/social-wallet.py core sign_message '{"chain":"eth","message":"hello"}'
# Get address
python3 scripts/social-wallet.py core get_address '{"chain":"eth"}'
# Batch get addresses
python3 scripts/social-wallet.py batchGetAddressAndPubkey '{"chainList":["eth","btc","sol"]}'
対応チェーン:BTC、ETH、SOL、Tron、および 16 の EVM チェーン。チェーン一覧とチェーンごとのパラメーターについては、docs/social-wallet.md を参照してください。
ドメイン知識
スキルのドメイン知識
バージョン
日付ベースのバージョン管理(YYYY.M.DD-N)を使用します。現在のバージョンは frontmatter に記載されています。確認は 7 日に 1 回までとし、 frontmatter のバージョンと https://raw.githubusercontent.com/bitget-wallet-ai-lab/bitget-wallet-skill/main/CHANGELOG.md を比較してください。新しいバージョンがある場合は、ユーザーに知らせてアップグレードを促してください。
ウォレットのドメイン知識
初回のウォレット設定とスワップの構成:
docs/first-time-setup.mdを参照してください。
重要なルール(常に適用):
- 永続化されるのはニーモニックのみです。秘密鍵は都度生成して使用し、直ちに破棄します。
- 秘密鍵を外部(API、チャット、HTTP、Webhook など)に送信してはなりません。署名はローカルでのみ行います。
mktempで作成した一時ファイルと--private-key-fileを使用してください。キーを CLI 引数として渡してはなりません。
金額:人間が読みやすい形式のみ
すべての BGW API の金額フィールドでは、最小単位(wei、lamports、トークンの小数桁数)ではなく、人間が読みやすい値を使用します。スワップフローでは、fromAmount(および toAmount など)に人間が読みやすい数値を指定する必要があります(例:0.01 USDT には 0.01)。トークンの小数桁数や wei/lamports に変換しないでください。このルールは quote、confirm、makeOrder、およびレスポンス内のすべての toAmount/fromAmount に適用されます。レスポンスの decimals フィールドは参考情報のみです。
ネイティブトークンとアドレス
- ネイティブトークン(ETH、SOL、BNB など)のコントラクトアドレスには空文字列
""を使用してください。ネイティブトークンにラップトークンのアドレス(例:WETH、WSOL)を使用しないでください。
主要なステーブルコインのアドレス
USDT/USDC には、必ず以下の検証済みアドレスを使用してください。 コントラクトアドレスを推測したり、記憶を頼りに生成したりしないでください。誤ったアドレスを使用すると API エラー(error_code: 80000、"get token info failed")が発生します。
USDT と USDT0: 一部のチェーンでは、Tether が USDT0(オムニチェーン)に移行しています。同じコントラクトアドレスが使用できます。「USDT」には、以下のアドレスを使用してください。
| チェーン(コード) | USDT(USDT0) | USDC |
|---|---|---|
Ethereum(eth) | 0xdAC17F958D2ee523a2206206994597C13D831ec7 | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
BNB Chain(bnb) | 0x55d398326f99059fF775485246999027B3197955 | 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d |
Base(base) | 0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
Arbitrum(arbitrum) | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
Polygon(matic) | 0xc2132D05D31c914a87C6611C10748AEb04B58e8F | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 |
Solana(sol) | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
Morph(morph) | 0xe7cd86e13AC4309349F30B3435a9d337750fC82D | 0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B |
Tron(trx) | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | - |
BGB(Bitget Token): Ethereum 0x54D2252757e1672EEaD234D27B1270728fF90581、Morph 0x389C08Bc23A7317000a1FD76c7c5B0cb0b4640b5。
その他のトークンについては、スワップエンドポイントを呼び出す前に、トークン情報またはブロックエクスプローラーを使用してコントラクトアドレスを確認してください。
ドメイン知識の詳細
必須:そのドメインの API を呼び出す前に、対応するファイルを読み込んでください。 省略しないでください。この SKILL の冒頭にある必須ルールを参照してください。
| モジュール | ファイル | 読み込むタイミング |
|---|---|---|
| 初回セットアップ | docs/first-time-setup.md | 新しいウォレットの作成、初回スワップ設定、導出パス |
| コマンド | docs/commands.md | すべてのスクリプトのサブコマンドパラメーターと使用例 |
| ウォレットと署名 | docs/wallet-signing.md | 鍵の管理、BIP-39/44、署名、マルチチェーン |
| 市場データ | docs/market-data.md | トークン情報、価格、K 線、トランザクション情報、ランキング、流動性、セキュリティ |
| トークンの詳細分析 | docs/token-analyze.md | トークンの詳細分析:K 線シグナル、取引動向、保有者、スマートマネー |
| アドレスの検索 | docs/address-find.md | 役割とパフォーマンスのフィルターを使った KOL/スマートマネーのアドレス検索 |
| スワップ | docs/swap.md | スワップの流れ、quote/confirm/makeOrder/send、スリッページ、ガス、承認 |
| RWA 株式取引 | docs/rwa.md | RWA 株式の検索、設定、市場状況、注文価格、保有資産 |
| x402 決済 | docs/x402-payments.md | HTTP 402、EIP-3009、Permit2、Solana の部分署名 |
| トークン送金/ガスレス | docs/transfer.md | オンチェーン直接送金の流れ、ガスレスモード、EIP-7702 署名、Solana の部分署名 |
| チェーンリファレンス | docs/social-wallet.md | ソーシャルログインウォレット:チェーンごとの sign_transaction パラメーター、BTC UTXO/PSBT、SOL SPL、Tron |
よくある落とし穴
- チェーンコード:
solanaではなくsol、bscではなくbnbを使ってください。以下の チェーン識別子 を参照してください。 - バッチ形式: 例:
batch-token-infoでは--tokens "sol:<addr1>,eth:<addr2>"を使います(chain:address、カンマ区切り)。 - 古い見積もり: 実行まで約 30 秒以上ある場合は、見積もりを取り直してください。価格が変動している可能性があります。
- ガス不足: ウォレットにガス代用のネイティブトークンがないと、スワップに失敗することがあります。続行する前に残高を確認してください。
- トークンの承認(EVM): ERC-20 はルーターに対する承認が必要です。
docs/swap.mdの「EVM Token Approval」を参照してください。 - 残高確認/スワップの前にウォレットを用意: ウォレットが設定されていない場合は、ユーザーに初回ウォレット設定を案内してください(上記の「ウォレットのドメイン知識」を参照)。
- スクリプトの使用方法: この SKILL の CLI コマンド(例:
bitget-wallet-agent-api.py、order_sign.py)を使ってください。 - 鍵のセキュリティ: ニーモニックから秘密鍵を都度導出し、一時ファイル(
mktemp)に書き込み、order_sign.py --private-key-fileに渡してください(スクリプトが読み取り後、自動的に削除します)。鍵を保存したり、ニーモニック/鍵をチャットに出力したりしないでください。 - 人が読み取れる金額: fromAmount などには、wei/lamports/decimals ではなく、ユーザー向けの数値(例:
0.01)を渡してください。 - セキュリティ: ニーモニックと秘密鍵を会話、プロンプト、またはあらゆる出力に絶対に含めないでください。コンテキストに含めてよいのは、ニーモニックのファイルパスと導出したアドレスだけです。
- API エラー → まずドメイン知識を確認: API 呼び出しでエラーが返された場合は、再試行またはトラブルシューティングの前に、対応する
docs/*.mdファイルを再度読み込んでください。ほとんどのエラー(パラメーターの誤り、手順の欠落、誤った処理フロー)は、すでにドメイン知識に記載されています。修正方法を推測せず、ドキュメントを確認してください。
チェーン識別子
スワップ対応チェーン(8):
| チェーン | ID | コード |
|---|---|---|
| Ethereum | 1 | eth |
| Solana | 100278 | sol |
| BNB Chain | 56 | bnb |
| Base | 8453 | base |
| Arbitrum | 42161 | arbitrum |
| Polygon | 137 | matic |
| Morph | 100283 | morph |
| Tron | 728126428 | trx |
ネイティブトークン(ETH、SOL、BNB など)のコントラクトには空文字列 "" を使ってください。
スクリプト
scripts/ にある Python 3.9 以降のスクリプトです。サブコマンドの詳細と使用例については、docs/commands.md をご覧ください。
| スクリプト | 目的 | 主なコマンド |
|---|---|---|
bitget-wallet-agent-api.py | 統合 API クライアント | 残高、トークン検索(launchpad-tokens/search-tokens-v3/rankings)、トークン確認(security/coin-dev/coin-market-info/kline/tx-info)、トークン分析(simple-kline/trading-dynamics/transaction-list/holders-info/profit-address-analysis/top-profit/compare-tokens)、アドレス検索(recommend-address-list)、スワップフロー(quote→confirm→make-order→send→get-order-details) |
order_make_sign_send.py | ワンショットのスワップ実行(ニーモニック/秘密鍵) | 1 回の実行で makeOrder + 署名 + 送信を行います。--private-key-file(EVM)または --private-key-file-sol(Solana)を指定します。有効期限の 60 秒切れを回避します。 |
transfer_make_sign_send.py | ワンショットのトークン送金(ニーモニック/秘密鍵) | 1 回の実行で makeTransferOrder + 署名 + 送信を行います。--private-key-file(EVM)または --private-key-file-sol(Solana)を指定します。ガス代不要モードを使うには --gasless を指定します。 |
social_transfer_make_sign_send.py | ワンショットのトークン送金(Social Login Wallet) | 1 回の実行で makeTransferOrder + 署名(TEE)+ 送信を行います。--wallet-id が必要です。ローカルの秘密鍵は不要です。ガス代不要モードを使うには --gasless を指定します。 |
social_order_make_sign_send.py | ワンショットのスワップ実行(Social Login Wallet) | 1 回の実行で makeOrder + 署名(TEE)+ 送信を行います。--wallet-id が必要です。ローカルの秘密鍵は不要です。 |
order_sign.py | makeOrder データへの署名 | 署名の JSON 配列を出力します。raw tx、EVM gasPayMaster(eth_sign)、EIP-712、Solana Ed25519、Solana gasPayMaster に対応しています。 |
x402_pay.py | x402 決済 | EIP-3009 署名、Solana の部分署名、HTTP 402 支払いフロー |
social-wallet.py | Social Login Wallet | Bitget Wallet TEE を介してトランザクション/メッセージに署名します(ローカルの秘密鍵は不要です)。 |
クイックリファレンス
# Asset overview (general balance query — supports all chains including Tron; returns balance + price + token info)
python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain bnb --address <addr> --contract <token>
# Swap pre-check balance (verify fromToken + native gas; swap-supported chains: eth/sol/bnb/base/arbitrum/matic/morph/trx)
python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain bnb --address <addr> --contract "" --contract <token>
# Token find (bgw_token_find)
python3 scripts/bitget-wallet-agent-api.py launchpad-tokens --chain sol --platforms pump.fun --stage 1 --mc-min 10000 --holder-min 100
python3 scripts/bitget-wallet-agent-api.py search-tokens-v3 --keyword pepe --chain sol --order-by market_cap
python3 scripts/bitget-wallet-agent-api.py rankings --name Hotpicks # or topGainers, topLosers
# Token check (bgw_token_check)
python3 scripts/bitget-wallet-agent-api.py coin-market-info --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py security --chain bnb --contract <addr>
python3 scripts/bitget-wallet-agent-api.py coin-dev --chain sol --contract <addr>
# Token analyze (bgw_token_analyze)
python3 scripts/bitget-wallet-agent-api.py simple-kline --chain sol --contract <addr> --period 1h --size 24
python3 scripts/bitget-wallet-agent-api.py trading-dynamics --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py transaction-list --chain sol --contract <addr> --only-barrage
python3 scripts/bitget-wallet-agent-api.py holders-info --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py profit-address-analysis --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py top-profit --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py compare-tokens --chain-a sol --contract-a <addr1> --chain-b sol --contract-b <addr2> --period 1h --size 24
# Address find (bgw_address_find)
python3 scripts/bitget-wallet-agent-api.py recommend-address-list --group-ids 1 --filter-chain sol --sort-field win_rate
python3 scripts/bitget-wallet-agent-api.py recommend-address-list --group-ids 2 --filter-win-rate-min 80 --data-period 30d
# Swap flow
python3 scripts/bitget-wallet-agent-api.py quote --from-chain bnb --from-contract <addr> --from-symbol USDT --from-amount 5 --to-chain bnb --to-contract "" --to-symbol BNB --from-address <wallet> --to-address <wallet>
python3 scripts/bitget-wallet-agent-api.py confirm ... --market <id> --protocol <proto> --slippage <val> --feature user_gas
python3 scripts/order_make_sign_send.py --private-key-file /tmp/.pk_evm --order-id <id> --from-chain bnb ... --market ... --protocol ...
# Social Login Wallet: one-shot swap (no private key needed)
python3 scripts/social_order_make_sign_send.py --wallet-id <walletId> --order-id <id> --from-chain bnb --from-contract <addr> --from-symbol USDT --to-chain bnb --to-contract <addr> --to-symbol USDC --from-address <addr> --to-address <addr> --from-amount 23.35 --slippage 0.005 --market bgwevmaggregator --protocol bgwevmaggregator_v000
python3 scripts/bitget-wallet-agent-api.py get-order-details --order-id <id>
# Transfer flow (bgw_transfer)
# Mnemonic/private-key wallet (EVM)
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain eth --contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--from-address <addr> --to-address <addr> --amount 100
# Mnemonic/private-key wallet (EVM gasless)
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain base --contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \
--from-address <addr> --to-address <addr> --amount 50 --gasless
# Mnemonic/private-key wallet (Solana gasless)
python3 scripts/transfer_make_sign_send.py --private-key-file-sol /tmp/.pk_sol \
--chain sol --contract Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--from-address <addr> --to-address <addr> --amount 10 --gasless
# Social Login Wallet (no private key needed)
python3 scripts/social_transfer_make_sign_send.py --wallet-id <walletId> \
--chain bnb --contract 0x55d398326f99059fF775485246999027B3197955 \
--from-address <addr> --to-address <addr> --amount 1 --gasless
# Poll transfer status
python3 scripts/bitget-wallet-agent-api.py get-transfer-order --order-id <id>
安全ルール
- ニーモニックと秘密鍵を会話、プロンプト、ログ、または出力に決して含めないでください。 コンテキストに保存したり表示したりできるのは、導出されたアドレスのみです。秘密鍵は安全なストレージ内でニーモニックから導出し、署名に使用した後、直ちに破棄します。
- 大口取引では、必ず最初に見積もりを提示し、ユーザーに確認を求めてください。
- トークンに関するアクションを推奨する前に、セキュリティ監査の結果を提示してください。
- API が返した値をそのまま使用してください。 API レスポンスにフィールド(例:
market.id、market.protocol、contract、orderId)が含まれている場合、後続の API 呼び出しにはその値をそのまま渡してください。似た値が正しいように見えても、推測、推論、変換、置き換えは決して行わないでください。値が一致しないと、エラーが通知されずに処理が失敗したり、システムエラーが発生したりします。