# AI+Web3实战营日志 #10 | 测试网发布

By [Keegan小钢](https://paragraph.com/@keeganlee) · 2025-10-13

---

这是我的 [**AI + Web3 实战营**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495279&idx=1&sn=4369256be0f5ad49989242a35eab3a04&scene=21#wechat_redirect) 的第 10 篇研发日志，前 9 篇如下：

[**AI+Web3实战营日志 #1｜开营**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495285&idx=1&sn=49acd14afddf10e8bd0e0813f07f90a0&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #2 | 完成底层合约**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495299&idx=1&sn=bf08bcdf92558408615ca17c097f46ba&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #3 | Router合约**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495306&idx=1&sn=0d618257cb93b52d90ea9ba790223823&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #4 | Rebalancer合约**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495313&idx=1&sn=414daa096b58785018aa00dc6e3dc70c&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #5 | 完成合约开发**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495320&idx=1&sn=4484cec86a4c52d147f4336dd82a5187&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #6 | 开始合约测试**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495326&idx=1&sn=9c66af2a09d9a67d04f78e2b79054646&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #7 | 完成Core合约测试**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495332&idx=1&sn=96f39b45560d90b6ac259f4719971f23&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #8 | 重构ETFRouterV1**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495336&idx=1&sn=90cfde504973de9848a17f4a7ddc5030&scene=21#wechat_redirect)

[**AI+Web3实战营日志 #9 | 完成第二个里程碑**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495343&idx=1&sn=86428376fa4511d97d3458e07cd7ff2c&scene=21#wechat_redirect)

* * *

另外，关于 AI + Web3 实战营的相关介绍则有如下几篇文章：

[**我要启动 AI + Web3 实战营了**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495268&idx=1&sn=c226a51bc06d180858a41fa9becbf752&scene=21#wechat_redirect)

[**再谈 AI+Web3 实战营：这到底能带给你什么？**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495273&idx=1&sn=628a703d76cc808a0484f576234f2c7a&scene=21#wechat_redirect)

[**AI+Web3实战营，9月15日正式开营**](https://mp.weixin.qq.com/s?__biz=MzA5OTI1NDE0Mw==&mid=2652495279&idx=1&sn=4369256be0f5ad49989242a35eab3a04&scene=21#wechat_redirect)

* * *

**成果**
------

我们的链上 ETF 产品「**BlockETF**」，终于迎来了第三个里程碑——**测试网正式发布！**

大家现在可以直接通过以下地址在测试网上体验申购与赎回流程：

🔗 [**https://blocketf.vercel.app/**](https://link.zhihu.com/?target=https%3A//blocketf.vercel.app/)

页面如下图所示（UI 仍在持续优化中 👇）：

![](https://storage.googleapis.com/papyrus_images/5970447b32278f7c4f1a0962243b68187ea8c47f6ec7874cb1eaaca0adc53241.png)

当前支持的网络为 **BSC Testnet**，后续主网上线将切换至 **BSC Mainnet**。

目前测试网上仅部署了一个 ETF 产品——**Top 5 Crypto**。原计划的资产组合为 **BTC、ETH、XRP、SOL、BNB** 五个，但由于测试网预言机暂不支持 **XRP** 与 **SOL**，最终替换为 **ADA** 与 **BCH**。

页面展示的信息包括：

*   资产 Symbol
    
*   目标权重与当前权重
    
*   储备量、价格与当前价值
    

在资产列表上方，可以看到两项费率设置：

*   **赎回费率：** 0.1%
    
*   **年化管理费率：** 0.5%
    

上方则展示当前 ETF 的**份额价格与 TVL（总锁仓量）**。

右侧为两个功能面板：

*   **My Holdings**：显示你当前持有的 ETF 份额及对应价值。
    
*   **Trade Panel**：用于申购与赎回交易。
    

目前仅支持使用 **USDT** 进行申购。测试网中的 USDT 为我们自发行的 Mock 代币，因此还提供了 **Faucet** 页面，方便用户领取测试用 USDT。

整体界面简单直观，但背后其实隐藏着相当复杂的逻辑与工程工作。

**过程**
------

回顾这一路：

*   **第一个里程碑：** 11 小时完成
    
*   **第二个里程碑：** 36 小时完成
    
*   **第三个里程碑：** 21 小时完成
    

累计投入 **68 小时开发时间**，录制了 **42 段视频**，完整记录了一个链上金融产品从 0 到 1 的全过程。

为了让测试网版本尽可能贴近主网环境，我们在过程中做了大量底层工作。

* * *

### **1️⃣ 资产与申购机制**

主网首个 ETF 的目标是追踪市值前五的加密资产（不含稳定币）：**BTC、ETH、BNB、XRP、SOL**。它们合计占据加密市场 70% 以上的市值，也可以看作是整个行业的“蓝筹指数”。

用户在申购 ETF 时，理论上需投入这五种资产。但从用户体验角度，我们希望只需一键投入 **USDT** 即可完成申购。因此，系统必须支持 **USDT 单资产申购与赎回**。

* * *

### **2️⃣ 测试网资产部署**

在 BSC Testnet 上，我们首先部署了对应的 ERC20 Mock 资产：**USDT、BTCB、ETH、WBNB、XRP、SOL**。

接着，需要为这些资产获取可靠的 USD 价格。最初使用 **Chainlink Oracle**，但其在测试网上仅支持 BTC 与 BNB。我又转向 **Binance Oracle**，发现资产覆盖齐全，但其数据访问需要权限白名单。最终只保留了可访问的 ETH/USD，对 USDT 使用 BUSD/USD 替代，XRP 与 SOL 则替换为 ADA 与 BCH。因此测试网最终资产为：**WBNB、BTCB、ETH、ADA、BCH**，以 **USDT** 作为申购赎回资产。

* * *

### **3️⃣ 流动性与价格同步**

接下来是流动性问题。为了实现 USDT 自动兑换底层资产，我们集成了 **PancakeSwap V3**。这些资产的主要流动性池都在 V3 上，因此我们在测试网手动创建并添加了对应池子。

最棘手的部分是：**如何让池子价格与预言机价格保持同步。** 由于 V3 价格计算较复杂，我让 AI 多次生成算法仍出错，最终选择在 PancakeSwap 官网手动校准流动性价格。价格同步算法也经历了多轮迭代与调试，最终实现了可稳定运行的方案。

此外，我们还 fork 了 **Uniswap/view-quoter-v3**，自建一套支持 `view` 的查询合约，因为 PancakeSwap 自带的 QuoterV2 不支持纯查询调用，使用不便。

* * *

### **4️⃣ 前端与部署**

前端部分几乎完全交由 **Claude Code** 负责，我仅负责反馈交互逻辑的问题。虽然界面目前仍较简陋，但核心交互已经完全可用。

最后，将前端部署至 **Vercel**，即现在你可以访问的： 🔗 [https://blocketf.vercel.app/](https://link.zhihu.com/?target=https%3A//blocketf.vercel.app/)

* * *

**下一步**
-------

测试网发布标志着核心架构已经跑通，下一步就是——**部署并上线主网版本！**

主网首个 ETF 的基本信息如下：

![](https://storage.googleapis.com/papyrus_images/63846ae484814114095bf3c22d4578222262cd9528b3361c3d6d0c40b7466d88.png)

---

*Originally published on [Keegan小钢](https://paragraph.com/@keeganlee/ai-web3-10)*
