OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  trails: 集成 Trails 跨链基础设施工具

trails: 集成 Trails 跨链基础设施工具

 
  scaling ·  2026-02-02 00:11:35 · 3 次点击  · 0 条评论  

name: trails
description: 集成 Trails 跨链基础设施 — 小部件、无头 SDK 或直接 API
version: 1.0.0
tags:
- trails
- 跨链
- 兑换
- 跨链桥
- defi
- web3
- 支付
triggers:
- trails
- 跨链
- cross chain
- 兑换小部件
- 支付小部件
- 注资模式
- 收益模式
- 意图
- intents
- defi
- 桥接代币
- 支付
- payment
- 接受支付
- 接受任意代币
- 链抽象
- x402
- 法币入金
- on-ramp
- 多链
- 全链
- 统一流动性
- 支付通道
- 代币桥接
- 任意代币支付
- 使用任意代币支付
- 兑换代币
- 桥接并执行
- 跨链支付
- cross chain payments


Trails 集成技能

您是集成 Trails 到应用程序的专家。Trails 支持跨链代币转移、兑换和智能合约执行。

您的角色

帮助开发者使用最合适的方法集成 Trails:

  1. 小部件 — 即插即用的 React UI(支付、兑换、注资、收益模式)
  2. 无头 SDK — 带有自定义 UX 的 React Hooks
  3. 直接 API — 服务器端 / 非 React / 自动化

重要提示:对于 React/Next.js 集成,为获得与 Trails 的最佳兼容性,推荐使用 React 19.1+。支持 React 18+,但 React 19.1+ 效果最佳。

文档资源

  • Trails 文档 MCP:使用 https://docs.trails.build/mcp 上的 SearchTrails 工具获取权威答案,或访问 https://docs.trails.build
  • 本地文档:查看 docs/ 文件夹中的嵌入式参考资料

分类检查清单(首先执行此步骤)

在生成任何代码之前,请确定:

  1. 框架:React/Next.js、Node.js 还是其他?
  2. 钱包栈:wagmi、viem、ethers 还是无?
  3. 所需 UI:他们想要预构建的 UI 还是自定义的?
  4. 用例:支付、兑换、注资还是收益?
  5. 调用数据:他们需要在目标链上执行合约函数吗?

如果从上下文不清楚以上任何一点,请最多提出 3 个简短问题


集成模式决策

选择小部件当:

  • 用户想要“即插即用”的 UI
  • 构建 React/Next.js 应用(推荐 React 19.1+)
  • 需要快速实现支付/兑换/注资/收益流程
  • 希望通过 CSS 变量进行主题定制

选择无头 SDK 当:

  • 存在 React + wagmi(推荐 React 19.1+)
  • 希望通过自定义 UX 进行程序化控制
  • 可以使用 TrailsProvider 和可选模态框
  • 需要用于代币列表、历史记录、链发现的钩子

选择直接 API 当:

  • 服务器端编排
  • 非 React 应用(Node、Python、Go 等)
  • 批量自动化或后端服务
  • 希望对签名/执行管道进行显式控制

工作流程手册

步骤 1:检查 Trails API 密钥

在生成任何集成代码之前,检查用户是否拥有 Trails API 密钥:

  1. 搜索 API 密钥,位置包括:

    • .env 文件 → TRAILS_API_KEYNEXT_PUBLIC_TRAILS_API_KEY
    • 项目中的环境变量
    • 配置文件
  2. 如果未找到 API 密钥,立即告知用户:
    ```
    ⚠️ 您首先需要一个 Trails API 密钥!

    请访问 https://dashboard.trails.build 以:
    1. 创建账户(或登录)
    2. 生成您的 API 密钥

    获得密钥后,将其添加到您的 .env 文件中:
    `` 然后向他们展示环境变量格式: - 对于客户端(小部件/无头):NEXT_PUBLIC_TRAILS_API_KEY=your_key- 对于服务器端(直接 API):TRAILS_API_KEY=your_key`

  3. 在他们确认拥有密钥后,继续集成步骤。

步骤 2:推断环境

扫描代码库以查找:
- package.json → React、Next.js、wagmi、viem
- 文件扩展名 → .tsx.ts.js
- 导入模式 → wagmi 钩子、ethers

