# Bitroot 开发者指南

Bitroot 是一条 100% 兼容 EVM 的公链，这意味着你现有的以太坊开发工具链——钱包、SDK、合约框架——基本可以直接复用，只需要把网络参数换成 Bitroot 的即可。本指南介绍如何接入 Bitroot 网络、部署和调试合约，以及如何使用三重引擎中面向开发者的能力。

## 1. 概述

在动手之前，先了解几个会反复用到的入口：

- **区块浏览器 BRTSCAN**：<https://devnet.bitroot.co/overview> —— 查看区块、交易、合约状态，也是获取当前网络 RPC 地址、Chain ID 等最新参数的权威来源（这些参数可能随网络版本演进调整，请以浏览器首页公示的信息为准，而不是任何第三方转发的旧文档）。
- **测试网水龙头**：<https://devnet.bitroot.co/faucet> —— 免费领取用于部署和调试合约的测试网 BRT。
- **跨链桥**：<https://bridge.bitroot.co/> —— 资产跨链转入转出。
- **协议代码仓库**：<https://github.com/brt-chain/bitroot> —— 节点部署、协议实现细节、AI Agent 调用接口的具体 ABI 均以仓库内文档为准。

常见任务的分步指南：

- [将 Bitroot 添加到 MetaMask：RPC 与 Chain ID](/zh/developers/add-network)
- [从水龙头领取测试币](/zh/developers/testnet-faucet)
- [用 Hardhat、Foundry 或 Remix 部署智能合约](/zh/developers/deploy-contract)

## 2. 接入 Bitroot 网络

Bitroot 遵循标准 JSON-RPC 接口，任何支持自定义 EVM 网络的钱包（MetaMask、Rabby、OKX Wallet 等）都可以直接添加。以 MetaMask 为例：

1. 打开 MetaMask，点击网络选择器 → “添加网络” → “手动添加网络”。
2. 打开 BRTSCAN（<https://devnet.bitroot.co/overview>），页面顶部或网络信息区通常会给出当前需要填写的 **网络名称、RPC URL、Chain ID、货币符号、区块浏览器 URL** 五项参数——把这些值原样填入 MetaMask 的表单。
3. 保存后切换到 Bitroot 网络，即可看到你的账户余额（0 BRT 属于正常情况，需要先去水龙头领取测试代币）。

> 我们没有在本页写死具体的 RPC 地址和 Chain ID，是因为测试网参数可能随版本升级而变化——写死一个过期值反而会误导你连错网络。请始终以 BRTSCAN 页面当前展示的参数为准。

## 3. 获取测试网代币

访问水龙头页面（<https://devnet.bitroot.co/faucet>），按提示提交你的钱包地址即可领取用于部署合约、支付 Gas 的测试网 BRT。由于 Bitroot 平均 Gas 费在 $0.00007 量级，少量代币通常足够完成大量次数的合约调用和调试。

## 4. 智能合约开发：复用你已经会用的工具

因为 Bitroot 100% 兼容 EVM，以下工具无需任何适配层即可直接使用，只需要把网络配置指向 Bitroot：

**Hardhat**（`hardhat.config.js`）：

```js
module.exports = {
  solidity: "0.8.24",
  networks: {
    bitrootTestnet: {
      url: process.env.BITROOT_RPC_URL, // 从 BRTSCAN 获取当前 RPC 地址
      chainId: Number(process.env.BITROOT_CHAIN_ID), // 从 BRTSCAN 获取当前 Chain ID
      accounts: [process.env.DEPLOYER_PRIVATE_KEY],
    },
  },
};
```

**Foundry**（`foundry.toml` + 环境变量）：

```toml
[rpc_endpoints]
bitroot_testnet = "${BITROOT_RPC_URL}"
```

部署命令与在任何 EVM 链上一样：

```bash
forge create src/MyContract.sol:MyContract \
  --rpc-url $BITROOT_RPC_URL \
  --private-key $DEPLOYER_PRIVATE_KEY
```

