Virtual Environments 仅在付费计划中可用。要为您的账户启用它们,请联系我们的销售团队以安排通话并讨论升级您的计划。

您可以用它们构建什么
- 本地节点替代方案。 针对一个镜像 Mainnet 状态的网络,编码、测试和调试您 dapp 的每个部分(智能合约、dapp UI、后端、索引层)。
- CI/CD 基础设施。 为每个 pull request 配置一个全新的 Virtual Environment,部署您的合约,运行测试,然后拆除它。GitHub Actions 指南介绍了这种模式。
- Staging 与演示环境。 针对 fork 的 Mainnet 运行完整的 dapp,用于人工 QA、社区测试、合约审计或销售演示。审核人员看到的是真实的区块浏览器;您无需动用真实资金。
- 跨链测试。 将多个网络附加到一个 Virtual Environment 上,端到端演练桥接流程。Multichain Quickstart 引导您完成设置。
Virtual Environments 与公共 testnet 相比如何?
Sepolia 和 Holesky 等公共 testnet 运行自己隔离的链状态,因此缺乏 Mainnet 的流动性、实时预言机价格以及您的 dapp 所依赖的已部署协议。Virtual Environment 则会 fork Mainnet(或 100+ 网络中的任意一个),因此您可以针对真实的生产状态进行测试,拥有永不枯竭的水龙头资金,以及对账户余额、区块号和时间的完全控制。与公共 testnet 不同,它对您的团队保持私有,并且可以按 pull request 创建和销毁。从这里开始
Quickstart
启动您的第一个 Virtual Environment,为账户注资,并发送交易。
Multichain Quickstart
设置一个跨越多个网络的 Virtual Environment,并通过自动桥接中继运行一笔跨链交易。
网络同步模式
每个 Virtual Environment 都有一个网络同步模式,用于控制它在创建后与其父网络的关系:- Static(默认):Virtual Environment 停留在 fork 时的区块头,不接收来自父网络的实时更新。状态仅通过您自己的交易和作弊码进行变更。
- State Only Sync:存储槽会持续跟踪父网络的实时值,直到您的 Virtual Environment 对其进行写入。参见 State Sync。
- Network Mirror:将父网络逐个区块地完整重放到您的 Virtual Environment 上,具有可见的内存池和时间控制。参见 Network Mirror Mode。
构建模块
以下页面解释了 Virtual Environment 的每个部分做什么以及它们之间的关系。在您需要调试问题之前请先阅读它们。Explorer
通过熟悉的区块浏览器 UI 检查您的 Virtual Environment 上的交易、合约、钱包和 RPC 调用。
Unlimited Faucet
为任意账户充值原生货币或 ERC-20 余额,无需真实资金。
State Sync
让存储槽持续跟踪实时 Mainnet 值,直到您的 Virtual Environment 对其进行写入。
Network Mirror Mode
与父网络逐块对齐,具有可见的内存池和时间控制。
Named RPC URLs
为环境的 RPC URL 附加一个固定的、人类可读的名称,使其在重新 fork 后仍然有效。
Multichain Virtual Environments
一个 Virtual Environment、多个网络、共享身份、统一时间线。
Bridges
Multichain Virtual Environment 中各网络之间 LayerZero、Chainlink CCIP 和 Across 的自动中继。
您如何与 Virtual Environment 交互
您可以通过四个界面驱动 Virtual Environment:- Tenderly Dashboard,在其中创建 Virtual Environment、浏览交易、为账户注资、针对环境的当前状态模拟交易,以及配置设置。
- Public RPC,一个标准的 JSON-RPC 端点,支持任何 dapp 或库已经调用的方法。将其用于您的 dapp UI、后端以及您会向外部测试者公开的任何东西。
- Admin RPC,一个增强型 JSON-RPC 端点,增加了用于设置余额、覆盖存储、快进时间、部署任意字节码以及与实时网络同步的作弊码。请在您的开发工具和测试中使用它,而不要在任何外部可访问的地方使用。完整的作弊码集合记录在 Admin RPC 参考中。
- REST API,用于从脚本和 CI 流水线中创建、fork 和删除 Virtual Environments。参见 REST API 参考;GitHub Actions 指南在 pull request 工作流中对其进行了封装。
常见任务
添加到钱包
将 MetaMask 或其他钱包连接到您的 Virtual Environment。
连接您的工具
将 Foundry、Hardhat、ethers、viem 或您的 dapp UI 指向您的 Virtual Environment RPC。
部署和验证合约
使用 Foundry 或 Hardhat 部署,并自动进行合约验证。
模拟交易
在发送之前,针对 Virtual Environment 的当前状态对交易进行试运行。
Fork Virtual Environment
将现有 Virtual Environment 在其当前状态下分支为新的 Virtual Environment。
回滚状态
创建快照并将 Virtual Environment 回滚到这些快照。
支持的网络
Virtual Environments 支持 100+ EVM 网络。完整列表请参见支持的网络。另请参阅
- Quickstart,端到端体验您的第一个 Virtual Environment。
- Stage contracts,与您的团队共享 Virtual Environment。
- Admin RPC 和 REST API 参考资料。
- Solidity Cheatcodes,通过 Virtual Environment 预编译从交易内部操纵状态。