如何在 Arc 上导出持有者列表:代币和系列都能搞定
在做空投、搭建白名单,或者只对已经进圈的人开放访问之前,有个问题得先弄清楚:现在到底谁手里握着你的代币或系列。要搞定这件事,你得知道如何在 Arc 上导出持有者列表,拿到一份囊括某个代币或 NFT 全部持有者的文件。
无论是针对代币还是 NFT,流程都是一样的。你需要搞清楚的是应该做哪种 snapshot,以及怎样最省事地把它用起来。这篇指南就来讲怎么做。直接开始。
在 Arc 上一步步导出代币持有者列表
Smithii 的 Arc Token Snapshot 直接在 on-chain 上做查询,不依赖外部索引器,也不要求代币出现在任何列表中。它只需要合约地址,所以网络上任何 ERC-20 都能用,无论是不是你自己的。这就是它的界面:

合约地址找到之后,一共五步:
- 把钱包连接到网络。这是支付手续费、让工具为你保存历史记录的前提。
- 停留在 Token Snapshot 标签页,这是处理 ERC-20 的那一个。
- 输入合约:粘贴地址,或者按名称搜索。字段下方有网络上活跃度最高的代币快捷入口。
- 点击 Take Snapshot 并确认支付。签名之前,金额就显示在按钮上方。
- 等待读取完成,然后下载包含地址的 CSV。
无需写代码,在 Arc 上导出系列持有者列表
第二个标签页是 面向 Arc collection 的 NFT Snapshot,通过顶部的标签页与上一个切换。它需要的唯一数据也是一样的,就是合约地址,只不过这里是 ERC-721。由于 NFT 的所有权属于公开信息,Arc 上任何现有 collection 都能用。它长这样:

