mcpField
M
metamask-agent-wallet

metamask-agent-wallet

github.com/metamaskその他301.2k 回インストール1 週間前に更新
リポジトリ

metamask-agent-wallet について

metamask-agent-wallet は、MetaMask Agent Wallet の `mm` コマンドラインインターフェースを解説するスキルです。エージェントが必要なコマンドリファレンスやワークフローを選ぶための内容で、ウォレット、取引、市場データ、スワップ、ブリッジ、運用益、予測市場を扱います。

主な機能

  1. 01意図に応じたコマンドリファレンスの案内
  2. 02ログイン、ウォレット、ポリシー操作の説明
  3. 03送金、署名、 raw transaction の解説
  4. 04トークン、価格、AI 市場サマリーの参照
  5. 05パーペチュアルと予測市場のワークフロー
  6. 06スワップ、ブリッジ、運用益の手順

活用シーン

  1. 01ウォレットのログインや初期設定コマンドの選択
  2. 02残高、価格、トークン情報の確認
  3. 03スワップやブリッジの手順の参照
  4. 04予測市場の注文や運用益の手順確認

インストール

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

$npx skills add https://github.com/metamask/agent-skills --skill metamask-agent-wallet

インストール後、Claude Code で/metamask-agent-walletを入力して読み込まれたか確認します。

同梱ファイル

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

references/
auth.md
chain.md
decode.md
doctor.md
earn.md
errors.md
market-data.md
perps.md
plugins.md
polling.md
predict.md
signing.md
swap.md
transaction.md
transfer.md
tx-history.md
wallet.md
x402.md
scripts/
amount_to_hex.py
x402_pay.py
workflows/
bridge.md
earn-supply.md
earn-withdraw.md
login.md
market-data.md
onboarding.md
perps-close-position.md
perps-modify-position.md
perps-open-position.md
predict-funding.md

詳細

MetaMask Agentic CLI スキル

このスキルでは、MetaMask Agent Wallet の認証、ウォレットのライフサイクル、残高の照会、トークンの送金、メッセージと型付きデータの署名、生トランザクション、チェーンの検出、市場データ、トークンの検出、トークン化された実世界資産、AI による市場と資産の要約、無期限先物取引、予測市場取引、予測取引/償還履歴、トークンスワップ、クロスチェーンブリッジ、DeFi の運用益/利回りボールト、EVM calldata のデコードに関する mm CLI の機能を説明します。

ルーティングテーブルを使って、該当するリファレンスファイルを選択してください。CLI の動作は references/ にあります。繰り返し実行できる運用パターンは workflows/ にあります。

コマンドのルーティング

ユーザーの意図をコマンドとリファレンスファイルに対応付け、コマンドを組み立てる前にリファレンスを読んでください。意図が複数のドメインにまたがる場合は、依存関係の順に読み込んでください。

