[Tool]🐕 CKB DAO Watchdog: Open-Source DAO Voting Verification Tool(开源的 DAO 投票验证工具)

Hey everyone!

I noticed our community lacks a DAO voting verification tool , which prevents most community members from participating in the verification of voting processes and results. This isn’t ideal for DAO governance—after all, transparency and verifiability are at the core of DAO governance .

So, over the past couple of days, I upgraded a verification tool I wrote earlier and named it CKB DAO Watchdog :dog:—yes, the watchdog for CKB DAO!

GitHub Repository : GitHub - CKBFansDAO/ckb-dao-watchdog


:bullseye: What Does This Tool Do?

Simply put, it helps us verify voting results :

  1. Input a Metaforo voting page URL
  2. Automatically fetch all voting options and voter information
  3. Query each voter’s actual on-chain DAO weight one by one
  4. Compare the weight displayed on Metaforo with the actual on-chain weight
  5. Generate detailed verification reports (JSON + CSV formats)

Key point : All data is queried in real-time from the blockchain—transparent and publicly verifiable!

After opening the generated CSV file, focus on the ⚠️need_review column—if it shows TRUE , that record needs manual review.


:open_book: How to Use?

The repository contains complete bilingual documentation (English and Chinese). Choose the appropriate guide based on your preference.

Output Example here: ckb-dao-watchdog/dao-v1.0/README.md at main · CKBFansDAO/ckb-dao-watchdog · GitHub

In this example, I verified the currently active proposal (Rosen Bridge Integration ). You can check it out to see the output format.


:crystal_ball: Future Plans

Next, I plan to add verification functionality for proposals on the DAO v1.1 platform , with the goals of:

  • :white_check_mark: Enabling every community member to verify voting results
  • :white_check_mark: Discovering potential technical issues
  • :white_check_mark: Strengthening community confidence in DAO governance

:link: Related Links

  • GitHub Repository : GitHub - CKBFansDAO/ckb-dao-watchdog
  • Detailed Documentation : Complete bilingual guides available in the repository
  • Feedback : Welcome to submit Issues, PRs, or leave comments below

It’s getting late, so I’ll wrap up here. Welcome everyone to adopt a CKB DAO Watchdog :dog: and help safeguard our DAO governance together!

Any questions or suggestions? See you in the comments~ :backhand_index_pointing_down:


家人们,大家好!

一直以来,咱们社区缺少一个DAO投票验证工具 ,导致大部分社区成员无法参与到投票过程和结果的验证中来。这对DAO治理其实不太友好——毕竟,DAO治理的核心就是透明和可验证

于是,这两天我把之前写的一个验证工具做了升级,给它取名叫 CKB DAO Watchdog :dog:——没错,就是CKB DAO的看门狗!

GitHub仓库GitHub - CKBFansDAO/ckb-dao-watchdog


:bullseye: 这个工具能干啥?

简单说,就是帮咱们核对投票结果

  1. 输入Metaforo投票页面的链接
  2. 自动抓取所有投票选项和投票人信息
  3. 逐个查询每个投票人在链上的真实DAO权重
  4. 对比Metaforo显示的权重和链上实际权重
  5. 生成详细的验证报告(JSON + CSV格式)

划重点 :所有数据都是从链上实时查询的,公开透明,任何人都可以验证!

打开生成的CSV文件后,重点看 ⚠️need_review 这一列——如果是 TRUE ,说明这条记录需要人工复核。


:open_book: 如何使用?

仓库里有完整的中英文使用说明 ,根据你的需要选择相应的文档即可。

输出示例 看这里:ckb-dao-watchdog/dao-v1.0/README_CN.md at main · CKBFansDAO/ckb-dao-watchdog · GitHub

在这个示例里,我对目前正在投票中的提案(Rosen Bridge集成 )进行了验证,大家可以参考一下输出格式。


:crystal_ball: 未来计划

接下来我打算增加对 DAO v1.1 平台 内提案的验证功能,目标是:

  • :white_check_mark: 让每个社区成员都能验证投票结果
  • :white_check_mark: 发现潜在的技术问题
  • :white_check_mark: 增强社区对DAO治理的信心

:link: 相关链接


OK,夜深了,再肝就真要成一休哥了,就说这么多吧。欢迎大家速速领养一只 CKB DAO Watchdog :dog:,一起守护咱们的DAO治理!

有任何问题或建议,评论区见~ :backhand_index_pointing_down:,晚安~~

9 Likes

Hi Yixiu, thanks to your work!

As the transition period coordinator, I will use this tool along with manual verification to conduct voting checks.

嗨,Yixiu,感谢你的工作!

作为过渡期协调员,我将使用这个工具并结合人工核查来进行投票检查。

5 Likes

哇哦,我似乎看到舟舟领养了一只CKB DAO看门狗路过的背影。Cool,若是领养期间有任何疑问,可以随时来找我诊断。嗨嗨~

3 Likes

Hi, just wanted to share a quick fix for anyone trying to run this on Python 3.12.
嗨,分享一个在 Python 3.12 环境下运行该工具的修复方法。

The Issue / 问题:
The dependency pyckb may throw errors like NameError: name 'Pt' is not defined (in secp256k1.py) or NameError: name 'PriKey' is not defined (in core.py). This happens because of how self-referencing type hints are handled in Python 3.12, and the current pip version of pyckb hasn’t been updated to handle this yet.
依赖库 pyckb 可能会报错 NameError: name 'Pt' is not defined(在 secp256k1.py 中)或者 NameError: name 'PriKey' is not defined(在 core.py 中)。这是由于 Python 3.12 处理类内部自引用类型注解的方式导致的,而目前 pip 上的 pyckb 版本尚未适配。

The Solution / 解决方法:
You need to manually edit the pyckb source files in your Python environment (site-packages). I fixed it by adding the following line to the very top (first line) of both pyckb/secp256k1.py and pyckb/core.py:
你需要手动修改 Python 环境(site-packages)中的 pyckb 源码文件。我在 pyckb/secp256k1.pypyckb/core.py 这两个文件的最顶部(第一行)加上了下面这行代码,问题就解决了:

from __future__ import annotations

Hope this helps!
希望这对大家有帮助!

2 Likes

感谢 @zz_tovarishch 分享,我本地的python版本是3.14.1,没有遇到这个报错信息。

1 Like

A Docker a day keeps dependency hell away.

6 Likes

Thank you so much @yixiu.ckbfans.bit :folded_hands:

3 Likes