**Remix**：在 “Deploy & Run” 面板选择 “Injected Provider - MetaMask”，只要 MetaMask 当前连接的是 Bitroot 网络，编译、部署、调用流程与在以太坊主网上完全一致。

## 5. 用 ethers.js / viem 与网络交互

```ts
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider(process.env.BITROOT_RPC_URL);
const wallet = new ethers.Wallet(process.env.DEPLOYER_PRIVATE_KEY!, provider);

const balance = await provider.getBalance(wallet.address);
console.log(`Balance: ${ethers.formatEther(balance)} BRT`);
```

由于并行化智能执行引擎针对无冲突交易做了并发优化，在批量发送大量互不依赖的交易时（例如空投、批量铸造），可以放心地并发提交而不必人为串行等待每一笔确认，链上会自动识别可并行执行的交易。

## 6. 区块浏览器与合约验证

合约部署完成后，建议在 BRTSCAN 上完成源码验证，方便你自己和其他用户核对合约行为、直接在浏览器里调用只读方法调试。具体验证入口和所需参数以 BRTSCAN 页面提示为准。

## 7. 使用 AI 原生 EVM 能力

Bitroot 与普通 EVM 链的最大差异在于内置的 AI Agent 标准调用接口：智能合约可以直接调用 AI 模型推理，而不需要额外的预言机或链下中继。这部分能力仍在快速迭代中，**具体的合约接口、预编译地址和 ABI 请以协议仓库（<https://github.com/brt-chain/bitroot>）里的最新文档为准**，本页不重复列出可能过期的接口签名。概念上，你可以将其理解为一个可以在 Solidity 里直接 `call` 的"AI 推理预编译合约"，输入数据与输出结果都由零知识证明可验证审计层记录，使得推理结果可以被链上或链下第三方验证，而不需要暴露原始模型权重。

## 8. 安全与最佳实践

- **私钥管理**：测试网调试可以使用明文 `.env` 文件，但正式环境请使用硬件钱包或 MPC 托管方案，不要把私钥硬编码进代码仓库。
- **合约审计**：即使 Bitroot 提供了零知识证明可验证审计层，也不能替代你自己合约逻辑的安全审计——这层能力验证的是"计算过程和结果是否可信"，不能验证"你的业务逻辑是否有漏洞"。
- **Gas 预估**：虽然 Bitroot 的 Gas 费用远低于以太坊主网，但在生产环境中仍建议对批量操作做 Gas 预估，避免因为单笔交易 Gas 上限设置过低导致部分交易失败。
- **网络参数校验**：接入代码里建议对 Chain ID 做运行时校验（`provider.getNetwork()` 后比对），避免因为配置文件里写错网络参数而误操作到其他链。

## 9. 常见问题

**Q：现有的以太坊合约能直接部署到 Bitroot 吗？**
A：只要合约不依赖以太坊特定的预编译合约地址假设，绝大多数标准 Solidity 合约可以直接编译部署，无需修改代码。

**Q：测试网和主网的参数是同一套吗？**
A：不是，请始终在 BRTSCAN 上确认你当前要接入的是哪个网络环境，测试网与未来主网的 RPC、Chain ID 会不同。

**Q：调用 AI 原生 EVM 模块需要额外付费吗？**
A：具体的计费模型以协议仓库文档和官方公告为准，本页不作承诺性描述。

## 10. 资源汇总

| 资源 | 地址 |
| --- | --- |
| 区块浏览器 BRTSCAN | <https://devnet.bitroot.co/overview> |
| 测试网水龙头 | <https://devnet.bitroot.co/faucet> |
| 跨链桥 | <https://bridge.bitroot.co/> |
| 协议代码仓库 | <https://github.com/brt-chain/bitroot> |
| 技术白皮书 | 见站内“研究”→“白皮书” |

如果你在接入过程中遇到本页未覆盖的问题，欢迎通过“媒体联系方式”页面或社区渠道联系我们。