ユーザーの目的コマンドリファレンス
認証状態を確認するmm auth statusauth.md
MetaMask Agentic CLI にログインするmm loginauth.md
ウォレットモードを選択してポリシーを設定するmm initauth.md
現在の初期化設定を表示するmm init showauth.md
MetaMask Mobile で QR コードを使ってサインインするmm login qrauth.md
ブラウザー(Google または Email)でサインインするmm login browserauth.md
サインアウトするmm logoutauth.md
CLI セッションをリセットするmm resetauth.md
CLI 設定を表示するmm config getauth.md
CLI 設定を行うmm config setauth.md
BYOK ニーモニック暗号化パスワードを設定するmm wallet password setauth.md
BYOK ニーモニック暗号化パスワードを変更するmm wallet password changeauth.md
BYOK ニーモニック暗号化パスワードを削除するmm wallet password removeauth.md
CLI の未加工のエラーコードを解釈するAuthError、ValidationError、WALLET_ERRORerrors.md
CLI、スキル、環境、セッションの状態を調べるmm doctordoctor.md
インストール済み CLI プラグインを一覧表示するmm pluginsplugins.md
インストール済み CLI プラグインを調べるmm plugins inspectplugins.md
CLI プラグインをインストールするmm plugins installplugins.md
CLI プラグインを更新するmm plugins updateplugins.md
CLI プラグインをアンインストールするmm plugins uninstallplugins.md
ユーザーがインストールした CLI プラグインをすべて削除するmm plugins resetplugins.md
開発用にローカルのプラグインディレクトリをリンクするmm plugins linkplugins.md
プラグインのベータ版を有効または無効にするmm config set experimentalPluginsplugins.md
EVM calldata を人が読めるインテントにデコードするmm decodedecode.md
ウォレットを作成するmm wallet createwallet.md
すべてのウォレットを一覧表示するmm wallet listwallet.md
アクティブなウォレットを切り替えるmm wallet selectwallet.md
アクティブなウォレットの詳細を表示するmm wallet showwallet.md
アクティブなウォレットのアドレスを表示するmm wallet addresswallet.md
アクティブなウォレットの残高を確認するmm wallet balancewallet.md
アクティブなウォレットに資金を追加するための QR コードとアドレスを表示するmm wallet add-fundwallet.md
現在の取引モードを表示するmm wallet trading-mode getwallet.md
取引モードを guard または beast に設定するmm wallet trading-mode setwallet.md
ウォレットポリシーを表示するmm wallet policy getwallet.md
ウォレットポリシーを設定するmm wallet policy setwallet.md
プロジェクトのポリシーテンプレートを表示するmm wallet policy templatewallet.md
プレーンテキストメッセージに署名するmm wallet sign-messagesigning.md
EIP-712 の型付きデータに署名するmm wallet sign-typed-datasigning.md
生の EVM トランザクションを送信するmm wallet send-transactiontransaction.md
ネイティブトークンまたは ERC-20 トークンを送金するmm transfertransfer.md
CLI がサポートするチェーンを一覧表示するmm chains listchain.md
保留中のウォレットリクエストを一覧表示するmm wallet requests listpolling.md
ウォレットのポーリング ID を監視するmm wallet requests watchpolling.md
現在価格または過去の価格を照会するmm price ...market-data.md
トークン、トークンネットワーク、またはトークンメタデータを検索するmm token ...market-data.md
株式、ETF、CEF などのトークン化された実世界資産を一覧表示するmm token rwasmarket-data.md
注目の AI 市場ハイライトを取得するmm pulsemarket-data.md
1 つの資産について AI 生成の要約を取得するmm pulse assetmarket-data.md
AI 生成の市場全体の概要を取得するmm pulse marketmarket-data.md
無期限市場を一覧表示するmm perps marketsperps.md
perps アカウントの残高を確認するmm perps balanceperps.md
保有中の無期限ポジションを一覧表示するmm perps positionsperps.md
アカウントの資金調達支払いを一覧表示するmm perps fundingperps.md
市場の資金調達率の履歴を表示するmm perps funding-ratesperps.md
無期限注文の見積もりを取得するmm perps quoteperps.md
未約定の無期限注文を一覧表示するmm perps ordersperps.md
無期限ポジションを開くmm perps openperps.md
無期限ポジションを決済するmm perps closeperps.md
レバレッジ、テイクプロフィット、またはストップロスを変更するmm perps modifyperps.md
未約定の perps 注文をキャンセルするmm perps cancelperps.md
perps の取引場所に USDC を入金するmm perps depositperps.md
perps の取引場所から USDC を出金するmm perps withdrawperps.md
現物口座と perp 口座の間で USDC を送金するmm perps transferperps.md
無期限先物の取引場所を一覧表示するmm perps list-venuesperps.md
取引場所で利用可能な DEX を一覧表示するmm perps dexsperps.md
ウォレットのボールト持分を一覧表示するmm perps vault listperps.md
Hyperliquid ボールトの詳細を表示するmm perps vault infoperps.md
Hyperliquid ボールトに USDC を入金するmm perps vault depositperps.md
Hyperliquid ボールトから USDC を出金するmm perps vault withdrawperps.md
Hyperliquid アカウントモードを表示するmm perps account mode getperps.md
Hyperliquid アカウントモードを切り替えるmm perps account mode setperps.md
Predict の取引モードを設定するmm predict modepredict.md
Predict の初回セットアップを行うmm predict setuppredict.md
Predict の認証情報を作成または更新するmm predict authpredict.md
Predict の承認を修復するmm predict approvepredict.md
Predict のバックエンド状態とアカウント設定を確認するmm predict statuspredict.md
Polymarket が IP アドレスで地域制限されているか確認するmm predict geoblockpredict.md
予測市場を一覧表示するmm predict markets listpredict.md
予測市場を検索するmm predict markets searchpredict.md
予測市場を調べるmm predict markets getpredict.md
Polymarket のイベントを一覧表示するmm predict events listpredict.md
Polymarket のイベントを調べるmm predict events getpredict.md
Polymarket のイベントシリーズを一覧表示するmm predict series listpredict.md
Polymarket のイベントシリーズを調べるmm predict series getpredict.md
Polymarket のタグを一覧表示するmm predict tags listpredict.md
Polymarket のタグを調べるmm predict tags getpredict.md
予測注文のコストを事前確認するmm predict quotepredict.md
予測市場の注文を出すmm predict placepredict.md
予測注文をキャンセルするmm predict cancelpredict.md
予測市場のポジションを確認するmm predict positionspredict.md
未約定の予測注文を確認するmm predict orderspredict.md
Predict のポートフォリオ全体のスナップショットを表示するmm predict portfoliopredict.md
償還可能な当選ポジションを一覧表示するmm predict redeem listpredict.md
当選ポジションを償還するmm predict redeempredict.md
Predict 入金ウォレットの残高を確認するmm predict balancepredict.md
Predict 入金ウォレットに資金を入れるmm predict depositpredict.md
Predict 入金ウォレットから pUSD を出金するmm predict withdrawpredict.md
予測注文板を取得するmm predict bookpredict.md
Predict ジョブを監視するmm predict watchpredict.md
Predict の取引履歴または償還履歴を一覧表示するmm predict historypredict.md
特定の市場の Predict 履歴を調べるmm predict history getpredict.md
ハッシュでトランザクションを検索するmm txtx-history.md
アクティブなウォレットの最近のトランザクションを一覧表示するmm tx historytx-history.md
スワップまたはブリッジの見積もりを取得するmm swap quoteswap.md
トークンのスワップまたはブリッジを実行するmm swap executeswap.md
スワップまたはブリッジの状態を確認するmm swap statusswap.md
別のチェーンにトークンをブリッジするmm swap executeswap.md
HTTP 402/x402 でペイウォールされたリクエストに支払うpython3 scripts/x402_pay.pyx402.md
x402 で保護された MCP ツール呼び出しに支払うpython3 scripts/x402_pay.pyx402.md
イールドボールトと APY を一覧表示するmm earn marketsearn.md
イールドボールトのポジションを確認するmm earn positionsearn.md
イールドボールトにトークンを預け入れるmm earn supplyearn.md
イールドボールトからトークンを引き出すmm earn withdrawearn.md