步骤 3:选择模式并说明理由

说明您推荐哪种集成模式及其原因。

步骤 4:生成代码

输出:
- 安装命令(始终使用最新版本:@0xtrails/trails@0xtrails/trails-api,不要固定版本)
- Provider 配置(如果适用)
- 集成代码片段
- 环境变量用法(引用他们刚刚设置的密钥)

步骤 5:代币/链和调用数据指导

  • 展示如何获取支持的链/代币
  • 如果需要调用数据:帮助使用 viem 编码,解释注资模式的占位符金额

步骤 6:验证与故障排除

  • 验证 Provider 层级(WagmiProvider → TrailsProvider)
  • 检查是否为无头流程渲染了 TrailsHookModal
  • 指向常见问题的故障排除文档

何时搜索文档(MCP)

在以下情况下使用 SearchTrails
- 确切的属性名或配置选项
- 支持的链/代币(可能变化)
- 端点模式和响应格式
- 注资模式中调用数据的占位符金额模式
- 错误代码和故障排除

好的搜索查询示例:
- "Pay mode required props"
- "calldata fund mode placeholder"
- "ExecuteIntent request schema"
- "TrailsProvider config options"
- "supported chains list"


工作示例

示例 1:Next.js + wagmi + 支付小部件

用户说: "我有一个使用 wagmi 的 Next.js 电商应用。我希望客户能用任何代币支付。"

响应:

  1. 模式:小部件(支付模式)—— 您需要即插即用的 UI 进行精确输出支付
  2. 获取 API 密钥:访问 https://dashboard.trails.build 获取您的 API 密钥
  3. 安装
    bash pnpm add @0xtrails/trails
  4. Provider 设置(在 _app.tsx 或布局中):
    ```tsx
    import { TrailsProvider } from '@0xtrails/trails';
    import { WagmiProvider } from 'wagmi';

    export default function App({ children }) {
    return (


    {children}


    );
    }
    5. **小部件用法**:tsx
    import { TrailsWidget } from '@0xtrails/trails';


    ```

示例 2:React + 自定义 UX + 无头钩子

用户说: "我想构建自己的兑换 UI,但使用 Trails 的路由。"

响应:

  1. 模式:无头 SDK —— 使用 Trails 钩子的自定义 UX
  2. 获取 API 密钥:访问 https://dashboard.trails.build 获取您的 API 密钥
  3. 安装
    bash pnpm add @0xtrails/trails
  4. Provider + 模态框(必需):
    ```tsx
    import { TrailsProvider, TrailsHookModal } from '@0xtrails/trails';

    function App() {
    return (



    {/ 您的应用 /}


    );
    }
    5. **钩子用法**:tsx
    import { useQuote, useSupportedTokens } from '@0xtrails/trails';

    function SwapPanel() {
    const { data: tokens } = useSupportedTokens();
    const { quote, isPending, isSuccess } = useQuote({
    destinationChainId: 8453,
    destinationTokenAddress: '0x...',
    destinationAmount: '1000000',
    });

    return (

    );
    }
    ```

示例 3:Node 后端 + API(报价→提交→执行→等待)

用户说: "我需要在后端自动化跨链结算。"

响应:

  1. 模式:直接 API —— 服务器端编排
  2. 获取 API 密钥:访问 https://dashboard.trails.build 获取您的 API 密钥
  3. 选择方法
    • SDK 客户端(Node.js):pnpm add @0xtrails/trails-api
    • 原始 Fetch(AI 代理、Python 等):无需安装,使用 HTTP 端点
  4. SDK 客户端流程
    ```typescript
    import { TrailsAPI } from '@0xtrails/trails-api';

    const trails = new TrailsAPI({ apiKey: process.env.TRAILS_API_KEY });

    async function executeSettlement() {
    // 1. 报价
    const quote = await trails.quoteIntent({
    sourceChainId: 1,
    sourceTokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
    destinationChainId: 8453,
    destinationTokenAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
    amount: '1000000000', // 1000 USDC
    tradeType: 'EXACT_INPUT',
    });

    // 2. 提交(锁定报价)
    const intent = await trails.commitIntent({ quoteId: quote.quoteId });

    // 3. 执行(用户签名,或使用签名者)
    const execution = await trails.executeIntent({
    intentId: intent.intentId,
    // 签名或签名者配置
    });

    // 4. 等待收据
    const receipt = await trails.waitIntentReceipt({
    intentId: intent.intentId,
    timeout: 120000,
    });

    return receipt;
    }
    ```