整个流程跟前面差不多:
- 把 wallet 连到 Arc。没连 wallet 就没法付手续费,导出记录也留不下来。
- 切换到 NFT Snapshot 这个标签页,也就是两个里面的第二个。第一个读的是 ERC-20,识别不了 collection。
- 把 ERC-721 合约地址粘到搜索框里,或者直接输入 collection 名称从列表里选。
- 点 Take Snapshot 并对付款签名。确认之前,总金额就显示在按钮下面。
- 读取完成后下载 CSV。文件还会跟你付款用的 wallet 绑定,万一以后要找回也没问题。
每种列表到底会给你什么
两个标签页的差别就体现在这里。两边导出的都只有地址,别的什么都没有,但它们组织每一行的逻辑不一样,这也决定了文件能拿来干什么。
| Snapshot 代币 (ERC-20) | NFT Snapshot (ERC-721) | |
|---|---|---|
| 一行代表什么 | 持有该代币余额的地址 | 至少持有一件该 NFT 的地址 |
| 重复情况 | 每个持有者一行 | 按持有者去重 |
第二列的去重逻辑值得好好搞清楚,因为很多人都会被绕进去。一个持有 collection 四十件的 wallet 只占一行,跟只有一件的 wallet 完全一样,而且文件里没有任何字段告诉你眼前这行到底是哪种。
用来做 allowlist,这样处理才对:目标是给每个人留一个名额,囤了四十件的人不该占掉四十个位置。但如果你想按持有数量按比例发奖励,这就成了限制;代币那个标签页也是同样的道理,那边同样没有余额数据可以用来分档。
两种列表里,合约都不会带任何标注
对链来说,持有者就是那个记录在链上的地址。而地址背后不一定站着一个能跟你对话的人。
在 ERC-20 的列表里,流动性 pool 会作为一个普通地址出现,任何托管代币的合约也一样。到了 collection 这边,典型情况又不一样:当一件作品在某个市场挂单,而该市场在挂单期间托管这件作品时,那段时间里的持有者就是这个托管合约。放进金库、参与 staking 或者用 NFT 做抵押借贷时也是一样。人还在操作背后,但文件里出现的是合约。
因为这两种导出都不带标注,这些行光看是分辨不出来的。核实成本很低:把你不认识的地址丢到 Arc 浏览器里查一下,看它有没有关联代码。有代码就是合约。发放之前值得做这一步,因为把东西发给一个不知道该拿它怎么办的合约,没人能帮你撤回。
读取之前先想好切点
这个文件就是你按下按钮那一瞬间链上状态的快照。它不会自己更新:之后每一笔转账都会改变现实,而 CSV 保持原样。
这一点对 collection 的影响比对代币更大,因为 NFT 换手不是匀速的,而是一阵一阵的。一条公告、一次拉价,或者二级市场突然活起来,几小时内的变动可能比平静几周都多,所以相隔一小时的两次读取,可能有相当一部分地址对不上。
所以顺序很重要。先定好切点的时间,再执行读取。提前公告『快照将在周五 18:00 抓取』,就能避免那些在半小时前卖掉、结果没进名单的人来找你理论。而如果你想奖励长期持有者,办法就是重复查询:在不同时间跑两次,然后在电子表格里做交集,就能得到两次都出现的地址列表。
在 Arc 上做一个 snapshot 要花多少钱
每次执行 62.5 USDC,两个标签页一口价一样,再加上交易的 gas。因为 Arc 的 gas 也用 USDC 收,整笔支出全在同一种币里,中间不用换算。如果 wallet 还没余额,得先把 USDC 转到这条链上再启动读取。
一口价意味着规模不影响价格:一个五十个 wallet 的代币和一个两万个 wallet 的代币收费一样,两百件的系列和一万件的系列也一样。这带来两个结果。对于大体量,平均每个地址的成本非常低,这跟按条计费的工具养成的直觉正好相反。对于小项目情况反过来,所以每次提取最好都已经明确了用途,别只是出于好奇跑一趟。
继续之前先说下预算:如果这份列表只是用来立刻做一次分发,multisender 本身就能以同样的价格提取出来,省你一步。在这里单独导出更适合你想把文件保存下来、日后重复使用或做对比的场景。
在 Arc 上导出代币持有者能派上什么用场
没有余额、没有数量,看起来像是缺陷,但只要看看这份文件在实际中的用法就明白了。下面这三种场景,只需要地址就够了:
- 平均分发,每个人拿到的数量一样。CSV 可以直接丢进 Arc 的代币批量发送工具,不用调整任何格式。
- 用于 mint、预售或早期访问的 allowlist,唯一要看的就是某个地址在不在名单里。
- 观察你持有者群体的变化。间隔一段时间做两次快照,就能知道有多少新人进来、有多少人离开,以及哪些地址从一开始就一直在。
第三种用法最被低估。用电子表格对比两份文件,你就能得到「留下来的人」和「离开的人」两份名单,这本身就是很棒的分层依据,而且完全不需要余额数据。在 Arc 这种刚起步的链上,这种追踪的价值更大,因为持有者基数还小,每一次进出都很关键。
为了说清楚,也讲讲它做不到的事。你没办法按持有量分档发放,也没法衡量 supply 的集中度,更看不出哪个 wallet 一个人吃下了半个系列。这三个问题得靠链上浏览器来回答,浏览器会显示余额,也能针对某个具体地址做细查。snapshot 给你的是覆盖面,浏览器给你的是细节。
FAQ
在 Arc 上做一次持有者 snapshot 要多少钱?
每次提取 62.5 USDC,统一价,再加上网络的 gas 费,gas 同样用 USDC 结算。代币标签页和系列标签页的价格一样,不会因为持有者数量或系列规模而变化。
CSV 里会包含每个 wallet 的余额或 NFT 数量吗?
两种情况都不会。ERC-20 的导出只有地址,没有余额,也没有 supply 占比;系列的导出同样不含 token ID,也不带每个持有者拿了几件的数量。如果你的活动需要按持仓给奖励做加权,这些数据得在设计之前用别的方式另外收集。
我能提取不属于我的代币或系列的持有者吗?
可以。谁持有什么,在区块链上是公开信息,所以只要有合约地址就够了,不需要跟项目方有任何关系。这也是常见做法:向相关项目的社区做一次分发,或者研究另一个项目真实的持有者规模。
我该用哪个标签页,代币的还是 NFT 的?
看合约类型选。如果资产是可替代的,大家持有的是数量,那就是 ERC-20,走 Token Snapshot。如果每一份都独一无二、按件持有,那就是 ERC-721,走 NFT Snapshot。把合约放到错误的标签页里,不会返回任何结果。
能用来给持有者做 airdrop 分发吗?
只要每个人拿到的都一样,就可以用。一行一个地址的文件,不用改任何东西就能直接对接这条链的 multisender。它做不到的是按每个人的持仓做分级发放,因为持仓数字并不出现在 CSV 里。
我能找回以前做过的 snapshot 吗?
可以。工具会保留一份和你 wallet 关联的提取历史,连上 wallet 就能重新看到之前做过的那些记录。即便如此,每份 CSV 最好还是自己另存一份,尤其是当你打算之后对比两个不同时间点的名单时。
总结
现在你已经知道 怎么在 Arc 上做一次 snapshot,代币和 NFT 系列都覆盖了,剩下的就是决定这份名单要拿来做什么。如果你在盘点自己项目的 wallet,这份数据能帮你了解 持有者数量有没有变化、有没有增长,也可以在自己的社区里做一次奖励性质的 airdrop。
把预期摆正之后,这份文件其实覆盖了绝大多数场景下真正需要的事:筛选访问权限、搭建 allowlist,或者作为一次平均分发的名单。确定截取时间点,执行提取,在签任何东西之前先把名单过一遍。








