Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Stable 上的合约

Stable 完全兼容 EVM。Solidity、Vyper、Hardhat、Foundry、ethers.js 和 viem 都无需修改即可使用。只要将工具指向 Stable 的 RPC,现有合约即可原样部署。在标准 EVM 之上,Stable 将协议级模块(Bank、Distribution、Staking)以预编译合约的形式暴露在固定地址上,因此你的 Solidity 可以直接调用质押和奖励分发功能,而无需重新实现它们。

你可以构建什么

  • 标准应用合约(ERC-20、ERC-721、托管、AMM),使用任意 EVM 工具链。
  • 经过验证、已索引的合约,在 Stablescan 上通过 ethers.js 提供实时事件流。
  • 协议集成合约,可从 Solidity 调用 Bank / Distribution / Staking 预编译合约。
  • 系统交易监听器,通过标准的 eth_getLogs 监视协议发出的事件(例如解绑完成)。

Stable 的不同之处

  • USDT0 是 gas 代币。 maxPriorityFeePerGas 必须为 0。原生转账中的 value 字段携带的是 USDT0,而不是 ETH。参见使用 USDT0 作为 gas
  • USDT0 具有双重角色。 持有原生 USDT0 的合约,其余额可能因 ERC-20 的 transferFrompermit 而发生变化——切勿在 uint256 中镜像原生余额。参见 Stable 上的 USDT0 行为
  • 预编译地址在测试网和主网中是固定的。 将它们作为常量固化到你的合约中。

从这里开始

  • 部署 — 搭建 Foundry,配置 Stable,并部署 Counter。
  • 验证 — 使用 forge verify-contract 将源码上传到 Stablescan。
  • 索引 — 使用 ethers.js 订阅事件并回填历史日志。

推荐下一步