谁和谁之间有过 RNBW 转账。它由代币诞生以来的全部事件构建,而非抽样。把两万五千个地址一次全画出来是做不到的——只会得到一团没有结构的黑影。所以这里给出同一批数据的两个可读切面:整体的流向,以及最大地址构成的网络。
所有地址被归并为六类。线的粗细是流经的数量,圆点的大小是该类里有多少个地址。把光标停在线上可以看到具体数字。
发行指的是零地址,代币从那里出现,也在那里被销毁。它不是持有者,也不进入任何持有者名单。
流转量最高的三百个地址,以及它们之间的连线。点的大小是流转量,颜色是类别。把光标停上去可以看到标注和余额;点击则在区块浏览器中打开该地址。
只显示这三百个地址彼此之间的连线,而且只保留流量不低于最大连线五百分之一的那些。没有这道门槛,画面会被细如发丝的线条淹没,结构反而看不见。
关系图读起来,往往比数据本身允许的要笃定。有三条界限不能越过。
这是最要紧的一条。被一条线连起来的两个地址,只说明它们之间发生过转账,别的什么也不说明。交易所充值、流动性池和路由合约把所有人和所有人都连在了一起:一个热钱包背后走过的,是成千上万彼此毫不相干的人。「这些地址属于同一个人」这个结论,从这样的图里推不出来——而这正是此类图最容易误导人的地方。
点的大小表示有多少代币从这个地址流经,而不是它上面还剩多少。一个余额为零的过手地址,可能比任何一位真正的持有者都大。余额另外给出,就在光标悬停的提示框里。
一个人会持有好几个地址,而一个交易所地址背后站着成千上万的人。图上的三百个点就是三百个地址,把它们当成三百位参与者是不对的。
从区块 41349994 一直到链的头部。每一笔转账给出一条「转出方 → 接收方」的边;相同的一对会累加,所以一条边记录的是流经总量和转账笔数。这趟扫描可以续跑:它一路保存进度,中断之后从断点继续。
交易所、流动性池、Rainbow 合约和其他合约,都是靠标注认出来的,而标注同时取自多个公开来源。没有标注的地址算作普通钱包——多数时候它也确实就是。
点的位置用的是力导向方法:节点互相排斥,连线彼此牵引。它在每次重建时只算一遍,而不是在每位读者的浏览器里算:三百个节点要算上几秒,在手机上会把标签页卡住,而结果对所有人都一样。初始排布用的是圆周而非随机——否则在数据根本没变的地方,画面也会每次重算都挪一下。
为什么不画完整的图。 代币的历史里有将近二十万对互不重复的「转出方 → 接收方」。这样排布出来是一整团,什么也读不出,体积达到几个兆字节,在浏览器里要算上几十秒。这是这类图固有的界限,不是偷工减料:节点多到一定程度,关系图就不再是图了。所以才有按类别的归并和按流转量的前列——两个切面,各自回答各自的问题。
每天重算一次。以 /api/graph_groups.json 和 /api/graph_top.json 对外提供。