批量查 ENS 域名,我做了个极简工具(支持一键导出 CSV)

0 阅读3分钟

在做 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桑水

邮箱:sangshui.ace@gmail.com


写在最后

这是我「每月一个 MVP」的第一个项目。

目标很简单:

不纠结、不完美,先把东西做出来。

后面我会持续做更多 Web3 小工具(可能会更硬核一点,比如链上监控类)。

如果你也在做类似的东西,欢迎交流。


P.S. 代码已开源:传送门

下一个 MVP 见。