关于 Soheil Router
Soheil Router 为 EVM 网络提供代币兑换报价与交易状态,通过比较 DEX 和聚合器价格,并由非托管合约执行交易。开发者和 AI 助手可使用其 API、TypeScript 包或 MCP 端点。
主要功能
- 01比较不同平台的兑换价格
- 02提供报价与交易详情
- 03跟踪交易直至完成
- 04支持网络间桥接
- 05通过非托管合约执行
适用场景
- 01查询代币兑换报价
- 02检查已提交交易的状态
- 03在不同网络间兑换或桥接代币
MCP 相关
Streamable HTTP MCP 服务提供 `get_networks`、`get_api_info`、`get_quote` 和 `get_trade_status` 工具。访问时需在 Authorization 请求头中传入 API 密钥。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.soheil.fi/v1/mcpclaude mcp add --transport http fi-soheil-router https://api.soheil.fi/v1/mcp{"mcpServers":{"fi-soheil-router":{"type":"http","url":"https://api.soheil.fi/v1/mcp"}}}在 Cursor 中打开{"servers":{"fi-soheil-router":{"type":"http","url":"https://api.soheil.fi/v1/mcp"}}}在 VS Code 中打开{"mcpServers":{"fi-soheil-router":{"type":"http","url":"https://api.soheil.fi/v1/mcp"}}}{"mcpServers":{"fi-soheil-router":{"serverUrl":"https://api.soheil.fi/v1/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.soheil.fi/v1/mcp需要授权工具
详细介绍
Soheil Router
一次 API 调用即可获取最佳代币兑换价格,一笔交易即可完成兑换。 Soheil Router 会比较各网络上 DEX 和聚合器的价格,并通过自有合约执行交易:合约不可升级,已在区块浏览器上验证源码,且交易之间不会持有资金。
- 文档: https://soheil.fi/developers/docs/
- 免费 API 密钥: https://soheil.fi/developers/dashboard/
- OpenAPI 3.1: https://api.soheil.fi/v1/openapi.json
- 供 AI 助手使用: https://soheil.fi/developers/llms-full.txt · MCP 服务地址:
https://api.soheil.fi/v1/mcp
费用
每笔兑换向路由器收取 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",用户仍只需在源网络上签署一笔交易;几秒内,收款人就会在目标网络收到款项。
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)。仍然只需一笔交易,费用仅收取一次。文档: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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。