ワークフロー

CLI の動作については references/ に記載されています。繰り返し使えるパターンについては workflows/ に記載されています。ユーザーのリクエストが単一のコマンドではなくパターンの場合は、ワークフローファイルを読み込んでください。

パターンワークフロー
初回セットアップとオンボーディングonboarding.md
ログインの流れlogin.md
トラブルシューティングの判断ツリーtroubleshooting.md
スワップの見積もり・確認・実行の流れswap.md
ブリッジの見積もり・確認・実行の流れbridge.md
パーペチュアルポジションを開く流れperps-open-position.md
パーペチュアルポジションを閉じる流れperps-close-position.md
パーペチュアルポジションを変更する流れperps-modify-position.md
Predict の初回セットアップと認証情報predict-setup.md
Predict ウォレットへの pUSD の入金または出金predict-funding.md
予測市場の検索と閲覧predict-markets.md
予測注文の見積もりと発注predict-place-order.md
Predict の注文とポジションの表示またはキャンセルpredict-manage-orders.md
Predict のポートフォリオの表示と賞金の引き換えpredict-portfolio.md
Predict の取引履歴と引き換え履歴の表示predict-history.md
トークンの検索、価格、マーケットデータmarket-data.md
利回りを得るためのトークンの預け入れearn-supply.md
Earn ボールトからのトークンの引き出しearn-withdraw.md
HTTP 402(x402)で保護されたリクエストへの支払いx402-pay.md
x402 で保護された MCP ツール呼び出しへの支払いx402-mcp.md

