Dune的使用指南

Dune Analytics 号称“平民版 Nansen”、“链上数据分析师神器”

Dune官方的用例分析中提到三类使用场景

行业分析 (NFT, DEX, Lending)

项目分析 (Tornado, OpenSea)

生态系统分析 (Gas Price, DeFi Adoption)

1/ Dune能跟踪项目的哪些数据 Dune目前支持5条链,你可以获取其所有链上交易记录数据。 经过一定的筛选、解析、汇总

你可以跟踪项目的如下数据: 用户量 交易量、锁仓量 (TVL) 数据增长趋势

极值、均值、数据分布

针对特定项目,我们筛选有价值的数据汇总呈现(数据随时间自动更新)

dune数据呈现形式
dune数据呈现形式

2/ 新手如何入门 Dune

入门Dune比你想象中的要容易些,尤其是仅掌握基本技能

SQL 查询语句基础

Etherscan 网站使用及解读

DeFi 基础知识

智能合约基础概念

以下是适合零基础小白入门的极简教程

1/ 何谓 Dune? Dune 作为一款链上数据研究分析的强大工具,经过4轮融资,目前估值已达10亿美元。 用户通过类SQL的数据库查询语言,从 Dune 缓存的区块链数据仓库中检索、筛选、提取、聚合,形成一个个 Query,再对查询到的数据进行可视化,最终汇总而成一个个 Dashboard 面板

2/ 何谓数据仓库? 区块链本质上是一个去中心化的账本,所有过往的交易转账、合约调用形成了一条条的交易记录明细,包含交易时间、转入、转出地址、交易金额、调用信息、合约事件、tx_hash 等数据。 Dune 将以上所有数据分门别类进行存储形成数据仓库,供有需要的人调用、查询、分析(可谓功德无量)

3/ 何谓 SQL? SQL 即“结构化查询语言”,专用于数据库相关的查询、管理。 在 Dune 中,我们用 SQL 查询语句来获取所有想要的数据,构建成对应的 “Query”

4/ 何谓数据表? 每一个数据表(table)可以视作一个超大的 Excel 表格,按顺序记录了所有与之相关的数据。 Dune 提供了很多内置的知名协议专属的“数据表dataset”。 注册登陆你的 Dune 账户,点击顶部的"New Query"即可打开如下页面: 左侧即为内置数据表,右侧是“查询语句”和“查询结果”

数据表
数据表

5/ 常用数据表 除了内置的数据表外,还有些常用的数据表,比如: 最常用的 ethereum.transactions,可以查询所有的以太坊链上交易信息,包括了普通转账和合约调用等信息

常用数据表
常用数据表

6/ 数据表里有什么?

不同数据表,提供的内容各有迥异。 以 "ethereum.transactions" 为例,表内提供了: block_time 区块时间,from 发起地址,to 转入地址(或调用的合约地址),value 转账金额,data 附加数据(合约调用的input data)等

数据表里包含的信息
数据表里包含的信息

7/ SQL 查询语句怎么写?

基本的 SQL 查询语句: select : 取什么数据 from: 从哪里取数据 where: 限制条件是什么 order by: 根据什么排序 limit: 限制取回的数据条数

查询语句
查询语句

8/ 你的第一条 Dune

查询语句 打开 Dune 的 "New Query",粘贴以下语句 select * from ethereum.transactions limit 5 点击 "Run" 稍等即可在"Query Results"看到查询结果 语句中的 * 代表查询所有字段,limit 5 是为了限制数据取回的数量,不然你就是在告诉 Dune 要取回以太坊链上的所有交易数据

简单查询语句
简单查询语句

9/ 更复杂的查询语句

现在让我们来试试更复杂(也更有趣)的 Dune 查询语句:查询 V神钱包 的链上交易信息 这次我们新增了 where "from" 限制条件,只筛选“V神”的钱包地址,order by 语句限定排序条件,desc 表降序 点击链接即可复制语句,或 fork 后自己该参数运行 https://dune.com/queries/724390

复杂查询语句
复杂查询语句

10/ 更有用的查询语句

现在,让我们筛选一些“更有用”的信息,比如:转账金额 这次我们 select 选取两个字段: block_time 和 value 通过 value/1e18 计算公式,换算为 ETH 单位, as 关键词为其取一个好听的别名 第5行 and 关键词指 where 下多个限定条件取交集 链接:https://dune.com/queries/728779

更有用的查询语句
更有用的查询语句

11/ 你的第一个可视化图表

数据已有,可视化图表呼之欲出 对于这种随时间变动的数值,最普遍使用的图表就是bar chart (条形图、柱状图)了 在查询结果顶部点击"New visualization",选择“Bar Chart”,看到系统自动帮我们把 X,Y 轴都选好了。数据较多的情况下,则需要手动选择Y轴数据

图表设置
图表设置

12/ Sum函数求和

一个最普遍的数据统计需求就是:加总求和 我们对筛选到的数据,直接使用 sum 函数即可 sum(value/1e18) as "total" 可视化图表选择 Counter,修改 Title ,就有了如图的汇总数据:83.25万 ETH

求和语句
求和语句

13/ 举一反三

既然可以统计所有从 V神 钱包发出的交易,自然可以统计 V神 钱包接收的所有交易数据。 举一反三,只需要修改 where 限制条件语句中的 "from" 为 "to" 即可 运行,V神 钱包总计接收到 69.6万 ETH

接收计算
接收计算

13/ 你的第一个 Dune 数据看板

保存前面每一个 Query ,现在来搭建你的首个 Dune Dashboard 首页点击"New Dashboard",或直接在 Query 结果页面点击"Add to dashboard",输入名字即可 建议:首次取名选简短的英文,这会被用在url上,之后再改成完整名称

14/ 分类汇总 group by 另一个常见的数据统计需求:分类汇总 我们汇总统计下 V神 每月的转入、转出ETH总额 第1行 date_trunc('month', block_time) 称为截断日期函数,用于将时间间隔截断为指定的精度级别 第2行记得要加 sum 对当月的 ETH 求和 group by 1 即按第一个字段 "date" 进行分类汇总

post image

15/ 聚合函数

count SUM、AVG、MAX、MIN、COUNT 统称为聚合函数,用于将组中的行汇总为单个值。 之前提到的 sum 用于求和,count 则用于统计查询记录的总数目 比如我们统计下 V神 钱包总计对外发出交易的次数 select count(*)

post image

16/ 累计求和

Cumulative Sum 累计求和,在前一项数据基础上,加上当前数据,不断重复。 一般先按日求和,再不断累加汇总。比如统计某个协议有史以来所有充值到合约地址的ETH总额。 Query 代码有些复杂,但新人小白也有必杀技: Fork并 修改关键参数 修改第8行参数即可 https://dune.com/queries/732520

post image

17/ fork 神技能

新人小白最重要的一门技能:fork 神技 站在前辈大神的肩膀之上,能让我们光速入门。越过陡峭的学习曲线,通过修改参数来实现同类功能,获取心仪的数据。 在任一看板的图表区域点击左上角Query名字即可查看完整SQL查询语句。Fork,修改关键参数后运行 https://dune.com/queries/326596/621471…

fork
fork