mcpField
S
Soheil Router

Soheil Router

リモート
soheil.fi金融データ05 日前に更新
リポジトリ公式サイト

Soheil Router について

Soheil Routerは、EVMネットワーク間のトークンスワップ見積もりと取引状況を提供し、DEXやアグリゲーターの価格を比較して非カストディアルコントラクトで実行します。開発者やAIアシスタントはAPI、TypeScriptパッケージ、MCPエンドポイントを利用できます。

主な機能

  1. 01複数の取引先でスワップ価格を比較
  2. 02見積もりとトランザクション詳細の取得
  3. 03取引の完了までの状況追跡
  4. 04対応ネットワーク間のブリッジ
  5. 05非カストディアルコントラクトでの実行

活用シーン

  1. 01トークンスワップの見積もり取得
  2. 02送信済み取引の状況確認
  3. 03ネットワーク間のトークンスワップやブリッジ

MCP 対応

Streamable HTTPのMCPサーバーは、`get_networks`、`get_api_info`、`get_quote`、`get_trade_status` ツールを提供します。利用にはAuthorizationヘッダーでAPIキーを渡します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://api.soheil.fi/v1/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://api.soheil.fi/v1/mcp認証が必要

ツール

詳細

Soheil Router

mcptry

最適なトークンスワップ価格を取得する API 呼び出しは 1 回、取引を実行するトランザクションも 1 回です。 Soheil Router は各ネットワーク上の DEX やアグリゲーターの価格を比較し、独自のコントラクトを通じて取引を実行します。このコントラクトはアップグレード不可で、エクスプローラー上でソースコードが検証済みです。また、取引の合間に資金を保持することはありません。

手数料

スワップごとにルーターへの手数料が 0.1%(10 bps)かかります。最大 0.9% の独自手数料を追加でき、同じトランザクション内でウォレットに支払われます。請求手続きは不要です。

インストール

npm install github:soheil-fi/soheil-router

クイックスタート

import { COIN, SoheilRouter } from "@soheil-fi/router";

const router = new SoheilRouter({ apiKey: process.env.SOHEIL_ROUTER_KEY }); // keep the key on your server

const quote = await router.getQuote({
  fromChainId: 8453,                                       // Base
  fromToken: COIN,                                         // ETH
  toToken: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",   // USDC
  fromAmount: 10n ** 15n,                                  // 0.001 ETH, in wei
  fromAddress: "0xUserWallet",
  integratorBps: 30,                                       // your fee: 0.3%
});

// quote.approvalAddress → approve exactly quote.fromAmount first (null when selling the coin)
// quote.transactionRequest → have the user's wallet send it unchanged
const status = await router.waitForTrade(8453, txHash);     // DONE, REFUNDED, FAILED or NOT_OURS

viem を使ったスワップ全体の例は、examples/swap-viem.ts にあります。

メソッドキー戻り値
getNetworks()不要稼働中のネットワーク、自社コントラクト、取引で呼び出される可能性のあるコントラクト
getInfo()不要手数料、制限、ドキュメント
getQuote(request)必要価格、最低受取額、手数料、承認先アドレス、トランザクション
getStatus(chainId, txHash)必要PENDING、DONE、REFUNDED、FAILED、NOT_OURS、NOT_FOUND のいずれか
waitForTrade(chainId, txHash)必要取引が確定するまで getStatus を呼び出します

エラーは SoheilRouterError としてスローされます。code(NO_ROUTE、RATE_LIMITED、UNAUTHORIZED…)、HTTP の status、ユーザーに表示しても安全な message が含まれます。

別のネットワークへのブリッジ

toChainId にルーターの別のネットワークを設定します。応答の type は "bridge" になります。ユーザーが署名するトランザクションは引き続き送信元ネットワークで 1 回だけで、受取人への支払いは数秒以内に送信先で行われます。

const quote = await router.getQuote({
  fromChainId: 8453,                                       // from Base
  toChainId: 42161,                                        // to Arbitrum
  fromToken: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Base
  toToken: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",   // USDC on Arbitrum
  fromAmount: 100_000_000n,                                // 100 USDC
  fromAddress: "0xUserWallet",
});
// quote.toAmount is what arrives; a transfer nobody fills is refunded to fromAddress on Base (status REFUND_PENDING until then)
const status = await router.waitForTrade(8453, txHash);     // DONE (status.receiving = the payout) or REFUNDED

fromToken と toToken には任意のトークンを指定できます。ブリッジが取り扱わないトークンは、まず送信元ネットワークでスワップするか、送信先で到着後に購入します(この場合、toAmountMin はそのスワップの最低額です。価格がそれを下回ると、受取人には代わりに USDC などのブリッジされたトークンが届きます)。トランザクションは引き続き 1 回だけで、手数料も 1 回だけ徴収されます。ドキュメント:https://soheil.fi/developers/docs/bridging/

AI アシスタントから使う(MCP)

API は MCP サーバー(Streamable HTTP)としても利用でき、get_networks、get_api_info、get_quote、get_trade_status のツールを提供します。

claude mcp add --transport http soheil-router https://api.soheil.fi/v1/mcp \
  --header "Authorization: Bearer $SOHEIL_ROUTER_KEY"
{ "mcpServers": { "soheil-router": { "url": "https://api.soheil.fi/v1/mcp", "headers": { "Authorization": "Bearer sk_your_key" } } } }

知っておくとよいこと

  • 金額はトークンの最小単位による整数文字列です。bigint を使用し、JavaScript の数値は決して使わないでください。
  • fromAmount と同じ額だけを承認し、無制限の額は決して承認しないでください。
  • ユーザーは常に自身のウォレットで署名します。API がキーや資金を保持することはありません。

Soheil.fi が開発しました。お問い合わせ:[email protected]

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。