グローバルフラグ

すべての mm コマンドで、次のフラグを使用できます。

フラグ短縮形説明
--format-f出力形式:text、json、または toon。TTY では text、パイプ接続時は json がデフォルトです
--json--format=json の省略形
--toon--format=toon の省略形
--verbose-vstderr にデバッグログを表示します。トラブルシューティングに使用してください

ユーザーが別の形式を明示的に要求しない限り、コマンド出力には常に --toon を使用してください。

mm plugins コマンドは例外です。oclif に由来し、これらのグローバルフラグを受け付けないため、mm plugins --toon は Nonexistent flag: --toon で失敗します。代わりに --json またはプレーンテキストを使用してください。plugins.md を参照してください。

事前確認

セッションで最初の CLI 操作を行う前に、以下の確認を順番に実行してください。

1. バージョンの互換性

このスキルは、frontmatter の cliVersion で指定されている @metamask/agent-wallet v7.3.0 用に作成されています。CLI を実行するには Node.js 22.18 以降が必要です。これより古いランタイムでは、CLI の読み込み前にすべてのコマンドが UNSUPPORTED_NODE を返して終了コード 1 で終了します。インストール済みのバージョンを確認します。

mm --version

インストール済みのバージョンは、@metamask/agent-wallet/ の後ろにある値です。例:@metamask/agent-wallet/7.3.0 darwin-arm64 node-v22.18.0。その major.minor を、固定されている cliVersion と比較します。必要に応じて、公開されている最新バージョンも確認します(ベストエフォートで行い、ネットワークエラーの場合は何も表示せずにスキップします)。

npm view @metamask/agent-wallet version

インストール済みの major.minor が固定されている cliVersion と異なる場合、またはインストール済みのバージョンが最新リリースより古い場合は、ユーザーに一度だけ警告して続行します。

バージョンの不一致:インストール済みの CLI は <installed>、このスキルの対象は <cliVersion>、最新リリースは <latest> です。バージョンが揃うまで、このスキルに記載されているコマンド構文が不正確な場合があります。npm install -g @metamask/agent-wallet@latest で CLI を更新した後、プラグインマネージャーや skills CLI など、スキルのインストールに使ったツールで MetaMask/agent-skills のスキルを更新してください。

この確認はセッションごとに一度実行します。この確認を理由に操作をブロックしないでください。

2. 準備状況の確認 — 認証と初期化

mm doctor は準備状況を確認する唯一のコマンドです。セッションで最初の CLI 操作を行う前に実行します。

mm doctor

このコマンドは、authenticated の真偽値、initialized の真偽値、および hints のリストを表示します。mm doctor が authenticated: true と initialized: true の両方を報告するまで、ほかのコマンドは実行しないでください。認証と初期化は独立した確認事項です。プロジェクトでウォレットモードが未選択でもセッションが認証済みの場合があり、その場合、ウォレットを必要とするコマンドは実行前に NOT_INITIALIZED(「Project not initialized.」)で中断され、次のヒントが表示されます:mm init を実行してウォレットモードと取引モードを設定してください。

プロジェクトは、ウォレットモードが設定されている場合にのみ初期化済みとみなされます。また、server-wallet の場合は取引モードも設定されている必要があります。byok で必要なのはウォレットモードのみです。確認に mm init show を使わないでください。このコマンドは初期化済みのプロジェクトでのみ使用でき、未初期化のプロジェクトでは状態を報告せずに NOT_INITIALIZED を返します。

問題を解決したら、mm doctor を再実行し、ほかの作業を始める前に問題がないことを確認してください。

  • authenticated: false → workflows/login.md に従ってください。初回設定の場合は workflows/onboarding.md に従い、mm login を実行します。
  • authenticated: true かつ initialized: false → workflows/onboarding.md に従って mm init を実行し、ウォレットモードを選択してください。server-wallet の場合は、取引モードも選択します。

