从0到1构建你的Dune Analytics看板(基础篇)
写在前边 本篇内容主要是目的是介绍一些略微偏技术层面的基础知识,这些是学习使用Dune Analytics的前置条件。不要对这些稍微稍微偏技术内容有抵触心理。实际使用中经常用到的SQL语法其实就那几种,你可以认为其实就是学了几个单词的用法,花时间认真看完基本都能看懂 有任何问题或者建议欢迎DM Twitter@Pro_0xBi一、基础概念首先搞明白3个基础的问题?1、Dune Analytics是什么?简单来说是: 1.Dune Analytics团队把区块链上的数据清洗后形成结构化的数据存入数据仓库,然后做了一个工具让有一些SQL基础的人能够按照自己的需求灵活地查询数据。 2.平台还的提供了数据可视化的能力,查出来的数据可以方便地做成做成图以及看板2、数据仓库是什么?说人话就是说就是出于数据统计的需要,把一些数据分门别类地存储起来,存储的载体是【数据表】。针对某一个或者一些主题的一系列【数据表】合在一起就是数据仓库。 注意: 这里的数据可以是结果数据(比如Uniswap上线以来某个交易对每天的交易量统计) 也可以是过程数据(Uniswap上线以来某个交易对发生的每一条交易记录明...
【持续更新】链上数据分析内容汇总
Twitter: @Pro_0xBi目录一、从0到1构建你的Dune Analytics看板从0到1构建你的Dune Analytics看板(基础篇):https://mirror.xyz/0xbi.eth/6cbedGOx0GwZdvuxHeyTAgn333jaT34y-2qryvh8Fio 从0到1构建你的Dune Analytics看板(实战篇):https://mirror.xyz/0xbi.eth/603BIaKXn7s2_7A84oayY_Fn5XUPh6zDsv2OlQTdzCg 从0到1构建你的Dune Analytics看板(常用表结构):https://mirror.xyz/0xbi.eth/uSr336PzXtqMuE_LPBewbJ1CHN2oUs40-TDET2rnkqU二、BTC的周期顶部以及底部判断方法研究1.基于MVRV以及CDD的大周期的抄底方法 2.基于永续合约持仓的衍生品偏离度风险指标三、基于以太坊链上数据的分析以及看板工具1.著名巨鲸在以太坊上持仓情况跟踪 2.追踪以太坊上某个钱包的某个Token持仓变化(小时级别) 3.Ethereum ...
从0到1构建你的Dune Analytics看板(常用表结构)
写在前边 我自己相对熟悉Ethereum的表,这里只包含Ethereum相关的表结构 其他网络的表后续有机会再补充吧。另外本篇的内容之前写过一个Notion版本,如果看过那个这篇就不用看了,基本跟那个一致 有任何问题或者建议欢迎DM Twitter@Pro_0xBi一、通用说明1.合约地址或者钱包地址用0x.....中的 ’ 0 ’ 在表里都默认替换成了 ’ \ ’如地址 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f 实际存的数据是:\x9b22a80d5c7b3374a05b446081f97d0a34079e7f a.如果想在SQL中引入变量可以用如下处理,可以避免输入带 ’ \ ’这种奇怪的格式:wallet_address= CONCAT('\x', substring('{{wallet_address}}' from 3))::bytea b.对外展示某个字段的时候可以用转成字符串然后用replace(这个方法有点笨,可能有更好的方法)replace(cast(wallet_address as varchar),'\','0'...
Data Analytics
从0到1构建你的Dune Analytics看板(基础篇)
写在前边 本篇内容主要是目的是介绍一些略微偏技术层面的基础知识,这些是学习使用Dune Analytics的前置条件。不要对这些稍微稍微偏技术内容有抵触心理。实际使用中经常用到的SQL语法其实就那几种,你可以认为其实就是学了几个单词的用法,花时间认真看完基本都能看懂 有任何问题或者建议欢迎DM Twitter@Pro_0xBi一、基础概念首先搞明白3个基础的问题?1、Dune Analytics是什么?简单来说是: 1.Dune Analytics团队把区块链上的数据清洗后形成结构化的数据存入数据仓库,然后做了一个工具让有一些SQL基础的人能够按照自己的需求灵活地查询数据。 2.平台还的提供了数据可视化的能力,查出来的数据可以方便地做成做成图以及看板2、数据仓库是什么?说人话就是说就是出于数据统计的需要,把一些数据分门别类地存储起来,存储的载体是【数据表】。针对某一个或者一些主题的一系列【数据表】合在一起就是数据仓库。 注意: 这里的数据可以是结果数据(比如Uniswap上线以来某个交易对每天的交易量统计) 也可以是过程数据(Uniswap上线以来某个交易对发生的每一条交易记录明...
【持续更新】链上数据分析内容汇总
Twitter: @Pro_0xBi目录一、从0到1构建你的Dune Analytics看板从0到1构建你的Dune Analytics看板(基础篇):https://mirror.xyz/0xbi.eth/6cbedGOx0GwZdvuxHeyTAgn333jaT34y-2qryvh8Fio 从0到1构建你的Dune Analytics看板(实战篇):https://mirror.xyz/0xbi.eth/603BIaKXn7s2_7A84oayY_Fn5XUPh6zDsv2OlQTdzCg 从0到1构建你的Dune Analytics看板(常用表结构):https://mirror.xyz/0xbi.eth/uSr336PzXtqMuE_LPBewbJ1CHN2oUs40-TDET2rnkqU二、BTC的周期顶部以及底部判断方法研究1.基于MVRV以及CDD的大周期的抄底方法 2.基于永续合约持仓的衍生品偏离度风险指标三、基于以太坊链上数据的分析以及看板工具1.著名巨鲸在以太坊上持仓情况跟踪 2.追踪以太坊上某个钱包的某个Token持仓变化(小时级别) 3.Ethereum ...
从0到1构建你的Dune Analytics看板(常用表结构)
写在前边 我自己相对熟悉Ethereum的表,这里只包含Ethereum相关的表结构 其他网络的表后续有机会再补充吧。另外本篇的内容之前写过一个Notion版本,如果看过那个这篇就不用看了,基本跟那个一致 有任何问题或者建议欢迎DM Twitter@Pro_0xBi一、通用说明1.合约地址或者钱包地址用0x.....中的 ’ 0 ’ 在表里都默认替换成了 ’ \ ’如地址 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f 实际存的数据是:\x9b22a80d5c7b3374a05b446081f97d0a34079e7f a.如果想在SQL中引入变量可以用如下处理,可以避免输入带 ’ \ ’这种奇怪的格式:wallet_address= CONCAT('\x', substring('{{wallet_address}}' from 3))::bytea b.对外展示某个字段的时候可以用转成字符串然后用replace(这个方法有点笨,可能有更好的方法)replace(cast(wallet_address as varchar),'\','0'...
Data Analytics

Subscribe to 0xBi

Subscribe to 0xBi
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers

写在前边
本篇内容主要是一步一步地说明构建一个看板的过程,做一个整理钱包行为与以太坊币价关系的分析看板,以孙哥钱包(0x3ddfa8ec3052539b6c9549f12cea2c295cff5296)为例
有任何问题或者建议欢迎DM Twitter@Pro_0xBi
我们观察整理钱包的行为其实就是看钱包跟交易所之前的充提行为。但是有的时候整理钱包并不会直接整理到交易所,有可能中转一下再进入交易所。所以理论用一个钱包以及他的所有关联钱包作为一个集合来观察这个行为会比较合适。这里我们做1个简化:以孙哥为例,做一个钱包转入、转出ETH的行为与ETH价格之间的关系的分析。
另外
如果你想按照相对严谨的计算口径做分析,我这里提供两个可能有用的东西
1.这个Query可以用来取某一个钱包的疑似关联钱包,里边的逻辑可以跟自己需要做调整
(查找跟这个钱包有ETH转入转出关系的所有钱包,累积转入或者转出需要超过100ETH)
https://dune.com/queries/666266
2.如果你要看充提交易所的行为,那需要首先有交易所的地址。我自己整理了一批交易所标签,可以按照如下方式取到
select
"address"
from dune_user_generated.pro_0xBi_address_label_dim
where cate in ('Exchange地址')
group by
"address"
简单来讲我们需要2个数据
ETH Transfer数据
ETH 价格数据
首先ETH Transfer数据,其实我也不知道怎么算。我之前算ERC20的数据比较多,但是纯ETH的数据还真没算过,一般这种情况下我会有几个解决方案:
1.去官网Discover板块搜关键词,看看别人是怎么写的,比如搜ETH Balance 、ETH Transfer 之类的。
2.官方文档里搜关键词
3.去Discord里问官方的工作人员
我自己首先试了试Discover板块搜ETH Balance(之所搜Balance是因为一般Balance是从明细聚合过来的,如果有Balance的计算口径,自己拆一下就成了Transfer数据)。发现刚好有人写过类似的逻辑就点进去看看

自己输入了几个地址跟区块链浏览器对比了一个看起来是没有问题的,然后就去点击具体的Query去看具体的计算逻辑

把SQL贴到编译器软件(我自己用的sublime)里,调整一下成自己习惯的缩进形式

大概读一下SQL的整体逻辑
子查询1
看起来是算了一个钱包所有的转账明细记录,子查询的结果可以从
tbl_transactions_raw中取
子查询2
基于tbl_transactions_raw,将所有的转账的数值按天聚合(group by),子查询的结果可以从tbl_intermediate中取
子查询3
通过generate_series函数创建一个日期序列,然后left join 子查询2的结果tbl_intermediate,子查询的结果可以从tbl_output中取
最终的Query
从tbl_output中取所有列然后加一个2个时间变量(开始时间跟结束时间),这样Query可以选开始日期以及结束日期
SQL查询的结果如下图,可以发现几乎跟我们需要的一样的,那么研究清楚这个SQL基本上后续想算类似的数据都知道该怎么写了。这里我就不挨个部分解释了,大家自己研究吧,语法相关的东西非常多。总之ETH Transfer数据的计算逻辑搞定了。

同样的方法你去Discover里搜 ETH Price ,也能找到别人写好SQL或者去官方DOC里搜索也能找到相关的计算口径。这里放个计算口径就不详细说了
--这里取了一个平均值
SELECT date_trunc('day', minute) as day,
AVG(price) as average
FROM prices."layer1_usd"
WHERE "symbol" = 'ETH' AND date_trunc('day', minute) > date_trunc('day', now()) - interval '30 days'
GROUP BY 1
ORDER BY day DESC
参考以上口径,按照自己的缩进习惯以及字段命名写了整个的SQL,然后做简单的测试,随便找个钱包比如统计孙哥的钱包,随便去统计出来某一天的结果跟以太坊浏览器里的明细数据做比较看是否一致。
https://dune.com/queries/536031

SQL的逻辑跟之前那个差不多,只不过我改成了我自己习惯的写法以及命名。
额外增加的是一个关于ETH Price价格的子查询以及在最终查询结果的时候left outer join ETH Price的字段
写好SQL后点击Run,过一会计算结果就会出来,然后你会发现下方有一个【New visualization】,选好使用的图表类型,点击【Add visualization】就可以产生一个可视化的图,可选的可视化图如下
Bar Chart 柱状图
Area Chart 面积图
Scatter Chart 散点图
LIne Chart 折线图
Pie Chart 饼图
Counter 数据块(单独一个方块,显示一个数据)
Table(纯表格)

如果选Bar Chart会出现如下的图,再往下是图的参数控制面板,我把常用的几个参数标了出来


这里需要用双轴模式,因为单轴的话以太坊价格的变化就不太明显了
,另外最好把价格调整成折线比较好(这里补充一个参数Chart Type,之前忘记说了,这个地方可以改图的类型),调整后的结果如下图所示。这样其实就比较明显了,可以发现孙哥整理钱包跟以太坊价格还是右非常明显的关系的,孙哥逃顶太稳了,或者说顶就是孙哥砸出来的🐶

单图做完后点击Add to Dashboard就可以把单图加入到某个Dashboard里。多个单图就组成了一个完整的Dashboard

点击Add按钮单图就加入了某个看板,如果没有任何看板可以点击New Dashboard创建(只需要输入Dashboard名称),然后再点击建好的Dashboard后边的【Add】

切换到My Creation,点击Dashboard就可以看到刚才创建的Dashboard

点击【Edit】进入编辑模式

完成需要的配置后点击【Done】,保存修改

以上就是做一个Dashiboard的全过程,其实主要的工作量都在确认SQL的计算口径以及验证数据准确性上,单纯可视化其实非常简单

写在前边
本篇内容主要是一步一步地说明构建一个看板的过程,做一个整理钱包行为与以太坊币价关系的分析看板,以孙哥钱包(0x3ddfa8ec3052539b6c9549f12cea2c295cff5296)为例
有任何问题或者建议欢迎DM Twitter@Pro_0xBi
我们观察整理钱包的行为其实就是看钱包跟交易所之前的充提行为。但是有的时候整理钱包并不会直接整理到交易所,有可能中转一下再进入交易所。所以理论用一个钱包以及他的所有关联钱包作为一个集合来观察这个行为会比较合适。这里我们做1个简化:以孙哥为例,做一个钱包转入、转出ETH的行为与ETH价格之间的关系的分析。
另外
如果你想按照相对严谨的计算口径做分析,我这里提供两个可能有用的东西
1.这个Query可以用来取某一个钱包的疑似关联钱包,里边的逻辑可以跟自己需要做调整
(查找跟这个钱包有ETH转入转出关系的所有钱包,累积转入或者转出需要超过100ETH)
https://dune.com/queries/666266
2.如果你要看充提交易所的行为,那需要首先有交易所的地址。我自己整理了一批交易所标签,可以按照如下方式取到
select
"address"
from dune_user_generated.pro_0xBi_address_label_dim
where cate in ('Exchange地址')
group by
"address"
简单来讲我们需要2个数据
ETH Transfer数据
ETH 价格数据
首先ETH Transfer数据,其实我也不知道怎么算。我之前算ERC20的数据比较多,但是纯ETH的数据还真没算过,一般这种情况下我会有几个解决方案:
1.去官网Discover板块搜关键词,看看别人是怎么写的,比如搜ETH Balance 、ETH Transfer 之类的。
2.官方文档里搜关键词
3.去Discord里问官方的工作人员
我自己首先试了试Discover板块搜ETH Balance(之所搜Balance是因为一般Balance是从明细聚合过来的,如果有Balance的计算口径,自己拆一下就成了Transfer数据)。发现刚好有人写过类似的逻辑就点进去看看

自己输入了几个地址跟区块链浏览器对比了一个看起来是没有问题的,然后就去点击具体的Query去看具体的计算逻辑

把SQL贴到编译器软件(我自己用的sublime)里,调整一下成自己习惯的缩进形式

大概读一下SQL的整体逻辑
子查询1
看起来是算了一个钱包所有的转账明细记录,子查询的结果可以从
tbl_transactions_raw中取
子查询2
基于tbl_transactions_raw,将所有的转账的数值按天聚合(group by),子查询的结果可以从tbl_intermediate中取
子查询3
通过generate_series函数创建一个日期序列,然后left join 子查询2的结果tbl_intermediate,子查询的结果可以从tbl_output中取
最终的Query
从tbl_output中取所有列然后加一个2个时间变量(开始时间跟结束时间),这样Query可以选开始日期以及结束日期
SQL查询的结果如下图,可以发现几乎跟我们需要的一样的,那么研究清楚这个SQL基本上后续想算类似的数据都知道该怎么写了。这里我就不挨个部分解释了,大家自己研究吧,语法相关的东西非常多。总之ETH Transfer数据的计算逻辑搞定了。

同样的方法你去Discover里搜 ETH Price ,也能找到别人写好SQL或者去官方DOC里搜索也能找到相关的计算口径。这里放个计算口径就不详细说了
--这里取了一个平均值
SELECT date_trunc('day', minute) as day,
AVG(price) as average
FROM prices."layer1_usd"
WHERE "symbol" = 'ETH' AND date_trunc('day', minute) > date_trunc('day', now()) - interval '30 days'
GROUP BY 1
ORDER BY day DESC
参考以上口径,按照自己的缩进习惯以及字段命名写了整个的SQL,然后做简单的测试,随便找个钱包比如统计孙哥的钱包,随便去统计出来某一天的结果跟以太坊浏览器里的明细数据做比较看是否一致。
https://dune.com/queries/536031

SQL的逻辑跟之前那个差不多,只不过我改成了我自己习惯的写法以及命名。
额外增加的是一个关于ETH Price价格的子查询以及在最终查询结果的时候left outer join ETH Price的字段
写好SQL后点击Run,过一会计算结果就会出来,然后你会发现下方有一个【New visualization】,选好使用的图表类型,点击【Add visualization】就可以产生一个可视化的图,可选的可视化图如下
Bar Chart 柱状图
Area Chart 面积图
Scatter Chart 散点图
LIne Chart 折线图
Pie Chart 饼图
Counter 数据块(单独一个方块,显示一个数据)
Table(纯表格)

如果选Bar Chart会出现如下的图,再往下是图的参数控制面板,我把常用的几个参数标了出来


这里需要用双轴模式,因为单轴的话以太坊价格的变化就不太明显了
,另外最好把价格调整成折线比较好(这里补充一个参数Chart Type,之前忘记说了,这个地方可以改图的类型),调整后的结果如下图所示。这样其实就比较明显了,可以发现孙哥整理钱包跟以太坊价格还是右非常明显的关系的,孙哥逃顶太稳了,或者说顶就是孙哥砸出来的🐶

单图做完后点击Add to Dashboard就可以把单图加入到某个Dashboard里。多个单图就组成了一个完整的Dashboard

点击Add按钮单图就加入了某个看板,如果没有任何看板可以点击New Dashboard创建(只需要输入Dashboard名称),然后再点击建好的Dashboard后边的【Add】

切换到My Creation,点击Dashboard就可以看到刚才创建的Dashboard

点击【Edit】进入编辑模式

完成需要的配置后点击【Done】,保存修改

以上就是做一个Dashiboard的全过程,其实主要的工作量都在确认SQL的计算口径以及验证数据准确性上,单纯可视化其实非常简单
No activity yet