在做 Web3 开发和数据分析时,经常会遇到一个很烦的场景:
手里有一批 ENS 域名,需要一个个查:
- 持有地址是谁?
- 有没有反向解析?
- 什么时候过期?
一个一个点开查,效率极低。
于是我花了一周时间,糙了一个极简工具:
批量查询 ENS / Lens 域名 + 一键导出 CSV
这个工具能解决什么问题?
这个工具不是“炫技用”,而是专门解决这些场景:
-
🧠 做链上数据分析,需要批量处理 ENS 数据。
-
🛠 做 Web3 开发,需要快速拿到域名对应地址
-
📊 做项目调研,需要整理一批域名信息
-
💼 接需求时,需要快速交付基础数据。
使用方式非常简单:
粘贴一批域名 → 点击查询 → 导出 CSV 就完事了。
功能一览
目前这个 MVP 支持:
-
查询 ENS / Lens 主域名(.eth / .lens)
-
获取:
a. 持有地址(owner)
b. 反向解析(如果设置了)
c. 过期时间(已转可读格式)
d. 一键导出 CSV(方便直接交付或分析)
在线体验:点击这里
技术实现(核心拆解)
这次我没有做复杂架构,而是走了一个「极简但可复用」的设计:
查询层(ENS / Lens 解耦)
-
ENS:使用 ethers.js + 以太坊主网 RPC
-
Lens:直接调用官方 API
合约调用模块(可复用核心)
这次重点重构了一个通用合约调用工具:
📁 src/utils/contract.ts
特点:
-
统一调用方式
-
解耦 provider / contract
-
可复用到后续所有 Web3 项目
这是这次 MVP 最大的技术沉淀之一
前端批处理 + CSV 导出
-
使用前端 Blob 实现 CSV 导出
-
无后端,纯前端运行
带来的好处:
-
零成本部署(Vercel)
-
无服务器压力
-
结构极简,适合快速迭代
踩过的几个坑,挑几个对后来人有用的说
ENS 地址解析别走弯路
一开始我打算直接从合约层找函数解析地址,结果越搞越复杂。
后来发现:
ethers.js 的 resolveName 一行就能解决
教训: 能用 SDK 的,别自己造轮子。
RPC 稳定性问题
批量查询时,如果 RPC 不稳定,很容易:
- 请求失败
- 数据不一致
解决方式:
- 增加简单重试机制
- 控制请求节奏
UI 框架选择
这次用了 primevue v3:
- 组件丰富
- 可定制性强
但:样式预设(definePreset)需要啃文档
成本 & 开发情况
- ⏱ 开发时间:约 1 周(每天 ~2 小时)
- 💰 成本:0 元(纯前端 + 免费部署)
- 🧱 架构:无后端、纯工具型 MVP
有人用吗?
暂时没有真实用户。
但这个项目的目标也不是做一个“日活产品”,而是:
- 验证一个想法能否快速落地
- 沉淀可复用模块
- 熟悉 ENS / Lens 查询逻辑
- 提升 Web3 工具开发效率
对我来说,这几个目标都已经达成。
下一步可能的扩展
如果后面有真实需求,这个工具可以继续往下扩展:
- 支持更多域名协议(如 Unstoppable)
- 支持 CSV 批量导入
- 查询结果缓存(减少 RPC 请求)
- 多链支持
但是否继续做,取决于真实使用情况。
如果你有类似需求
这个工具本质上是一个「链上数据查询 + 批处理」的基础模型。
如果你有类似需求,比如:
- 批量查询链上数据
- ENS / 地址 / 合约分析工具
- Web3 数据工具开发
- 定制化链上脚本
可以直接交流:
推特:Web3桑水
写在最后
这是我「每月一个 MVP」的第一个项目。
目标很简单:
不纠结、不完美,先把东西做出来。
后面我会持续做更多 Web3 小工具(可能会更硬核一点,比如链上监控类)。
如果你也在做类似的东西,欢迎交流。
P.S. 代码已开源:传送门
下一个 MVP 见。