安全ルール

これらのルールは、参照資料やワークフローの種類にかかわらず、すべての操作に適用されます。

入力の検証

コマンドを構築する前に、ユーザーが指定した値をすべて検証してください。

フラグ検証ルール
--to、--address、--vault^0x[0-9a-fA-F]{40}$ に一致する必要があります
--amount0.5 や 100 のような、人間が読みやすい小数である必要があります。^\d+\.?\d*$ に一致する必要があります。スペース、セミコロン、パイプ、バッククォート、またはシェルのメタ文字は拒否してください
--chain-id正の整数(^\d+$)である必要があります
send-transaction の --payload有効な JSON である必要があります。JSON 構造の外側にエスケープされていないシェルのメタ文字があってはなりません
decode の --payload0x で始まる有効な 16 進数の calldata であり、^0x[0-9a-fA-F]+$ に一致する必要があります
--token有効な 16 進数のアドレス、または既知のシンボルである必要があります
--leverage正の整数(^\d+$)である必要があります
--size0.01 や 1 のような、人間が読みやすい正の小数である必要があります。科学的記数法およびホストのロケールに基づく桁区切りや小数表記は受け付けられ、CLI によって正規化されます。シェルのメタ文字は拒否してください。不正な値は INVALID_AMOUNT を返します
--venuehyperliquid である必要があります
perps の --sidelong または short である必要があります
--tifgtc、ioc、または alo である必要があります
perps account の --modestandard または unified である必要があります
--order-id正の整数(^\d+$)である必要があります
--token-id空でない outcome token ID 文字列である必要があります
--price、--limit-price範囲 (0, 1] 内の正の数値である必要があります
--order-typeGTC、GTD、FOK、FAK のいずれかである必要があります
predict の --sidebuy または sell である必要があります
--slippage0 から 100 までの数値である必要があります
--tick-size0.1、0.01、0.005、0.0025、0.001、0.0001 のいずれかである必要があります
--from-chain-id、--to-chain-id正の整数の EVM チェーン ID である必要があります
--to-address^0x[0-9a-fA-F]{40}$ に一致する必要があります。クロスチェーンスワップ(--to-chain-id が --from-chain-id と異なる場合)でのみ有効です。同一チェーンのスワップでは拒否されます
--refuel値を取らないブール値フラグです。クロスチェーンスワップ(--to-chain-id が --from-chain-id と異なる場合)でのみ意味があります。同一チェーンのスワップには影響しません
--strategy次の値から選ぶ、カンマ区切りのリストである必要があります:cost、speed、impact、output
--wallet-timeout1 から 600 までの正の整数である必要があります
--password空でない文字列である必要があります。この値をログに記録、表示、または保存してはなりません。
mm plugins install のプラグイン仕様npm パッケージ名である必要があります。name@version または name@tag を指定することもできます。スペースとシェルのメタ文字は拒否してください。file:、git、および owner/repo のみの指定は未検証のソースであり、ユーザーが開発モードを有効にしていない限り拒否されます
x402 の assetmm chains list が返すネットワーク上の有効なコントラクトアドレスである必要があります。通貨はサーバーが提示し、ユーザーが確認したものを使用します。スクリプトは通貨の許可リストを保持しません。
x402 の payTo/authorization の to^0x[0-9a-fA-F]{40}$ に一致し、402 の受取人と一致する必要があります
x402 の value提示された金額と正確に一致する原子単位の整数である必要があります。exact スキームは上限ではありません
x402 のリソース URLhttps:// である必要があります。予期しない別ホストへのリダイレクト経由で到達した 402 は拒否してください
x402 MCP チャレンジx402 v2 のみです。署名済みの payment オブジェクトは、そのまま再試行するツール呼び出しの _meta["x402/payment"] に含めます。isError の結果が再度返された場合は新しいチャレンジです。ユーザーから新たな承認を得ずに再署名してはなりません

