AssetFare について
AssetFare は、エージェントや呼び出し元向けに、ノンカストディアルなクロスチェーン経路の見積もりと未署名のトランザクション計画を提供します。経路選択と、呼び出し元が管理する承認・署名に対応し、サービス側では署名も送信もしません。
主な機能
- 01指定金額での経路見積もり
- 02クロスチェーンブリッジとスワップ経路
- 03手数料と利用可能状況の表示
- 04呼び出し元承認による未署名計画
- 05見積もりと経路の検証
活用シーン
- 01指定した送金額で経路を比較
- 02ネイティブ USDC のクロスチェーン送金を計画
- 03手数料と必要な送金元残高を確認
- 04呼び出し元による署名前に見積もりを検証
MCP 対応
リモート MCP エンドポイントは、機能確認、経路選択、見積もり、呼び出し元承認後の準備、セッション管理を行う v2 ツールを提供します。秘密鍵を受け取らず、署名やトランザクション送信も行いません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.assetfare.dev/mcpclaude mcp add --transport http assetfare-assetfare https://api.assetfare.dev/mcp{"mcpServers":{"assetfare-assetfare":{"type":"http","url":"https://api.assetfare.dev/mcp"}}}Cursor で開く{"servers":{"assetfare-assetfare":{"type":"http","url":"https://api.assetfare.dev/mcp"}}}VS Code で開く{"mcpServers":{"assetfare-assetfare":{"type":"http","url":"https://api.assetfare.dev/mcp"}}}{"mcpServers":{"assetfare-assetfare":{"serverUrl":"https://api.assetfare.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
11このツールにパラメーターはありません。
詳細
AssetFare — AI エージェント向けの事前計算済みクロスチェーンルートインテリジェンス
AssetFare は、30 分ごとに複数の金額に対する候補曲線を調査することで、エージェントの時間とトークンを節約します。Solana を起点とする 6 つの Base/Arbitrum のパイロット経路では、これらの観測結果で候補を 3 つに絞り込みます。呼び出し元のリクエストでは、その後、実際に要求された金額で 3 つすべての見積もりを取得し、時間プロファイル内に収まる選択肢を最大 2 つ返します。Balanced のデフォルトは 60 秒、fast は 30 秒で、economy は明示的に選択する低速モードです。制限時間を超える候補は参照専用のままです。選択時には、有効な間はリクエスト時と同じ見積もりを再利用します。有効期限が切れた後は、同じ金額で選択済みの候補だけを更新し、ルートを黙って切り替えることはありません。選択そのものがトランザクションの承認権限を持つことはありません。承認と署名は呼び出し元が行います。サーバーが署名や送信を行うことはありません。
Core 2.17.0 の見積もりには、厳格な continuation_v3 も含まれます。MCP 1.21.6 は、正規の完全見積もりハッシュ、ルート概要ハッシュとフィンガープリントのクレーム、正確なパス/プロバイダー、呼び出し元のウォレットチェーンとイベント署名者の要件、基本単位の範囲、許可モード、TTL を検証します。すべての見積もりは引き続き unranked_candidate です。アダプターがこれを自動選択することはなく、caller_approved:true だけでは人間による承認の証明になりません。
ポータブルな見積もりハッシュの計算では、continuation_v3 を除外し、重複する基本単位の生の数値を direct_route_summary 内の正確な10進文字列に置き換えてから、AssetFare の typed-canonical-v1 バイト列をハッシュ化します。このエンコードでは JSON の型が保持され、有限数値には正確な IEEE-754 binary64 バイト列が使われ、UTF-8 のバイト長とバイト順でソートされたオブジェクトキーが用いられます。また、-0 と 0 を区別し、置換されない JavaScript の安全な整数範囲外の整数値はすべて拒否します。必須のリテラル quote_payload_sha256_spec は、continuation_v3 とフィンガープリントのクレームの両方に含まれ、数値文字列の衝突と、言語間の精度の曖昧さを防ぎます。
AssetFare は、エージェントネイティブでカストディアルではない、ネイティブ USDC ブリッジおよびクロスチェーンルートサービスです。Solana ネイティブ USDC → Base ネイティブ USDC が標準ルートです。エージェントは新しい見積もりを取得し、呼び出し元が明示的に承認した場合に限り、呼び出し元が検証して署名する、制約付きの未署名トランザクションプランを取得します。AssetFare は、厳選された公開ルート製品 65 種(コア 3 種、条件付き 50 種、戦略的/希少 12 種)を対象に、ブリッジおよびクロスチェーンスワップルートも提供します。AssetFare のサービス手数料は 1bp です。Circle/プロバイダー/ネットワークの手数料は別途かかります。見積もりにはトークン経路の合計コストとリアルタイムの利用可否が表示されます。サーバーが署名や送信を行うことはありません。Solana SOL → Base USDC と Optimism USDC → Base USDC もサポートされています。AssetFare が秘密鍵を受け取ったり、署名や送信を行ったりすることはありません。
製品への掲載条件とレビュー時期については、economic_guidance と完全版の調査カタログ https://assetfare.dev/route-economics.json をご覧ください。price_recommended_for_amount は参考情報です。これが false の場合、価格が重要であれば、すべての費用を含む最新の見積もりを比較してください。この設定によって確認フィールドが追加されたり、prepare/セッションの作成がブロックされたりすることはありません。API は共通の技術的な最低額として 1 USD を受け付けます。
エージェントウォレットへの資金補充には、失敗した x402 マイクロペイメントのたびに対応するのではなく、まとまった補充や大口送金に AssetFare をご利用ください。ルートごとの推奨開始額を使い、最新の見積もりを確認してください。サポートされているすべての送金元チェーンでウォレットが空の場合、AssetFare の用途には適しません。 信頼する前にご確認ください:公開ソース、 Ed25519署名済みマニフェスト、 公開鍵、 security.txt、および オンチェーン実行の証拠。Best-fromの呼び出しは 100%の保証ではありません。最新のAssetFareの見積もりをご確認ください。
すべてのv2見積もりには、意図に紐づいた順序付きプロバイダーパスであるdirect_route_summaryが含まれます。これには正規化されたchain:assetエンドポイント、10進文字列で表される正確な基本単位の金額上限、単一のAssetFare 1bp手数料ステップ、およびserver-signing/server-submission=falseが含まれます。direct_protocol_onlyは、すべてのステップで開示済みの直接プロトコルを使用することを意味します。現在のすべてのルートがこの分類を使用しています。external_intentは互換性のための列挙値としてのみ残されています。route_aggregator_used=falseはAssetFare独自のエンジンについて記述するものであり、すべてのプロバイダーが内部でアグリゲーションを行わないことを意味するものではありません。Circle/プロバイダーのコストは、引き続きcost_summary.provider_fee_componentsに含まれます。Contract 2.6.1では、既知のLayerZeroネイティブ手数料と上限付きのソースガス見積もりもseparately_paid_costsに公開され、expected_all_in_cost_usd_estimateが提供されます。また、呼び出し元が保持する必要のあるネイティブ残高も示されます。それでも価格を算出できないコストは、unpriced_costsに明示されます。
continuation_v3は、見積もり全体(continuationオブジェクト自体を除く)を、プロセス内で最大60秒保持されるCoreキャッシュに紐づけます。後続の正確なapproval_v3ではone_shotまたはsessionを選択できます。見積もりの最大入力/最小出力の上限をさらに厳しくすることのみ可能で、期限切れ、再起動、パス/プロバイダーの変更、ウォレット/署名者要件の変更、モードの競合、またはリプレイが発生すると、フェイルクローズします。複数ステップのルートはsession専用です。approval_v3を省略した場合は、明示的にlegacy_advisoryとなります。ブール型のゲートは引き続き必須ですが、人間による証明にはなりません。
独立エージェント検証ツール
依存関係のない assetfare-verify CLI は、AssetFare の pass、safe、スコア、または判定フィールドを受け入れるのではなく、証拠を検証します。このチェックアウトからライブ検証を行うには、明示的に次を実行します。
node scripts/assetfare-verify.mjs --live
assetfare-verify の bin エントリーを含むパッケージリリースは、npx --yes --package=assetfare-mcp assetfare-verify --live で呼び出せます。このコマンドが追加される前の古いパッケージバージョンを固定しないでください。
ライブモードでは、検証ツールに埋め込まれた公開 Ed25519 キーとキー ID を使用します。固定されたマニフェストと、そのハッシュに紐付けられた安全性バンドルのみを取得し、リダイレクト、想定外の MIME タイプ、非正規 JSON、不明または欠落しているスキーマキー、サイズ超過のレスポンス、期限切れのマニフェスト、主観的な安全性の主張を拒否します。次に、サポート対象のすべての EVM チェーンについて、独立して固定された公開 RPC プロバイダー 2 つから、毎回 eth_chainId と正確な eth_getCode のバイト列を取得します。生バイト列は相互に一致し、バンドルの SHA-256 および Ethereum Keccak-256 の証拠とも一致しなければなりません。これらは読み取り専用の呼び出しであり、このコマンドには署名やトランザクション送信の経路はありません。
決定論的な検証またはエアギャップ環境での検証には、3 つすべての信頼素材ファイルを明示的に渡します。
node scripts/assetfare-verify.mjs --offline \
--manifest ./fixtures/manifest.json \
--bundle ./fixtures/safety-bundle.json \
--pubkey ./fixtures/assetfare-manifest.pub
オフラインモードではネットワークリクエストは行われません。指定されたマニフェスト署名、署名済みバンドルのハッシュ、正確なスキーマと主張、リリース/ビルド/デプロイの来歴、7 つすべての EVM チェーン、および埋め込まれたすべての生ランタイムコードのハッシュを検証します。成功時のステータスは offline_evidence_verified であり、ライブ RPC のクォーラム結果ではありません。npm run verify-selftest は決定論的なローカルフィクスチャを作成し、不正な署名、不正なバンドルハッシュとスキーマ、リダイレクト、MIME の取り違え、チェーン/コードの不一致、不完全な RPC 証拠、禁止された主観的な主張をテストします。
AssetFare は、パイロット期間中、1 つの公開リリース名前空間を使用する分散型プロジェクトチームによって保守されています。役割、リリース管理、および現在の公開オーナーについては、GOVERNANCE.md と MAINTAINERS.md に記載されています。これは法人化または独立した第三者監査を主張するものではありません。
インターフェース:MCP + A2A + REST/OpenAPI。
このリポジトリには、オプションの MCP アダプターが含まれています。プライマリのリモートエンドポイントは、現在の v2 ツールを 11 個公開します。署名済みマニフェスト、機能、ルート選択、選択した候補の見積もり、AssetFare への直接見積もり、呼び出し元の承認に基づく単発の準備、およびセッションのライフサイクル操作 5 個です。バージョン指定のない従来のツール 13 個は、元の Solana SOL → Base/Arbitrum ETH ワークフロー向けに、別の /mcp/legacy 互換エンドポイントで引き続き利用できます。2 つのプロファイルがリモートエンドポイント上に同時に現れることはありません。
エージェントは、MCP をインストールまたは接続しなくても、現在の v2 ルートを評価できます。
- APIs.json:
https://assetfare.dev/apis.json - 機能:
https://api.assetfare.dev/v2/capabilities - OpenAPI v2:
https://api.assetfare.dev/v2/openapi.json - プロバイダーのステータス:
https://api.assetfare.dev/v2/status - 読み取り専用 Arazzo ワークフロー:
https://assetfare.dev/arazzo.yaml - 独立エージェントパイロット:
https://assetfare.dev/pilot/
安全モデル
- AssetFare MCP は秘密鍵を受け取らず、トランザクションへの署名や送信も行いません。
- 利用可能なすべてのルートでは、対象となる成功したアトミックアクション 1 回につき、正確に 1bp の AssetFare サービス手数料が算出され、徴収されます。手数料無料のルートはありません。1bp は総コストではありません。Circle(固定 CCTP 転送手数料を含む)、プロバイダー、およびネットワークの手数料が別途加算され、見積もりのトークンパス総コストに表示されます。
assetfare_v2_capabilitiesとassetfare_v2_quoteでは、厳選された 65 種類の公開ルート商品を確認できます。調査済みの追加 35 ルートは提供されていません。利用可否はリアルタイムで変わるため、準備の前に capabilities と見積もりを確認してください。共通の技術的最小額 USD 1 が適用されます。- 商品の分類はルート全体を対象とし、REST、MCP、A2A、CLI を通じて毎週レビューされます。これによって別個の確認ステップが追加されたり、実行権限が付与されたりすることはありません。
- リモート MCP/A2A クライアントは、prepare と session create の際に厳格な
approval_v3を送信する必要があります。選択したモードはスキーマに紐づけられ(one_shotとsession)、session approval では同じ冪等性キーを使用する必要があります。低レベルの REST 互換サーフェスでは、省略時に引き続きlegacy_advisoryとラベル付けされますが、新しいフローでのアクション権限を示すものではありません。各呼び出しでは、リテラル値caller_approved:trueも必要です。アダプターがこれを挿入したり、人間による証明として説明したりすることはありません。秘密鍵、シード、署名済みトランザクションの入力は拒否されます。 - session capability は機密性の高いベアラー認証情報であり、秘密鍵ではありません。リモートクライアントはローカルで 32 バイトの乱数を生成し、パディングなしの base64url にエンコードして、
X-AssetFare-Session-Tokenのみに指定します。サーバーが保存するのはそのハッシュだけです。リモート MCP/A2A サービスがシークレットを生成することはありません。assetfare-planはデフォルトでこれをメモリー内に保持し、明示的に指定された新規 mode-0600 ファイルにのみ書き込みます。オプションのローカル stdio ヘルパーは引き続きオフライン専用です。 - リモート MCP の session create/get/observe/refresh 呼び出しでは、選択した見積もり、承認、公開ウォレットマップからの厳格なクライアント側
verification_contextも保持する必要があります。A2A v1 では、同じオブジェクトを必須のverificationContextとして使用します。両アダプターは上流への呼び出し前にこれを検証し、上流リクエストには含めず、返されたすべてのcurrent_actionに完全なセマンティック検証を適用し、新たに自己検証可能なウォレットハンドオフを出力します。再起動後にコンテキストが欠落している場合、またはターゲット、プログラム、境界、バインディングにずれがある場合、アダプターは状態の作成やアクションの提示より前に失敗します。 - リモート MCP/A2A の one-shot prepare でも、別途型指定された one-shot 検証コンテキストが必要です。アダプターは prepare の前にこれを検証し、クライアント側で保持して、最初の EVM、Solana、Aptos のアクションと承認の境界を検証します。そのうえで、変更されていない Core バンドルを、ウォレットハンドオフが新たに付与された検証済みラッパーに格納して返します。ネストされたバンドルは元の
payload_sha256を保持します。ラッパーフィールドはこの Core ハッシュに含まれません。 - バージョン指定のない MCP の quote/status と、すべての MCP 認証/セッション/アクションツールは、元のコリドーとの互換性のためだけに
/mcp/legacyに分離されています。 - MCP の状態を変更するツールは、認証/セッションレコードの作成、または未署名のレガシーワークフローアクションの準備/検証のみを行います。MCP クライアントは、これらの呼び出しに対してユーザーの承認を求める必要があります。
- 呼び出し元は、返された未署名アクションをそれぞれ独自に検証し、独自のウォレットを使って署名/送信します。
リモートエンドポイント
https://api.assetfare.dev/mcp
公式 MCP Registry サーバーは io.github.assetfare/assetfare と
io.github.assetfare/assetfare-bridge です。旧 io.github.odaiin/*
レコードは、registry issue #1666
で追跡された、所有権を維持する GitHub 組織の移行時に廃止されました。
npm、公開ソース、ホストされたエンドポイント、および Registry メタデータは、この全 65 ルートの製品全体ポリシーリリース向けに
1.21.6 を対象としています。
MCP の主な見積もり対象は、厳選された公開ルート 65 件です。内訳はコア 3 件、条件付き 50 件、戦略的/希少 12 件です。調査/廃止対象の 35 ルートは提供されません。
技術的な見積もり最低額は 1 ドルのみです。ルートごとの別個の経済的下限や、アダプターによって適用される上限はありません。
ルート固有のガイダンスに強制力はなく、観測の蓄積に応じて変化します。ライブの
上流の利用可能性と流動性も適用されます。各ルートには AssetFare サービス手数料として正確に 1bp がかかります。Circle/プロバイダー/ネットワークの手数料は別途発生し、各見積もりにはトークン経路の総コストとライブの利用可能性が表示されます。
標準的な例は solana:SOL → base:USDC、solana:USDC → base:USDC、
ethereum:USDC → solana:USDC です。X Layer、Sei、Sonic、Monad、Avalanche、
Cronos、Injective、Linea、Aptos は、Base/Solana 向けのソース専用ルートを 18 件提供します。
バージョン指定のない従来のワークフローは、引き続き solana:SOL → base:ETH と
solana:SOL → arbitrum:ETH のみに限定されます。v2 のルートマトリックスには適用されません。
API の最低額である 1 米ドルは技術上の制限のみです。価格検証済みの見積もりには最適な開始額が含まれ、利用可能性のみを示す見積もりでは null が含まれます。選択する前に、最新の見積もりを必ず確認してください。
6 つのパイロットは solana:USDC->base:USDC、solana:USDC->base:ETH、
solana:SOL->base:USDC、solana:SOL->base:ETH、
solana:USDC->arbitrum:USDC、solana:SOL->arbitrum:ETH です。それぞれに適用される検証済みコンポーネントは、完全な内部グラフを 2、8、8、32、2、32 個(合計 84 個)構成し、30 分ごとに 50、100、500、1,000、5,000、10,000 米ドルで探索されます。
新たに評価する場合は、assetfare_v2_capabilities を呼び出し、続けて実際に予定している金額を指定して
assetfare_v2_route_selection を呼び出してください。パイロット経路では、事前計算されたカーブを使って直近の上位 2 件と、最良の AssetFare 直接グラフを特定し、リクエスト時点でその 3 件の正確な見積もりを取得して、上位 2 件を返します。すべての応答には、AssetFare の現在の正確なコスト、ETA、コスト順位、および 2 つ以上のより高いテスト済みバケットで裏付けられている場合に限り、保証されない直近の金額範囲も含まれます。正確な見積もりが競合する場合、その範囲は削除されます。呼び出し側が明示的に選択した後、
assetfare_v2_quote_selected_candidate を呼び出してください。有効な間は取得済みの見積もりを返し、有効期限後は選択された候補のみを更新します。AssetFare の選択には通常の continuation_v3 見積もりが含まれます。外部の選択には正規化された見積もり情報と引き継ぎ情報が含まれますが、実行可能なペイロードは含まれません。assetfare_v2_quote は、AssetFare のみを対象とする直接見積もりおよび互換性維持のため、引き続き利用できます。主エンドポイントには、誤選択を招く従来のツールはありません。
既存のバージョン指定のないクライアントは
https://api.assetfare.dev/mcp/legacy に接続できます。新しいクライアントは使用しないでください。
REST/OpenAPI の初回呼び出し
エージェントが MCP に明示的に接続していない場合は、公開 v2 見積もりエンドポイントを使用してください。この読み取り専用の評価呼び出しに、API キー、ウォレット認証、セッション、署名、トランザクションは必要ありません。
curl -sS https://api.assetfare.dev/v2/quote \
-H 'content-type: application/json' \
-d '{"from_chain":"solana","from_token":"USDC","to_chain":"base","to_token":"USDC","amount_usd":1000}'
リポジトリをクローンした場合、依存関係なしで使える例は次のとおりです。
node examples/rest-quote.mjs 1000 solana USDC base USDC
python3 examples/rest_quote.py 1000 solana USDC base USDC
署名済みリリースマニフェストを検証し、見積もりのみに厳密に限定した、エージェントが読み取れる 1 コマンドの評価を行うには、次のとおりです。
npx --yes [email protected] assetfare-route-eval \
--amount 1000 --from-chain solana --from-token USDC \
--to-chain base --to-token USDC --quote-output quote.json
リポジトリをクローンした場合、同等のコマンドは npm run route-eval -- ... です。
評価ツールは、--quote-output が明示的に指定された場合にのみ、検証済みの正確な見積もりを書き込みます。パスは存在していてはならず、モード 0600 で作成されます。評価は引き続き読み取り専用かつ順位付けされません。選択前に、実行可能な最新の代替案と比較してください。
この比較と呼び出し元による明示的な承認の後、検証済みの未署名プランを1つ作成する、サーバー側で強制される最短の手順は次のとおりです。
npx --yes [email protected] assetfare-plan \
--caller-approved --mode session \
--quote quote.json --select-exact-quote-bounds \
--wallet solana=<CALLER_SOLANA_PUBLIC_KEY> \
--wallet base=<CALLER_BASE_PUBLIC_ADDRESS> \
--event-signer-public <CALLER_OWNED_SOLANA_PUBLIC_KEY> \
--session-token-output ./session-capability.json \
--wallet-handoff-output ./caller-wallet-handoff.json
--select-exact-quote-bounds は、見積もりの最大入力額と最小出力額の範囲を明示的にローカルで選択します。厳格な approval_v3 をメモリ上で生成しますが、--caller-approved が人間による承認を証明するとは主張しません。独自のより厳格な範囲を設定する場合や、個別にレビュー可能な承認成果物が必要な場合は、3ステップの手順を使用してください。明示的な範囲を指定して assetfare-select を実行し、モード0600の approval.json を assetfare-plan --approval approval.json に渡します。
CLI で提示される経済面のガイダンスは、引き続き参考情報です。価格が重要な場合は、最新の総額見積もりを比較してください。追加の確認フラグは必要ありません。
assetfare-plan は見積もりと承認の紐付けを検証し、選択された prepare/session POST のみを実行します。返されたパス、プロバイダー、範囲、および ActionSafetyReceiptV1/raw/action/bundle のハッシュを確認し、未署名かつ未送信の状態で終了します。セッショントークンが stdout や構造化結果に表示されることはありません。トークンの出力先として指定するパスは、まだ存在していてはならず、ファイルはモード0600で作成されます。プロセス終了後に復旧できなくてもよい場合に限り、省略してください。
任意の呼び出し元ウォレット引き継ぎファイルを使うと、カストディ境界を越えることなく、次のアクションが不明確になる問題を解消できます。EVM アクションの場合、ファイルには順序付きで検証済みの EIP-1193 eth_sendTransaction リクエストテンプレートが含まれます。Solana の場合は、検証済みの正確な命令、手数料支払者、必要な署名者、および Solana Wallet Standard クライアント向けの明示的な最新ブロックハッシュ構築要件が含まれます。自己完結型であり、正確に検証された bundle、ActionSafetyReceiptV1、プラン検証結果、raw/action/bundle の紐付け、および正規の引き継ぎハッシュがウォレットリクエストデータとともに渡されるため、受信側プロセスで再計算できます。
Handoff v3 では、異なる2つの権限が明確に分けられています。AssetFare は、常にウォレットの呼び出しを禁止されています。人間は各リクエストを手動で確認できます。または、外部エージェントが、金額、受取額、手数料、トランザクションの上限を明示した、呼び出し元が所有する別個のローカルポリシーに従う場合に限り、自動実行できます。AssetFare は、そのポリシーを選択せず、ウォレットを呼び出さず、キーを保持せず、署名も送信もしません。
セッションモードでは、ワークフローが終了状態になるまで、この機能ファイルを保持してください。セッション作成の応答が失われた場合は、同じプランコマンドを --session-capability-input ./session-capability.json を付けて再実行してください。同じトークンと冪等性キーが再利用されます。ファイルにセッション ID が含まれた後は、セッションを再作成せずに再開してください。
npx --yes [email protected] assetfare-session \
--operation get --capability-file ./session-capability.json
npx --yes [email protected] assetfare-session \
--operation observe-source --capability-file ./session-capability.json \
--idempotency-key source-0001 \
--transaction-hash <CALLER_ALREADY_SUBMITTED_TRANSACTION_HASH>
assetfare-session が受け付けるのは、呼び出し元がすでに検証、署名、送信したアクションのトランザクションハッシュのみです。ベアラートークンはセッションヘッダー内でのみ送信され、出力されることはありません。モード0600の機能ファイルには、厳格な承認、正確なインテント、公開ウォレットマップ、および直接ルートの要約も保持されます。これらは、後続のすべての current_action に対して、最初のアクションに適用する完全なセマンティック検証を実施するために必要です。後続の各 EVM または Solana アクションには、新たに自己検証可能な呼び出し元ウォレット引き継ぎが付与されます。これを保存するには、--wallet-handoff-output <new-file> を使用してください。従来の v1 機能ファイルではアクションのないセッションを読み込めますが、未検証のアクションを公開する前にフェイルクローズします。構造化された409リカバリーフラグは、CLI エラーにも保持されます。
呼び出し元のウォレットを開く直前に、ジャストインタイムの引き継ぎをリクエストしてください。
npx --yes [email protected] assetfare-session \
--operation wallet-ready \
--capability-file ./session-capability.json \
--idempotency-key wallet-ready-0001 \
--wallet-handoff-output ./wallet-ready-handoff.json
見積もりの紐付けの有効期間は60秒のままです。選択された未署名アクションバンドルは180秒間有効で、EVM のオンチェーン期限は240秒です。
wallet-ready は、残り時間が120秒以上ある場合にのみ、現在のアクションを受け付けます。未送信のアクションの期限が切れている場合は、同じセッションステップを更新し、置き換え後の内容を詳細に検証して、新しいモード0600の引き継ぎファイルを書き込みます。有効なアクションを早期に置き換えたり、ウォレットを呼び出したり、署名したり、送信したりすることはありません。
呼び出し元が所有する自律実行
assetfare-agent-runner は、AssetFare がカストディアンになることなく、検証済みセッションのハンドオフを外部エージェントの既存ウォレットに接続します。これは呼び出し元のプロセス内で実行されます。呼び出し元は、次の 2 つのローカルファイルを指定します。
AssetFare のすべての未署名アクションは、現在、証明付きのハンドオフです。リモート MCP によるセマンティック検証は、有用な転送証拠ですが、意図的に署名権限は持ちません。ローカルパッケージは、バンドルとハンドオフのハッシュ、インテント、ウォレット、パス/プロバイダー、金額の上限、デコード済みのターゲット/プログラム、セレクター/命令、署名者セットを再計算します。まず、簡潔な assetfare-local-verification-verdict-1.0.0 ステータス verified_for_simulation を返します。呼び出し元が所有するウォレットアダプターで、バインドされたペイロードそのもののシミュレーションが正常に完了し、委任ポリシーでも引き続き承認されている場合に限り、ランナーは verified_for_signing を生成し、そのローカルアダプターを呼び出します。これにより、エージェントは未加工のトランザクションを自ら解釈する代わりに、単一の簡潔な判定を利用できます。外部プロバイダーの推奨は、プロバイダーへのハンドオフにすぎません。AssetFare は、そのプロバイダーのトランザクションを構築したり、検証したと主張したりしません。
パッケージ化された委任ランナーは、EVM および Solana のハンドオフに対応しています。Aptos のルートでは、委任ランナーによる実行が無効化された、検証済みの Aptos Wallet Standard の未署名 BCS ハンドオフが返されます。呼び出し元は、自身の Aptos ウォレットでそのハンドオフを確認、シミュレーション、署名、送信します。
caller-owned-execution-policy-v2に準拠する、モード 0600 のポリシー。公開ウォレットと明示的な実行上限のみが含まれます。- ローカルウォレットアダプター。パッケージ化された
standard-wallet-adapterは、標準の EIP-1193 プロバイダーと Solana Wallet Standard ウォレットに対する AssetFare のコントラクトをすでに実装しています。呼び出し元は、examples/caller-wallet-adapter.mjsに示すように、既存のプロバイダークライアントを接続するだけです。
資金を入れる前に、ウォレット、署名者、RPC 送信、ネットワークリクエストを一切呼び出さずに、ローカルアダプターのコントラクトを検証してください。
npx --yes [email protected] assetfare-adapter-conformance \
--wallet-adapter ./my-local-wallet-adapter.mjs
CLI には、秘密鍵、シード、ニーモニック、キーストア、署名済みトランザクションの生データ、リモート署名者、ホスト型ウォレットのオプションは意図的にありません。
npx --yes [email protected] assetfare-agent-runner \
--capability-file ./session-capability.json \
--policy-file ./caller-execution-policy.json \
--state-file ./caller-runner-state.json \
--wallet-adapter ./my-local-wallet-adapter.mjs
現在のすべてのアクションについて、ランナーは自己検証型ハンドオフを再検証し、設定された残存有効期間を必須とします。また、最初の承認より前に EVM のネイティブトークン支出額の最悪値を確保し、送信のたびにガス/手数料/レンタル料およびトランザクション数の上限を確認します。さらに、シミュレーション後と通常送信または復旧送信の直前に、ポリシー、合計実行時間、アクションの有効期限を再確認します。v2 アダプターは、実行ウィンドウの正確なハッシュをエコーバックし、呼び出し元のウォレットを使用する前に独自の最終確認を行います。ランナーが呼び出すのは呼び出し元のアダプターのみです。保存するのは公開ハッシュとコストの概要のみで、送信済みのハッシュをセッション経由で監視し、バインドされた最終最小値が確認されるまで繰り返します。承認のみが失敗した場合は、呼び出し元のアダプターによる正確なゼロへの取り消し復旧を実行できます。クラッシュ復旧に備え、アダプター呼び出しは公開オペレーション ID に冪等にバインドされます。
ローカルアダプターは、呼び出し元のウォレット/RPC を介して署名と送信を行います。パッケージ化されたリファレンスアダプターは、標準のプロバイダーオブジェクトを受け付け、鍵文字列は受け付けません。また、冪等な再試行のためにモード 0600 の公開オペレーションメタデータのみを保存します。返すのは、シミュレーション、公開確認情報、トランザクションハッシュのみです。リモート MCP サービスと A2A サービスには、引き続きウォレット、鍵、署名、送信、ランナーのツールはありません。すべての結果で、次のようになります。
key_location: caller_wallet_adapter_only
signed_by: caller_wallet_adapter
submitted_by: caller_wallet_adapter
assetfare_server_key_access: false
assetfare_server_signing: false
assetfare_server_submission: false
複数の EVM チェーンを管理するウォレットでは、evmProvider に単一の EIP-1193 プロバイダー、または非同期の (chainId) => provider リゾルバーを指定できます。リファレンスアダプターは、シミュレーション、署名、送信、確認の前に、リクエストで指定されたチェーンを正確に解決し、チェーンまたはアカウントの不一致を拒否します。また、デフォルトで EVM の確認を 2 回要求します。Solana の確認は引き続き finalized です。
セッション CLI と AssetFare サーバーには、署名や送信の手段はありません。また、見積もりの選択とプランの作成には、見積もりの有効期限が少なくとも 15 秒残っている必要があります。それに満たない場合は、有効期限切れと競合するのではなく、新しい見積もりを取得して確認してください。
評価ツールは、代表的な USD 1,000 の
solana:USDC -> base:USDC リクエストをデフォルトで使用します。この USDC の結果は AssetFare の候補の 1 つであり、プロバイダーを横断した市場比較ではありません。そのルート固有の最良候補の選定ルールを適用し、新しい見積もりを確認してください。以前の solana:SOL -> base:ETH 比較ルートは、現在は経済性の面で無効です。そのため、公開 API は AssetFare のオファーを返したり、競合他社へのリクエストを実行したりせず、このルートを拒否します。ルートを評価する前に、100 ルートのカタログとライブ機能を確認してください。
読み取り専用のフレームワーク連携として、 Coinbase AgentKit と GOAT、 さらにプロジェクトがレビューした(プロジェクト作成者によるリポジトリレビューであり、独立した第三者による保証ではありません) SendAI Solana Agent Kit plugin と elizaOS plugin を利用できます。また、 Agenti 向けの見積もりツールもあります。これらの連携は、いずれも準備、署名、送信、資金調達、スワップ、ブリッジの実行機能を提供しません。
Dify エージェントは、レビュー済みの AssetFare Marketplace plugin をインストールできます。 このプラグインが提供するのは、ライブ機能の取得と 1 つのルートの見積もりという、2 つのネイティブ REST ツールです。認証情報、ウォレット、認証、セッション、準備、署名、送信、スワップ、ブリッジの実行ツールはありません。
Hugging Face smolagents のユーザーは、無料の Static Spaces から、レビュー済みの
quote tool または
capabilities tool を読み込めます。Hub ツールはリモートコードをローカルで実行します。tool.py を確認し、trust_remote_code=True を設定して、ドキュメントに記載された変更不可能なリビジョンを固定してください。ソースとテストの完全版は、
assetfare/smolagents-assetfare にあります。
A2A v1 クォートアダプター
AssetFare は、MCP を使わずにクォートと呼び出し元が承認した署名なしワークフローを発見するエージェント向けに、A2A Agent Card version 1.7.0 も公開しています。
- 正規の Agent Card:
https://api.assetfare.dev/.well-known/agent-card.json - 同一のカードを返す従来のディスカバリーエイリアス:
https://api.assetfare.dev/.well-known/agent.json - JSON-RPC v1 エンドポイント:
https://api.assetfare.dev/a2a - プロトコル:公式の
@a2a-js/sdkv1、A2A-Version: 1.0、Content-Type: application/json
読み取り専用のクォートスキルは、fromChain、fromToken、toChain、toToken、amountUsd を含む構造化 DataPart を 1 つ受け付けます。公開 v2 の capabilities、status、quote エンドポイントを呼び出し、受け渡された caller_action_plan_handoff を含むクォートを 1 つ返します。amountUsd は有限値かつ 1 以上である必要があります。アダプターによる上限はありませんが、上流の稼働状況と流動性の制約は引き続き適用されます。さらに、MCP の実行ツールに対応する、呼び出し元が承認する A2A スキルが 2 つあります。自己検証可能なウォレットハンドオフを備えた詳細検証付きの単発 prepare オペレーションと、完全な session ライフサイクル(session_create、session_get、observe_source、observe_output、refresh_action)です。session_create を呼び出す前に、A2A クライアントはセッショントークンをローカルで生成します。リモート A2A エンドポイントには、意図的にトークン生成オペレーションがありません。各セッションオペレーションでは、選択した正確なクォートからコピーされた、同じハッシュバインド済みの verificationContext、厳密な承認情報、および公開ウォレットのマップも必要です。アダプターは上流へのリクエスト前にそのコンテキストを検証し、すべての EVM、Solana、Aptos の current_action を検証して、新しい自己検証可能な呼び出し元ウォレットハンドオフを出力します。各実行オペレーションには、明示的な callerApproved:true と呼び出し元の公開ウォレットアドレスが必要です。AssetFare が署名または送信することはなく、監視するのは呼び出し元自身が送信したトランザクションハッシュのみです。安全な 409 レスポンスは、再承認と復旧のためのガイダンスとして構造化されたまま保持されます。自動での再クォート、再実行、またはセッションの置き換えが許可されることはありません。
カードの取得、レジストリのヘルスチェック、TCK リクエスト、またはレジストリが生成した SendMessage プローブは、ディスカバリー/適合性確認のトラフィックであり、顧客需要ではありません。
公開エンドポイントは公式の a2aproject/a2a-tck のコミット 263b9cfa で検証済みです。該当する MUST チェック 55 件すべてに合格しました。汎用 TCK の SUT フィクスチャーテストのうち 5 件は、固定の TextPart ペイロードと特殊な messageId 接頭辞を送信し、無関係なテキスト/ファイル/データの成果物を要求します。これらは、構造化された非カストディアル型エージェントには意図的に実装していません。この例外は、100%完全合格として示すのではなく、開示しています。
リモート MCP クライアントを直接接続できます。パッケージのインストールも AssetFare API キーも不要です。
claude mcp add --transport http assetfare https://api.assetfare.dev/mcp
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp"
}
}
}
Codex CLI とアプリ
CLI からリモートサーバーを追加します。
codex mcp add assetfare --url https://api.assetfare.dev/mcp
または、~/.codex/config.toml かプロジェクトの .codex/config.toml に追加します。writes 承認モードでは、読み取り専用の注釈が付いていないツールを使用する際に確認が表示されます。
[mcp_servers.assetfare]
url = "https://api.assetfare.dev/mcp"
default_tools_approval_mode = "writes"
Gemini CLI
gemini mcp add --transport http assetfare https://api.assetfare.dev/mcp
同等の ~/.gemini/settings.json エントリー:
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp",
"type": "http",
"trust": false
}
}
}
Cursor
次のサーバーを、プロジェクトの .cursor/mcp.json またはグローバルな ~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp"
}
}
}
接続に認証は不要です。プライマリーエンドポイントでは、呼び出し元が所有する公開ウォレットを使用し、セッションモードではクライアントが生成したケイパビリティを使用します。従来の独立したエンドポイントのみ、以前の signMessage フローで生成されたウォレットバインド済みトークンを使用します。どちらのケイパビリティも MCP 設定ファイルに記載しないでください。
エージェントスキル
ポータブルな Agent Skill は skills/assetfare-route/SKILL.md にあります。Skills.lc 対応クライアントは、この公開 GitHub リポジトリから直接インストールできます。
npx --yes skills add assetfare/assetfare-mcp --skill assetfare-route -g -y
ポータブルエージェントプラグイン
公開されているベンダーに依存しない Agent Plugins 1.0 形式に対応するクライアントは、このリポジトリを Git URL からインストールできます。現在の plugins CLI は、同梱の互換性メタデータを通じて、同じ MCP 接続と AssetFare のルート評価スキルをインストールできます。
npx plugins add assetfare/assetfare-mcp
主要な MCP エンドポイントは v2 専用です。従来のウォレット認証/セッションツールは /mcp/legacy に分離されています。AssetFare が秘密鍵を受け取ったり、署名や送信を行ったりすることはなく、このスキルでは REST/OpenAPI v2 を主要な評価経路として使用します。
Circle Agent Stack や、シェルを利用できるその他のエージェントでも、同じスキルと公開 REST/OpenAPI フローを使用できます。詳しくは integrations/circle-agent-stack をご覧ください。
初回呼び出しの評価
npm run first-call-eval を実行すると、新しい MCP クライアントが主要な v2 の見積もり専用ツールを検出し、現在の機能を検証して、ウォレットログイン、セッション、アクション、署名、トランザクションを作成することなく、Solana のネイティブ USDC から Base のネイティブ USDC への代表的な USD 1,000 の見積もりを取得できることを確認できます。レガシーツールは主要なエンドポイントにはありません。到達性やスキーマのスモークテストを意図的に行う場合に限り、USD 1 を使用してください。
Streamable HTTP を使用してください。エンドポイントにサーバー側の API キーはありません。読み取り専用の v2 ツールがウォレットを認証することはありません。prepare/session ツールには、呼び出し元による明示的な承認と公開ウォレットが必要です。レガシーのウォレット認証は別のエンドポイントです。
ローカル stdio
このリポジトリには、セルフホスト向けの stdio 対応全ツールラッパーも含まれており、ローカル専用のセッション機能ヘルパーも利用できます。公開 Registry エントリでは、軽量な v2 専用 Streamable HTTP エンドポイントを使用します。パッケージのリリースと Registry のリリースは、リモートデプロイとは別に審査されます。
npm リリースの公開
npm リリースでは、.github/workflows/publish-npm.yml を介した GitHub Actions OIDC の信頼された公開を使用します。このワークフローは、既存の不変な v<package-version> GitHub リリースタグを指定して手動で実行します。タグが main にあり、package.json と一致することを検証し、パッケージの全チェックと本番環境監査を実行し、公開済みのバージョンでないことを確認してから、有効期間の短い OIDC 認証情報を使用して公開します。GitHub やこのリポジトリに npm の書き込みトークンは保存されません。
npm の信頼された公開者の登録先は、GitHub 組織 assetfare、リポジトリ assetfare-mcp、ワークフローファイル名 publish-npm.yml に固定されています。直接の npm publish は、そのワークフローに限って許可されます。OIDC 接続の確認後は、パッケージ設定で 2FA を必須にし、従来のトークンを許可しないようにしてください。
統合 npm リリース
5 つの安定版統合パッケージは、パッケージを許可リストで指定する独立したリリース経路を使用します。不変タグは次のとおり正確に固定されています。
assetfare-agenti-route-tools-v1.3.0(@assetfare/agenti-route-tools)assetfare-agentkit-action-provider-v1.3.0assetfare-elizaos-route-plugin-v1.3.0assetfare-goat-plugin-v1.3.0(@assetfare/goat-plugin)assetfare-solana-agent-kit-plugin-v1.3.0
現在の安定版パッケージと直接インストールするコマンド:
| フレームワーク | npm パッケージ | インストール |
|---|---|---|
| Agenti | @assetfare/agenti-route-tools | npm install @assetfare/agenti-route-tools ai zod |
| Coinbase AgentKit | assetfare-agentkit-action-provider | npm install assetfare-agentkit-action-provider @coinbase/agentkit zod |
| elizaOS | assetfare-elizaos-route-plugin | npm install assetfare-elizaos-route-plugin @elizaos/core zod |
| GOAT | @assetfare/goat-plugin | npm install @assetfare/goat-plugin @goat-sdk/core zod |
| Solana Agent Kit | assetfare-solana-agent-kit-plugin | npm install assetfare-solana-agent-kit-plugin solana-agent-kit zod |
release-integration-provenance.yml で選択できるパッケージは、この 5 つだけです。対応する軽量タグが、固定された AssetFare リリース鍵で署名され、main に含まれるコミットを指していること、ドラフトではない GitHub リリースがすでに公開されていることを必須とし、パッケージの固定済みチェック、テスト、ビルド、本番環境監査、パック検証を実行します。その後、npm tarball とその SHA-256 ファイルだけをアップロードし、GitHub ビルドの来歴を記録します。npm への公開は行いません。
両方のワークフローは、パッケージの正確なタグを --ref に指定してディスパッチする必要があります。main やその他のブランチ/タグは指定できません。GITHUB_REF が refs/tags/<exact-package-tag> と一致し、GITHUB_SHA が署名済みタグのコミットと一致する必要があります。また、タグ自体に同じ 2 つのワークフローファイルと固定された署名者データが含まれている必要があります。たとえば、以下の信頼できるパブリッシャーの前提条件を満たした後、AgentKit の来歴フェーズは次のコマンドで選択します。
gh workflow run release-integration-provenance.yml --ref assetfare-agentkit-action-provider-v1.0.0 -f package=assetfare-agentkit-action-provider
来歴フェーズの成功後に限り、同じ --ref とパッケージの選択を指定して publish-integration-npm.yml を実行し、公開フェーズに進みます。
publish-integration-npm.yml は同じ許可リストと、上記の各不変タグに対応する正確なバージョンを受け付けます。署名済みタグ、リリース、マニフェスト、ロックファイル、テスト、ビルド、監査、パックの各チェックを再実行し、指定された 2 つのリリースアセットだけをダウンロードします。GitHub のアセットダイジェスト、SHA-256 ファイル、GitHub アテステーション、パッケージ ID、バイト単位の再現性を検証してから、短期間有効な OIDC 認証情報を使用して、ダウンロードした tarball を公開します。レジストリに同じバージョンがすでに存在する場合、shasum が完全に一致するときに限り受け入れます。一致しない場合はフェイルクローズします。最終ゲートでは、期待される latest タグ、shasum、npm SLSA 来歴が必須です。
対象の npm パッケージで Settings → Trusted Publisher のエントリを設定し、組織 assetfare、リポジトリ assetfare-mcp、正確なワークフローファイル名 publish-integration-npm.yml、環境の指定なし、直接の npm publish 権限であることを独立して確認するまで、いずれの統合リリースワークフローもディスパッチしないでください。 5 つすべてのパッケージで、この正確なエントリを個別に設定してください。publish-npm.yml、フォーク、別名のワークフロー、npm 書き込みトークンで代用しないでください。既存のルート v1.x の来歴および公開ワークフローは別個のままで、変更されません。
信頼性に関する資料
- セキュリティ連絡先:
[email protected] - セキュリティポリシーと非公開の報告先:
https://github.com/assetfare/assetfare-mcp/security/policy - 署名済みマニフェスト:
https://api.assetfare.dev/.well-known/assetfare-manifest.json - 公開署名鍵:
https://assetfare.dev/.well-known/assetfare-manifest.pub - 運営者の所有権を継続的に再検証する情報:
https://api.assetfare.dev/.well-known/owners.json - アクティブルートのソースステータス:
https://api.assetfare.dev/v2/status - アクティブルートの機能:
https://api.assetfare.dev/v2/capabilities - 主要な OpenAPI v2:
https://api.assetfare.dev/v2/openapi.json - MCP を利用するレガシー v1 OpenAPI:
https://api.assetfare.dev/openapi.json - APIs.json:
https://assetfare.dev/apis.json - Arazzo:
https://assetfare.dev/arazzo.yaml - サーバーカード:
https://api.assetfare.dev/.well-known/mcp/server-card.json - A2A エージェントカード:
https://api.assetfare.dev/.well-known/agent-card.json - A2A エンドポイント:
https://api.assetfare.dev/a2a - エージェントガイド:
https://assetfare.dev/llms-full.txt - メインネットのエビデンス:
https://assetfare.dev/evidence/ - ペアリング済みルートのエビデンス:
evidence/solana-base-paired-quotes-20260916.md - エージェント決済ルートのエビデンス:
evidence/solana-base-usdc-paired-quotes-20260916.md - 非アクティブな経路の過去の同一入力比較:
https://assetfare.dev/compare/solana-to-base/ - 日付付き Solana USDC → Base USDC 比較($250、2026-09-23。総額ではないこと、およびレーンが同一でないことに関する明示的な注意事項あり):
https://assetfare.dev/compare/solana-usdc-to-base-usdc/
ディスカバリー
- 公式 MCP Registry:
io.github.assetfare/assetfareおよびio.github.assetfare/assetfare-bridge - MCP Servers:
https://mcpservers.org/servers/assetfare/assetfare-mcp - Smithery:
https://smithery.ai/servers/twotw55/assetfare - Glama:
https://glama.ai/mcp/connectors/io.github.odaiin/assetfare - エージェントスキル:
https://www.skills.sh/assetfare/assetfare-mcp/assetfare-route - Dify Marketplace:
https://marketplace.dify.ai/plugin/odaiin/assetfare - Hugging Face 見積もりツール:
https://huggingface.co/spaces/odaiin/assetfare-quote(正規のレビュー済みリビジョンa2895876d7adec645e93d7092e63b2ed4be17ef5) - Hugging Face 機能ツール:
https://huggingface.co/spaces/odaiin/assetfare-capabilities(正規のレビュー済みリビジョンbdbe1e82be617c77283dd44e67cc9bda2d220ec7) - Hugging Face 準備ツール:
https://huggingface.co/spaces/odaiin/assetfare-prepare(正規のレビュー済みリビジョンbc4619ea3d5443ed24e0e0892994530dea259188) - Hugging Face セッション作成ツール:
https://huggingface.co/spaces/odaiin/assetfare-session-create(正規のレビュー済みリビジョンf4af546056d1ac3f3cf44af428b66766f8beef15) - A2A Registry:
https://a2aregistry.org/agents/d4f9ab1a-904c-4227-8fc6-548e45749de1 - ARD:
https://assetfare.dev/.well-known/ard.json
このラッパーには、意図的に AssetFare のルートエンジン、ウォレット、RPC 認証情報、内部運用データを含めていません。
エージェントのユースケース
サポートされている v2 リクエストでは、エージェントはまず v2 の機能を読み取り、REST/OpenAPI または読み取り専用の
assetfare_v2_quote MCP ツールを通じて、新しい見積もりをリクエストします。既存の元の経路を利用するクライアントのみが、
別途 /mcp/legacy に接続してください。呼び出し元は、すべてのオンチェーン操作に独自に署名して送信します。この MCP サーバーがそれを行うことはありません。
初回呼び出しの評価スクリプト、公開されているメインネットのエビデンス(https://assetfare.dev/evidence/)、およびエンドツーエンドのケーススタディ(https://assetfare.dev/case-studies/solana-to-base-mainnet-canary/)をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。