MetaMask Agent Walletは、mm swap コマンドセットを通じて、同一チェーン上でのトークンスワップと、チェーン間のブリッジを実行します。トレーダーは自然な言葉でエージェントにトークンの取引や移動を依頼し、エージェントはその要求を、見積もりの取得、ルートの比較、実行を行うコマンドへと振り分けます。Agent Walletでの無期限先物取引では、MetaMaskが確認するEVMトランザクションは担保の入金のみですが、スワップやブリッジはそれ自体がトランザクションです。そのため、トレーダーが事前に指定すべき内容や、MetaMaskのウォレットレベルの制御が実際に認識する内容が異なります。
このハンドオフこそが、エージェント主導の取引とインターフェースを操作する取引との違いです。一文の中に、スリッページ許容範囲、ルーティング、送信先チェーンに関する多くの暗黙の前提が含まれることがあります。この記事では、明示しておく価値のある詳細を解説します。
これはスワップの入門書ではなく、取引の仕組みに関するガイドです。スリッページの仕組みや許容範囲の設定方法については、スリッページとはをご覧ください。成行注文と指値注文の比較、およびスリッページ許容範囲がAMMにおける指値注文に最も近い概念である理由については、暗号資産の注文タイプをご覧ください。DEX、アグリゲーター、ウォレットネイティブスワップの違いについては、2026年のベスト暗号資産スワッププラットフォームをご覧ください。ウォレットカテゴリ自体については、エージェンティックウォレットとはおよびエージェンティックウォレットの仕組みをご覧ください。担保入金のサイジングや、異なるアセットクラスにおいてMetaMaskが実際にどのステップを確認するかについては、MetaMask Agent Walletで無期限先物を取引する方法をご覧ください。
スワップの機能範囲を詳しく見る
以下は、スワップまたはブリッジのワークフローで使用するコマンドです。機能範囲を把握しておくと、意図した通りに機能するリクエストを表現しやすくなります。
エージェントへの依頼内容 | 実行されるコマンド | 動作内容 |
「0.1 ETHをUSDCにスワップして」 | mm swap quote
| 送信せずに同一チェーンのスワップ価格を取得する |
「BaseからArbitrumへ10 USDCをブリッジして」 | mm swap quote --to-chain-id
| 送信せずにクロスチェーンルートの価格を取得する |
「コスト順にすべてのルートを表示して」 | mm swap quote --all-quotes
| ランク付けされたすべての候補ルートを返す |
「その見積もりで進めて」 | mm swap execute --quote-id
| 事前に取得した見積もりの取引を送信する |
「スワップして、確認は不要」 | mm swap quote --yes
| 確認をスキップして見積もりと実行を即座に行う |
「そのスワップの状況は?」 | mm swap status --quote-id
| 実行状況を確認する |
出典:MetaMask Agent Walletコマンドリファレンス
この基本的な理解を踏まえ、MetaMask Agent Walletを使ってトークン(トークン化株式やその他の資産、いわゆるリアルワールドアセット(RWA)を含む)をスワップおよびブリッジするための9つのヒントをご紹介します。
1. まず見積もりを取得し、「利用不可」を通常の回答として受け入れる
mm swap quoteは、送信せずに取引の価格を取得します。mm swap executeも同じスワップパラメータを直接受け取り、見積もりと実行を1回の呼び出しで行えますが、見積もりを別途先に実行する方がより安全なデフォルトです。価格、ルート、手数料を署名前に確認できる唯一の方法だからです。基盤となるブリッジやDEXアグリゲーターがルートを見つけられない場合、CLIはハードエラーをスローせず、reason(AMOUNT_TOO_LOW、SLIPPAGE_TOO_HIGH、NO_QUOTESなど)、message、hintを含むソフトなkind: "unavailable"結果を返します。
この違いは、プロンプトに基づいて動作するエージェントにとって重要です。利用不可の見積もりは、そのまま報告すべき失敗ではなく、対処すべき回答です。エージェントはスリッページを広げたり、金額を調整したり、別のトークンを試したりできます。唯一の例外は一時的なQUOTE_RETRYシグナルで、これはそのままリトライする価値のある本物のハードエラーです。いずれの場合も、エージェントは見積もりが利用不可または期限切れになった後にexecuteを呼び出すためにquoteIdを偽造または再利用してはなりません。executeステップはクリーンに失敗しますが、推測に基づいてトランザクションが送信されることはありません。
2. デフォルトを信頼せず、スリッページ許容範囲を設定する
mm swap quoteは--slippageを0から100のパーセンテージとして受け付け、省略時のデフォルトは0.5%です。このデフォルトは合理的な中間値ですが、トークンの流動性に関係なくすべての取引に適用されるデフォルト値に過ぎません。
スリッページとはで解説されているように、厳しい許容範囲は不利な約定から保護しますが、ボラティリティが高い状況では見積もりが完全に失敗することが多くなります。一方、緩い許容範囲はより確実に約定しますが、価格は悪化します。ETHからUSDCのような流動性の高いペアを取引するプロンプトは、0.5%のデフォルトに合理的に依存できます。しかし、流動性の低いトークンを取引するプロンプトは、そのトークンを考慮して選ばれたわけではない数値を引き継ぐのではなく、どちらの方向であれ許容範囲を明示的に指定する方が適切です。
3. クロスチェーンブリッジには送信先チェーンが必要で、refuelには特定の失敗パターンがある
--to-chain-idを追加することで、同一チェーンのスワップがクロスチェーンブリッジに変わります。省略した場合、送信先はソースチェーンにデフォルト設定されます。--to-addressを使うと、出力を署名者自身のウォレット以外の場所に送れますが、クロスチェーンルートのみで有効です。ソースチェーンと送信先チェーンが同じ場合は効果がありません。
--refuelは、クロスチェーンの見積もりに少量の送信先チェーンのネイティブガスをバンドルします。これは、トレーダーが送信先チェーンにまだガストークンを持っていない場合に便利です。オプトイン式でクロスチェーン専用であり、特定の失敗パターンがあります。送信先トークンがすでに送信先チェーンのネイティブガスアセットである場合(例:ETHをArbitrum ETHにブリッジする場合)に使用すると、NO_QUOTESが返されます。「BaseからArbitrumへUSDCをブリッジして、そこで使えるETHも確保して」というプロンプトはまさにこのフラグを表しています。チェーンのネイティブトークンに直接ブリッジするプロンプトにはこのフラグは不要で、追加すると失敗します。
4. ルートを意図的に比較してから、特定のルートを実行する
--all-quotesは、推奨ルートにマークを付けた上で、--strategy(カンマ区切りのcost、speed、impact、output。デフォルトはcost,speed)でランク付けされたすべての候補ルートを返します。ルートを比較して特定の--quote-idを後で実行するのは2ステップのプロセスであり、意図的なものです。--all-quotesは--yesと組み合わせることができないため、すべてのルートを確認しつつ確認をスキップするよう求めるプロンプトは、CLIが1回の呼び出しでは実行できない2つのことを求めていることになります。
見積もりのアーティファクトは24時間後に自動的に削除されるため、今日比較する価値のあるルートが来週も有効に実行できるとは限りません。
5. ガスレス実行とバッチ承認はリクエストではなく自動的に行われる
ウォレットのネイティブ残高がガスをカバーできない場合、mm swap executeはEIP-7702を使用したガスレスリレーを通じて対象となるガス込みの見積もりを自動的にルーティングし、リレー手数料をスワップされたトークン自体から差し引きます。このためのフラグはありません。これはCLIが対象となる見積もりに対して独自に適用するフォールバックであり、すべての低ガススワップに対する保証ではありません。
別途、対象チェーンとアカウントでは、CLIはERC-7821バッチ実行を使用してERC-20承認と取引を1つのアトミック呼び出しに結合します。これが発生すると、レスポンスにroute: "erc7821"と報告されます。バッチ処理が利用できない場合、CLIは順次送信にフォールバックします。どちらの動作もプロンプトでリクエストする必要はありませんが、実際に何が実行されたかを確認する際には知っておく価値があります。バッチ処理されたガスレススワップと2ステップのガス支払いスワップは、どちらも同じリクエストを満たすことができ、どちらが発生したかはレスポンスフィールドで確認できます。
注意:ガスレス実行では手数料が高くなる場合があります。
6. Guard Modeが確認するのは別のステップではなくスワップ自体であることを理解する
これはAgent Walletでの無期限先物取引とは逆のパターンです。無期限先物取引では、Hyperliquidのポジションのオープンまたはクローズはオフチェーンで行われ、MetaMaskが評価するEVMトランザクションは担保の入金のみです。スワップやブリッジにはそのような分割はありません。mm swap executeは取引を直接EVMトランザクションとして送信するため、Guard Modeのローリング24時間アウトフロー制限が計測するトランザクションとなり、MetaMaskの脅威スキャンおよびネットワーク、アドレス、トークンのアローリストが直接評価する対象となります。
$2,000のスワップは、同一チェーンの取引であれクロスチェーンブリッジであれ、確認された瞬間にローリング制限に対して$2,000のアウトフローとしてカウントされます。制限を超えた場合、または脅威スキャンによってフラグが立てられた場合、ジョブは2要素認証の承認待ちでAWAITING_MFA状態に一時停止します。QRサインインの場合はMetaMask Mobileのプッシュ通知、ブラウザサインインの場合はメールリンクが送信され、誰かが応答するまでエージェントは続行できません。これはサーバーウォレットモードに適用されます。取引モードは自分のウォレットを持ち込む設定には適用されません。実際的な意味:スワッププロンプトでのサイジングの規律は、無期限先物の入金のように、ウォレットがすでに適用していることとは別の習慣ではありません。スワップ金額自体がGuard Modeが監視している数値です。
7. タイムアウト後に実行を盲目的に再実行しない
スワップは、トランザクションハッシュが存在する前に2要素認証のために一時停止し、ポーリングIDが付いたAWAITING_MFA状態に入ることがあります。ガスレスリレーレッグまたは順次サーバーウォレットレッグでMFAポーリングがタイムアウトした場合、RELAY_TIMEOUTまたはJOB_TIMEOUTとして表面化します。どちらも同じ回復ヒントを持っています。mm wallet requests watch を実行してハッシュを取得し、元のジョブがまだ完了する可能性がある間はexecuteを再度呼び出さないでください。
その間に実行を再実行すると、問題を修正するのではなく、2回目の重複した送信が発生するリスクがあります。保留中のリクエストを承認してジョブを監視することが正しい回復パスです。
8. スワップにはドライランがない。見積もりの比較が最も近い代替手段
mm perps openは--dry-runを受け付けて署名なしで注文を検証できますが、mm swap executeには同等のプレビューモードがありません。スワップをリハーサルする最も近い方法は、見積もりをリクエストすることです。また、通常でない取引については、1つに確定する前に--all-quotesを取得して候補ルートの全セットを確認することです。どちらも厳密な意味でのドライランの代替にはなりません。見積もりは古くなる可能性があり、見積もりと実行の間に市場状況が変わる可能性があります。しかし、何かに署名する前に誤って指定されたリクエストを検出するために利用できるツールです。
9. 見積もりを取得する前にチェーンとガスレスのサポートを確認する
mm chains listはチェーンごとにfeaturesフィールドを返します。これにはswapがサポートされているかどうか、およびガスレスリレーが利用可能かどうかを示すrelaySupportedフラグが含まれます。見積もりの前にこれを確認することで、無駄な往復を省けます。スワップサポートのないチェーンへの見積もりリクエストや、リレーがサポートされていないチェーンでガスレス実行が機能するという前提は、事前に除外できたはずのことが事後にエラーとして表面化します。
これは、認識しておく価値のある2つのスワップ固有のエラーコードと組み合わせて使用します。GASLESS_UNSUPPORTEDはそのチェーンでリレーが利用できないことを意味し、INSUFFICIENT_GASはウォレットのネイティブ残高がガスをカバーできず、ガスレスフォールバックも適用されなかったことを意味します。どちらもmm chains listが事前に回答するチェーンサポートの問いに起因しています。
Agent Walletがスワップに対して行わないこと
境界を明確にすることは、より広い範囲を示唆するよりも有用です。
定期的またはスケジュールされたスワップは組み込まれていません。ネイティブのドルコスト平均法機能、ポートフォリオ全体の自動リバランス、中央集権型取引所が提供するような常設の指値注文帳もありません。各mm swap呼び出しは単一の見積もりと実行のサイクルです。定期的な処理は、そのサイクルをスケジュールに従って呼び出すスクリプトまたはエージェントループであり、ウォレット機能ではありません。このような常設ロジックを求めるトレーダーは、プラグインとして構築できます。これはベータ機能であり、インストールされたnpmパッケージが同意ゲート機能の下でCLIに新しいコマンドを追加できるようにするものですが、組み込み機能ではなく自分で構築するパスです。
見積もりステップが報告する内容を超えたクロスDEXのベスト実行保証はありません。--all-quotesと--strategyはランク付けされた候補を表示しますが、ランキングは見積もり時点で利用可能なルートを反映したものであり、その直後により良い価格が現れないという保証ではありません。
スリッページ保護は許容可能な価格変動の上限であり、基礎となる取引が悪いアイデアであることへの保護ではありません。スリッページ許容範囲をクリアしたスワップは、後から振り返ればトレーダーが選ばなかったであろう価格で実行される可能性があります。許容範囲は、約定価格が見積もりからどれだけ乖離できるかを制限するだけです。
mm chains listは、特定のCLIバージョンに対応する信頼性の高い最新のチェーン一覧を返します。また、各チェーンでswapがサポートされているかどうかを示すfeaturesフィールドと、ガスレス対象資格を示すrelaySupportedフラグも含まれています。
いいえ、その違いは理解しておく価値があります。Perpsにおいては、MetaMaskが確認するEVMトランザクションはHyperliquidへの入金のみです。ポジションの開設や決済自体は対象外となります。一方、スワップやブリッジにはそのような分割はなく、mm swap executeそのものがEVMトランザクションとなるため、出金上限、脅威スキャン、およびallowlistsに対して直接チェックされます。
これは、ブリッジまたはDEXが何らかの理由でルートを生成できない場合のCLIの通常のレスポンスです。レスポンスにはkind: "unavailable"、AMOUNT_TOO_LOWやSLIPPAGE_TOO_HIGHなどのreason、および調整すべき内容のhintが含まれます。真のハードエラーは、一時的なQUOTE_RETRYシグナルのみです。
いいえ。これはオプトイン制であり、クロスチェーンのみに対応しています。また、送金先トークンがすでに送金先チェーンのネイティブガスアセットである場合、補充するものが存在しないため、NO_QUOTESエラーで失敗します。
直接的な方法はありません。mm swap execute にはドライランフラグがなく、事前のquoteなしにswapパラメータを直接受け取って実行することさえあります。実行前に確認できる最も近い方法は、まずquoteをリクエストし、通常とは異なるものについては --all-quotes でルートを比較することです。
MFA待機状態(AWAITING_MFA)に入り、ポーリングIDが付与されます。ガスレスリレーまたはシーケンシャルサーバーウォレットの処理でタイムアウトが発生した場合、RELAY_TIMEOUTまたはJOB_TIMEOUTとして表示されます。いずれの場合も、保留中のリクエストを承認してから、mm wallet requests watch <polling-id>を実行してトランザクションハッシュを取得してください。元のジョブがまだ完了する可能性がある状態でexecuteを再実行すると、問題が解決されるのではなく、重複送信のリスクが生じます。
いいえ。ウォレットのネイティブ残高がガス代を賄えない場合、MM Swapの実行は自動的に、ガス代込みの対象クォートをガスレスリレー経由でルーティングし、スワップされたトークンから手数料を差し引きます。これはすべての低ガススワップで保証されるものではなく、クォートが条件を満たす場合にのみ適用されます。CLIが承認とトレードを1回の呼び出しにまとめてバッチ処理した場合、レスポンスにはroute: "erc7821"と報告されます。どちらの動作もフラグによる制御は行われていません。