検証されていないユーザー入力をコマンドに渡さないでください。

確認要件
操作の種類確認ルール
送金実行前に、受取人、金額、トークン、チェーンを必ず確認します
生トランザクション実行前に、トランザクションのペイロード、チェーン、受取人、値、calldata の概要を必ず確認します
メッセージ署名署名する前に、正確なメッセージとチェーンを必ず表示します
Typed Data 署名署名する前に、ドメイン、プライマリータイプ、チェーン、検証コントラクト、メッセージの概要を必ず表示します
スワップ/ブリッジ実行前に、送信元/送信先のトークン、金額、送信元/送信先のチェーン、スリッページ、見積もり出力額、--to-address が設定されている場合は受取人アドレス、--refuel が設定されている場合は送信先のガス補充を必ず確認します
x402 支払い署名の承認を行う前に、資産、デシマルを考慮した正確な金額、ネットワーク、payTo、リソース URL または MCP ツールを必ず確認します。HTTP では pay --confirm、MCP では mcp-sign --confirm を使用します。リソースごとの支払い試行は 1 回のみとし、支払いを自動で再試行してはいけません。自律的な自動支払いはサポートされていません。
Perps 取引実行前に、シンボル、売買方向、サイズ、レバレッジ、取引所、注文タイプ、指定されている場合は指値価格を必ず確認します。また、--tif が設定されている場合は有効期間、--reduce-only が設定されている場合は注文が reduce-only であること、--vault が設定されている場合は Vault アドレスも確認します
Perps の入金/出金実行前に、金額、資産、取引所、ネットワーク、該当する場合は送金先を必ず確認します
Perps Vault の入金/出金実行前に、mm perps vault info で確認した Vault アドレスと名前、金額、取引所、ネットワークを必ず確認します。入金の場合は、出金可能になるまで一定期間、資産がロックされることを伝えます
Perps アカウントモードの設定実行前に、mm perps account mode get で取得した現在のモードと対象モードを必ず表示し、変更が Hyperliquid アカウント全体に適用されることを伝えます
Predict 取引実行前に、トークン ID、売買方向、サイズ、価格、注文タイプ、マーケット、結果を必ず確認します
Predict 入金実行前に、金額を必ず確認します
Predict 出金実行前に、金額と受取人を必ず確認します。--to のデフォルトは所有者の EOA です
Predict の償還実行前に、条件 ID または --all のいずれかの対象を必ず確認します。--all はすべての勝ちポジションを償還します
Earn の供給実行前に、トークン、金額、チェーン、Vault/プロトコル、APY を必ず確認します。クロスチェーンで供給する場合は、送信元チェーンと送信元トークンも確認します
Earn の出金実行前に、トークン、金額または全残高、チェーン、Vault/プロトコルを必ず確認します
プラグインのインストール、更新、リンクパッケージ名、バージョン、宣言されたコマンド ID、dataAccess、要求されるすべての機能を必ず表示し、wallet-submit と network-manage が機密性の高い機能であることを明示します。インストール前に明示的な承認を得てください。ユーザーが確認していないマニフェストに対して --accept-permissions を渡してはいけません
プラグインのアンインストールまたはリセット影響を受けるパッケージを必ず確認します。mm plugins reset は、ユーザーがインストールまたはリンクしたすべてのプラグインを削除します
プラグインベータまたは未検証のインストールの有効化mm config set experimentalPlugins true または mm config set experimentalAllowUnverifiedInstalls true を実行する前に、必ず確認します
プラグインが追加するコマンドCLI 権限で実行されるサードパーティーコードとして扱います。同等のホスト操作と同じ確認ルールを適用します
すべてキャンセルする操作実行前に、適用範囲と正確な破壊的影響を必ず確認します
ウォレットポリシーの変更ポリシーを拡大する変更には MFA 承認が必要です。拡大しない変更は即時に適用されます
取引モードの変更guard から beast への変更には MFA 承認が必要です。beast から guard への厳格化は即時に適用されます
認証/ウォレット管理そのまま実行できます。例外として reset にはユーザーの明示的な確認が必要です
読み取り専用のクエリそのまま実行できます
認証情報の安全性
  • 秘密鍵、ニーモニック、パスワード、認証トークンを保存、記録、表示しないでください。
  • --password や --mnemonic をインラインフラグとして渡さないでください。シェル履歴にシークレットが露出しないよう、代わりに MM_PASSWORD と MM_MNEMONIC 環境変数を設定するよう常にユーザーに案内してください。