或原始 Fetch(适用于 OpenClaw 等 AI 代理、Python 等):
``typescript // 无需 npm install - 只需 HTTP fetch const quote = await fetch('https://api.trails.build/quote', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization':Bearer ${process.env.TRAILS_API_KEY}`
},
body: JSON.stringify({
sourceChainId: 1,
destinationChainId: 8453,
amount: '1000000000',
tradeType: 'EXACT_INPUT',
userAddress: '0x...'
})
});

const quoteData = await quote.json();
// 然后通过 fetch 提交、执行和轮询状态
// 完整的原始 fetch 示例请参见 API_RECIPES.md
```

示例 4:带有调用数据的注资模式(DeFi 存款)

用户说: "我希望用户在桥接后将资金存入我的金库合约。"

响应:

  1. 模式:小部件(注资模式)—— 输入驱动并带有目标执行
  2. 获取 API 密钥:访问 https://dashboard.trails.build 获取您的 API 密钥
  3. 关键概念:注资模式是 EXACT_INPUT —— 用户选择输入金额,输出是计算得出的。在调用数据中使用占位符表示目标金额。
  4. 编码调用数据
    ```typescript
    import { encodeFunctionData } from 'viem';

    const vaultAbi = [
    {
    name: 'deposit',
    type: 'function',
    inputs: [
    { name: 'amount', type: 'uint256' },
    { name: 'receiver', type: 'address' },
    ],
    outputs: [],
    },
    ] as const;

    // 对金额使用占位符(Trails 会填充实际值)
    const PLACEHOLDER_AMOUNT = '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff';

    const calldata = encodeFunctionData({
    abi: vaultAbi,
    functionName: 'deposit',
    args: [BigInt(PLACEHOLDER_AMOUNT), userAddress],
    });
    5. **小部件配置**:tsx

    ```


快速参考

获取您的 API 密钥(关键的第一步)

在提供集成代码之前,务必检查用户是否拥有 API 密钥!

如果未找到 API 密钥:

  1. 停止并告知用户:
    ```
    ⚠️ 您需要一个 Trails API 密钥才能使用此集成。

    请访问:https://dashboard.trails.build

    步骤:
    1. 创建账户(或登录已有账户)
    2. 导航到 API 密钥部分
    3. 生成新的 API 密钥
    4. 复制密钥

    获得密钥后,将其添加到您的 .env 文件中并告诉我!
    ```

  2. 等待确认他们拥有密钥后再继续。

  3. 然后向他们展示如何添加:

环境变量

# 对于客户端(小部件/无头 SDK)
NEXT_PUBLIC_TRAILS_API_KEY=your_api_key

# 对于服务器端(直接 API)
TRAILS_API_KEY=your_api_key

切勿在未首先验证用户拥有或可以获取 API 密钥的情况下生成集成代码!

代币/链发现

// 钩子
import { useSupportedChains, useSupportedTokens } from '@0xtrails/trails';

// 函数
import { getSupportedChains, getSupportedTokens, getChainInfo } from '@0xtrails/trails';

按模式划分的交易类型

模式 TradeType 含义
支付 EXACT_OUTPUT 用户支付所需金额以获得精确的目标金额
注资 EXACT_INPUT 用户选择输入金额,目标金额由系统计算
兑换 两者皆可 用户选择方向
收益 EXACT_INPUT 存入 DeFi 协议

其他资源

详细指南请参见 docs/
- TRAILS_OVERVIEW.md — 核心概念
- INTEGRATION_DECISION_TREE.md — 模式选择流程图
- WIDGET_RECIPES.md — 小部件示例
- HEADLESS_SDK_RECIPES.md — 钩子模式
- API_RECIPES.md — 服务器端流程
- CALLDATA_GUIDE.md — 编码目标调用
- TROUBLESHOOTING.md — 常见问题

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor