Panda DAO RFC: 投资者基本数据获取

背景

Panda DAO 募资阶段即将结束,我们需要对投资者(由钱包地址定义)有更多的了解。

目标

为此,我们需要建立 Panda DAO 投资者的用户画像。这是一个大型项目,至少包括以下几个环节:

  1. 基本数据的获取

  2. 数据加工

  3. 将数据通过多种方式(The Graph API,Dune dashboard 等)提供出来

在此我们只涉及第一个环节——基本数据的获取。一个钱包地址的基本数据包括:

  • 持有的 NFT

  • 发生过的交易

  • (有待补充)

High level 实现

首先,通过 juicebox 的下载按钮获取投资者名单,上面是所有投资者的投资金额和钱包地址。

其次,根据这个名单,调用 SimpleHash API 的 NFTs by owners 接口获取一批投资者所持有的 NFT;调用 SimpleHash API 的 Transfers by wallets 接口获取一批投资者所进行的交易。

最后,将获取的信息存储起来。

实现细节

建议使用 JavaScript / TypeScript 调用 SimpleHash API。三个原因:

  • 以后如果我们在获取数据的过程中,发现 SimpleHash 并没有提供相应数据,可以很容易地使用 ethers.js 或者 web3.js 这样的 js 库去调用 smart contract 来获取。

  • 在本地跑数据获取脚本总是不理想的,我建议未来可以使用 Vercel Function(背后是 AWS Lambda Function)来跑脚本,而 Node.js 被 Vercel Function 很好地支持了(比 Go 的支持程度要高)。

  • 上手简单,便于扩大开发团队。

建议初步将逻辑以一个 Node.js 脚本的方式实现,之后迁移到 Vercel 上。

建议将基本数据以 JSON 的方式存储在如 MongoDB 这样的数据库里,schemaless 的设计便于早期迭代。

优化空间

能否通过程序下载投资者名单?