不審なコンテンツに関する警告

署名ペイロードまたはトランザクションに以下が含まれている場合は、続行する前にユーザーに警告してください。

  • ユーザーが指定していない URL またはコントラクトアドレス
  • permit、approve、setApprovalForAll、または許容量に関するフィールド
  • 異常に大きな値、または見慣れないコントラクトとのやり取り

生の calldata が見慣れない場合、または自分で構築したものではない場合は、まず mm decode --payload <0x-calldata> を実行し、署名または送信する前に、デコードされた意図をユーザーに確認してください。decode.md を参照してください。

非同期モデル

サーバーウォレットモードと BYOK モードのどちらでも、署名コマンドとトランザクションコマンドはジョブのポーリングループを経由し、pollingId を返します。次のように一貫して処理してください。

  1. 完了するまでブロックする --wait を優先してください。 Swap コマンド(swap quote、swap execute、swap status)は --wait をサポートしていません。代わりに swap status --quote-id を使って進行状況をポーリングしてください。
  2. --wait を使わない場合は、pollingId と追跡方法をユーザーに伝えてください。
    • mm wallet requests list
    • mm wallet requests watch <polling-id>
  3. BYOK モードでは、ローカルキーで署名がローカルに行われますが、操作によって保留中のジョブが生成され、pollingId が返されます。ニーモニックがパスワードで暗号化されている場合、操作でロックを解除するために、ユーザーは MM_PASSWORD 環境変数を設定する必要があります。

Transfers、swaps、perps、predict orders、predict withdraws は、Transfer 0.5 ETH to 0x... や Withdraw 10 pUSD to 0x... のような、人が読める intent の要約をウォレットリクエストに付加します。wallet requests list または wallet requests watch から保留中のリクエストを提示する際は、ユーザーが承認内容を確認できるよう、intent の要約を表示してください。

MFA 承認による一時停止

追加経路での MFA 承認が必要なウォレットジョブは、AWAITING_MFA 状態で一時停止します。コマンドの標準出力をスキャンし、リテラルトークン AWAITING_MFA を検出してください。 古い CLI では、自由形式のテキストだけから MFA を推測しないでください。CLI v6.1.5 以降では、すべての出力モードでトークンが一貫して出力されます。

出力モード検出方法
--json/パイプされた標準出力"_notice":{"kind":"AWAITING_MFA",...} を含む NDJSON 行
通常の TTY または Ink REPL[AWAITING_MFA] を含む標準出力行。例:⚠ [AWAITING_MFA] Approve in MetaMask mobile.

AWAITING_MFA が表示された場合:

  1. コマンドはユーザーの承認を待機中であり、失敗、ハング、完了ではないものとして扱ってください。
  2. 通知に含まれるユーザー向けの指示を表示してください。
  3. 通知またはコマンド出力に pollingId がある場合は、mm wallet requests watch <polling-id> で完了を追跡できることをユーザーに伝えてください。
  4. ジョブがまだ保留中の間は、同じウォレット操作を再試行しないでください。
  5. mm swap execute、mm earn supply、または mm earn withdraw では、ハッシュがまだない状態で MFA により一時停止すると、承認待ちと mm wallet requests watch <polling-id> を示すメッセージとともに EXECUTE_FAILED が返される場合があります。これは MFA による一時停止であり、ハッシュの欠落ではありません。

承認画面と復旧手順については、troubleshooting.md を参照してください。

応答スタイル

  • 内部でルーティングし、どのリファレンスを読み込んでいるかは知らせないでください。
  • コマンドのエラーはそのまま表示してください。隠したり、言い換えたりしないでください。
  • コマンドが失敗した場合は、mm <command> --help を確認し、その内容に沿って案内してください。

コメント