Stable 提供 MCP 服务器、代理技能和纯文本文档文件,以便 AI 编辑器和编码代理可以直接使用 Stable。本页面介绍如何将每个组件集成到您的工作流中,为非 MCP AI 工具提供可复制粘贴的上下文块,以及常见任务的入门提示。
MCP 服务器
Stable 运行两个 MCP 服务器。Docs MCP 在此文档站点中搜索概念、指南、代码片段和合约引用。Runtime MCP 与 Stable 链交互,用于余额查询、交易模拟和执行。
两个服务器都可以添加到任何 MCP 兼容客户端。
Cursor
打开您的 MCP 配置文件并添加:
{
"mcpServers": {
"stable-docs": {
"url": "https://docs.stable.xyz/mcp"
},
"stable-runtime": {
"url": "https://runtime.stable.xyz/mcp"
}
}
}重启 Cursor。通过询问“我如何在 Stable 上发送 USDT0?”进行验证。
Claude Code
claude mcp add stable-docs https://docs.stable.xyz/mcp
claude mcp add stable-runtime https://runtime.stable.xyz/mcp通过询问“搜索 Stable 文档以获取 Gas 豁免集成步骤。”进行验证。
代理技能
代理技能是预定义的工作流,结合了 Docs MCP 和 Runtime MCP。当您要求 AI 执行“发送 100 USDT0 到三个地址”等任务时,该技能会处理整个序列:查找相关文档、解析地址和参数、检查余额、模拟交易并在批准后执行。
技能作为 Claude Code 插件提供。
安装
claude plugin add stable-xyz/agent-skills或者从 Claude Code 市场安装。
有关完整的技能定义和来源,请参阅 agent-skills 存储库。
纯文本文档
对于不支持 MCP 的 AI 工具,Stable 文档以静态文本文件形式提供。
| 文件 | URL | 内容 |
|---|---|---|
llms.txt | https://docs.stable.xyz/llms.txt | 包含标题和描述的页面索引 |
llms-full.txt | https://docs.stable.xyz/llms-full.txt | 单文件完整文档 |
这些文件是静态快照。要获取最新内容,请使用 Docs MCP。
Cursor
- 转到 Settings > Features > Docs。
- 选择 Add 并输入
https://docs.stable.xyz/llms-full.txt。 - 在聊天中使用
@Stable引用。
其他工具
下载 llms-full.txt 并将其包含在您的项目上下文或系统提示中。
Stable 上下文块
将其粘贴到任何 AI 聊天或系统提示的顶部。它为模型提供了在第一次尝试时生成正确的 Stable 代码所需的一切。
# Stable 链上下文
Stable 是一个 Layer 1,其中 USDT0 是原生的 gas 代币。与 EVM 完全兼容。
所有标准 EVM 工具(Hardhat、Foundry、ethers.js、viem)在
调整三个 gas 字段后(参见下面的行为差异)无需更改即可工作。
## 网络
| 字段 | 主网 | 测试网 |
| :-------------- | :--------------------------------------- | :----------------------------------------- |
| 链 ID | 988 | 2201 |
| RPC | https://rpc.stable.xyz | https://rpc.testnet.stable.xyz |
| 浏览器 | https://stablescan.xyz | https://testnet.stablescan.xyz |
| 货币符号 | USDT0 | USDT0 |
## USDT0 合约地址
- 主网: 0x779ded0c9e1022225f8e0630b35a9b54be713736
- 测试网: 0x78cf24370174180738c5b8e352b6d14c83a6c9a9
## 与以太坊的行为差异
1. **Gas 代币是 USDT0,而不是 ETH。** 原生转账中的 `value` 字段
携带 USDT0。费用以 USDT0 计价。
2. **`maxPriorityFeePerGas` 始终为 0。** 没有基于小费的排序。将其
明确设置为 `0n`,否则验证者将拒绝或忽略小费组件。
3. **USDT0 具有双重作用**:原生资产(18 位小数)和 ERC-20(6 位小数)
在同一余额上。`address(x).balance` 报告 18 位小数的 wei;
`USDT0.balanceOf(x)` 报告 6 位小数的单位。由于分数协调,
值可能相差高达 0.000001 USDT0。切勿在内部变量中镜像原生
余额;始终在支付时查询。
4. **原生转账也会发出转账事件。** USDT0 ERC-20 合约上的单个
Transfer 事件监听器涵盖两种转账路径。
5. **单槽终结性(约 700ms)。** 一旦区块提交,就无法
重组。无需等待多次确认。
6. **Gas 豁免** 允许应用程序支付 gas:用户使用 `gasPrice = 0` 进行签名,
由治理注册的豁免包装并提交。合约必须在
豁免的 AllowedTarget 策略上。
7. **EIP-7702** 支持将 EOA 委托给合约(类型 4 交易)。
8. **预编译地址**:Bank `0x...1003`,Distribution `0x...0801`,
Staking `0x...0800`,StableSystem `0x...9999`。
## 常见的错误避免
- 复制以太坊优先费用常量(2 gwei 小费等)。这在 Stable 上
没有效果,并且可能被钱包拒绝。
- 为 ERC-20 USDT0 金额使用 `ethers.parseUnits(x, 18)`。ERC-20 使用 6
位小数;原生转账使用 18 位小数。
- 在 `uint256 deposited` 变量中镜像原生余额。USDT0
基于授权的操作(transferFrom、permit)可以在不调用合约
代码的情况下减少合约的原生余额。
- 将原生或 ERC-20 USDT0 发送到 `address(0)`。这两种情况在 Stable 上都会回滚。
- 假设 `EXTCODEHASH == 0` 表示地址未使用。在 Stable 上,
基于许可的批准可以更改状态而无需增加 nonce。
- 编写 `value: ethers.parseEther(amount, "ether")` 并期望 ETH
语义。该转账发送 USDT0。入门提示
在加载上面的上下文块后,将以下任何内容复制到您的 AI 编辑器中。
部署合约
使用 Foundry 搭建一个名为 `stable-escrow` 的项目。编写一个最简单的
Solidity ^0.8.24 托管合约,包含 deposit() 和 withdraw(amount)
函数,这些函数原生转账 USDT0。使用 address(this).balance 进行
偿付能力检查(切勿在 uint256 中镜像余额)。拒绝
address(0) 接收者。然后生成一个使用
`forge create` 命令,指向 Stable 测试网(RPC https://rpc.testnet.stable.xyz,
链 ID 2201)。发送 USDT0
编写一个使用 ethers v6 的 TypeScript 脚本,它原生发送 0.001 USDT0
从 PRIVATE_KEY 加载的钱包中。使用仅基础费用 EIP-1559 gas
(maxPriorityFeePerGas = 0n, maxFeePerGas = 2 * baseFeePerGas)。目标
Stable 测试网。记录交易哈希和 Stablescan 浏览器 URL。设置 EIP-7702 委托
编写一个使用 ethers v6 的 TypeScript 脚本:
1. 签署一个 EIP-7702 授权,将我的 EOA 委托给 Stable 测试网
(链 ID 2201) 上的 0xcA11bde05977b3631167028862bE2a173976CA11 的 Multicall3。
2. 发送一个类型 4 交易,其 authorizationList: [signedAuth],
to: wallet.address (自调用),以及调用 aggregate3()
以批量处理三个 USDT0 转账(100、200、150 USDT0,6 位小数)的数据。
3. 使用 maxPriorityFeePerGas: 0n。构建订阅合约
为 Stable 上的 EIP-7702 委托编写一个 SubscriptionManager Solidity 合约。
它在订阅者的 EOA 上运行。公开:
- subscribe(bytes32 subId, address provider, uint256 amount, uint256 interval)
只有当 msg.sender == address(this)(订阅者在其自己的 EOA 上)时才可调用。
- collect(bytes32 subId) 只有注册的提供商可调用,只有
当 block.timestamp >= nextChargeAt 时;通过 interval 提前 nextChargeAt
并将 USDT0 转账给提供商。使用测试网
地址 0x78cf24370174180738c5b8e352b6d14c83a6c9a9 的 IERC20 USDT0。
- cancelSubscription(bytes32 subId) 只有订阅者可调用。
为 SubscriptionCreated、SubscriptionCollected、SubscriptionCancelled 发出事件。构建 x402 按次付费 API
编写一个用 TypeScript 编写的 Express 服务器,它公开 GET /weather,价格
为 $0.001 USDT0 (金额: "1000", 6 位小数),使用 @x402/express、
@x402/evm/exact/server 和 HTTPFacilitatorClient 指向
https://x402.semanticpay.io/。使用 Stable 主网 (CAIP-2 eip155:988,
USDT0 在 0x779Ded0c9e1022225f8E0630b35a9b54bE713736)。处理程序应
返回 { weather: "sunny", temperature: 70 }。从 env 中读取 PAY_TO_ADDRESS。
在启动时打印已配置的路由。接下来推荐
- 使用 MCP 服务器付费:将付费 API 封装为 MCP 工具,以便 AI 客户端可以调用和付费。
- 快速开始:结合 AI 上下文,在五分钟内运行第一个交易。
- 与以太坊的区别:深入了解上下文块中的 gas 和 USDT0 语义。

