博客

自动翻译 · 阅读英文原文

如何向活跃成员分发代币(NFT:暂不支持)

Zealy 无法按近期活跃度筛选成员,目前也无法发送 NFT。可行的机制是冲刺赛——奖励计算方式可从代码中读取。

作者 Mathis Grosjean

Zealy 文章封面,深色纹理背景,文字为:奖励那些真正参与的人——代币、NFT 以及谁真正获得它们。
本页内容

简短回答: 举办一场冲刺赛。在 Zealy 上,冲刺赛是一个带有开始日期和结束日期的排行榜,因此它排名的 XP 是在该时间窗口内获得的,而不是永久累积的。这是产品中唯一一种按当下活跃度而非仅按曾经加入来奖励成员的机制。随后 Zealy 决定谁获胜,并记录要支付的地址。它不转移代币,也完全无法附加 NFT——奖励字段本身就说明了这一点: NFT 奖励暂不可用。

本文不会做的事: 给你一个并不存在的筛选器。你无法向 Zealy 索取“过去 30 天内领取过内容的成员”并得到一份列表。本文也不会告诉你如何通过 Zealy 发送 NFT,因为根本没有可发送的 NFT 奖励。对于 NFT 这一半,它能做的是给你一份站得住脚的接收者名单——冲刺赛决定是谁,而铸造和发送在你自己的工具中完成。

披露: Zealy 发布本文,且 Zealy 销售本文所描述的产品。以下所有 Zealy 行为均读取自 Zealy 代码库,而非 Zealy 自己的文档,后者在若干处被证明有误。每个外部数字都在出现处标注了来源。

最后验证: 2026 年 8 月 15 日。

为什么“奖励我的活跃成员”比听起来更难

大多数代币分发为过去的快照付费,然后眼看着代币离开。在一项针对九次空投的学术研究中,大多数协议的中位接收者只进行了一次代币转账,其首次与末次转账之间的中位间隔为零天。改为奖励活跃度,意味着为你设定的时间窗口内的行为付费。

该研究是 “Airdrops: Giving Money Away Is Harder Than It Seems” ,作者为 Johnnatan Messias、Aviv Yaish 和 Benjamin Livshits,涵盖九次协议分发。一次转账且无时间间隔,并不是你获得的成员。那只是你付钱让他们在你面前排了一次队。

通常的应对是在发送前更严格地筛选,这种做法代价高昂且为时已晚。这种方法,以及 Optimism 和 LayerZero 因此得到的结果,正是 如何举办一场不被刷的空投.

同一思路有一个更便宜的版本。与其分发给所有人再减去你不想要的人,不如定义一个时间窗口,公布在该窗口内可获得信用的行为,并支付由此产生的排名。无需移除任何人,因为从来没有人是免费上榜的。

你无法按近期活跃度筛选 Zealy 成员

Zealy 的成员表恰好按十三列筛选:id、name、role、join date、Discord handle 和 ID、TikTok username、X username、X follower count、X ID、email、country 和 ETH address。加入日期是唯一的日期。没有最后活跃筛选、没有最后领取筛选,也没有“过去 30 天 XP”筛选。

这让人意外,所以值得精确说明其程度。 成员页面 提供上述列表。XP 甚至不在其中——XP 显示为一列,但在成员页面已获取之后才计算,这就是它既不能筛选也不能排序的原因。公共 API 更为精简:search、roles、ids、joinedAfter、joinedBefore 和一个排序。Zealy 的分析确实会绘制活跃用户随时间变化的图表,但图表是聚合数据。Zealy 会告诉你上周有多少人活跃,但不会把他们的名字交给你。

按 XP 排序也救不了你,因为成员的 XP 是累计总量,而非限定于某个时期。一个在三月疯狂刷分、此后从未打开你的任务板的成员,仍然排在本月每周都领取过任务的成员前面。按 XP 排序你的社区,就是按历史排序。

因此,对约束的诚实陈述是:在今天的 Zealy 上,“活跃”不是你可以查询的成员属性。它是你定义的一段时间的属性。

在 Zealy 上可行的机制:冲刺赛

Zealy 冲刺赛是一个带有开始日期和结束日期的排行榜,统计该窗口内对冲刺赛所含任务的领取所获得的 XP。排名就是你在所选时期内活跃者的名单。冲刺赛 XP 为零的成员会自动被排除在支付之外。

最后这个细节的作用比看起来更大。你社区中休眠的那一半不是被你写的规则筛掉的;它之所以不在结果中,是因为它在窗口内什么都没做。你想要的筛选器,作为这种机制形态的副作用自然得到了。

一个注意事项,因为它决定你能否把冲刺赛称为干净的衡量:管理员在窗口内手动授予的 XP 也会与领取一起计入冲刺赛。如果你发放奖励 XP,你就是在调整用于计算支付的同一个数字。

冲刺赛有两种支付方式,在选择数字之前两者都值得了解。

按比例。 每位成员获得 floor(pool × their sprint XP ÷ total sprint XP)假设奖池为 10,000 个代币,所有符合条件的人共获得 250,000 XP,某位成员获得了其中的 4,000 XP:其份额为 160 个代币。每份份额均向下取整,因此各笔发放的总和可能略少于奖池。请注意,如果你还设置了奖励区间,该分母中的总数将仅针对区间内的人员重新计算——因此设置截止线既能提高每个人的份额,也能缩短名单。

分级。 你定义排名区间,每个区间从奖池中抽取一定百分比,并在区间内平均分配。例如排名 1–10 之间共分 40%,排名 11–50 再分 20%。最多可定义 50 个层级,且各区间既不能重叠,也不能留有空隙。分层奖励按名次而非努力程度发放,当重点是一场公开可见的竞赛时,这正是你想要的。

在上述任一方式之上,奖励区是一个硬性的前 N 名截止线。设为 200 时,第 201 名将一无所获,无论其获得了多少 XP。冲刺没有抽奖模式——奖励按名次和 XP 发放,所以如果你想要随机性,那你要看的是任务奖励方式,而不是冲刺。

社区多年来一直采用这种模式。 Bandzaï 描述了一场冲刺赛,为排行榜前200名玩家提供近600,000 $BZAI和Zaï NFT。 CoinW 举办了 Top 50 排行榜活动,最高奖励为 100 USDT。 Alphaday 让排行榜前 10 名参与者有机会瓜分价值 300 美元的 ETH 奖池。 ShimmerSea 提供了 5,500 USDT 和 404 个特别版 Lumi NFT,以吸引人们测试其协议的每个部分。这四个案例研究均来自 2023 年,且都是附带日期的奖励区。

其中一个案例为我说明了 NFT 的意义。Bandzaï 的奖品是代币 和 以及面向前 200 名区域的 NFT。冲刺赛选出这 200 人。向他们发放 NFT 过去是、现在仍然是项目方自己的工作——这就引出了 Zealy 会、以及不会把什么交到某人手中。

Zealy 实际发送的内容,按奖励类型逐一说明

Zealy 的数据模型包含七种奖励类型,任务编辑器提供六种:XP、Discord 角色、Zaps、USDC、代币和自定义的“其他”。USDC 是唯一会自动到账的。代币奖励只做记录而不发送,NFT 奖励目前在产品中不可用。

奖励在任务编辑器中?实际由谁转移
XP是Zealy 内部由 Zealy 处理
Zaps是Zealy 中的 Zealy
Discord 角色是Zealy 机器人,异步执行;未关联 Discord 的成员永远不会收到
USDC是Zealy 在领取成功后自动从你预先充值的余额中支付
代币是你。Zealy 记录获胜者和收款地址
自定义“其他”是你,通过你描述的任何方式
NFT否无人。该字段显示为 NFT 奖励尚不可用

NFT 这一行值得反复确认。Zealy 的数据模型仍保留 NFT 奖励类型,Zealy 也确实曾通过 Polygon 上的外部服务、在功能开关后面铸造过 NFT。在你今天使用的产品中,NFT 奖励字段只渲染一个字符串,告诉你它不可用,其背后的一切都已关闭。任何教你如何将 NFT 奖励附加到 Zealy 任务的指南,描述的都是不存在的东西。

代币奖励依赖一种容易被误读的分工。Zealy 决定谁获胜,并写入一条待处理记录,包含获胜者及其已验证地址。然后你从自己的钱包发送,再把交易哈希粘贴回来——有一个批量操作可以一次性把同一个哈希盖到所有待处理的获胜者上,这样你结算前 200 名的冲刺时就不必复制粘贴 200 次。Zealy 为此支持二十多个网络标识符,其中两个是测试网。

Zealy 代币奖励的四个步骤。Zealy 决定谁获胜,然后记录获胜者和要支付的地址。你发送代币并支付 gas,再把交易哈希粘贴回来。

代币奖励中 Zealy 的职责与社区的职责分界。USDC 是例外——它会自动入账。

由此产生两个后果,而两者都不在营销文案里。Zealy 不持有代币奖励的签名者,因此社区支付 gas。而且 Zealy 目前不会在链上验证正确金额是否到达正确地址。单获胜者表单只检查交易 ID 至少格式有效;把同一个哈希盖到所有待处理获胜者上的批量操作只检查你输入了内容。该哈希只是你声称已付款的记录,而非付款证明。如果你的社区足够大,以至于这一区别很重要,请自行保留对账。

USDC 是例外,它的表现符合人们对奖励的预期。你充值余额,每个任务会从中锁定资金,成功领取后会自动记入成员账户。USDC 会累积为 Zealy 侧余额,并提取到成员关联的 Polygon 钱包。请引导用户前往提现页面查看当前条款,而不要在活动简报中承诺净额数字。

接收方在这些事项上需要承担什么,是另一个会产生实际后果的问题,并且 无需购买任何加密货币即可赚取加密货币 涵盖接收方一侧。

Zealy 与 Galxe 在奖励发放方面的对比

Galxe 提供 NFT 奖励类型,并在链上执行代币抽奖。Zealy 两者都不做:NFT 奖励已禁用,代币奖励仅记录而不发送。反过来说,Galxe 的链上抽奖会向用户收取 gas 费,而 Galxe 的自定义奖励由项目方发放,这一点与 Zealy 的代币相同。

ZealyGalxe
NFT 作为奖励类型不可用;该字段显示 NFT 奖励暂不可用支持。Galxe 将其奖励列为“积分、OAT、NFT、自定义奖励、神秘盒子、代币和 Discord 角色”,并表示其“支持任何兼容区块链网络上的 NFT 奖励”
代币分发Zealy 记录获奖者和地址;项目方负责发放“代币抽奖”在链上运行,而“代币先到先得”保持在链下,不会触发交易
谁支付 gas项目方,从其自己的钱包支付对于抽奖模式的代币奖励,“要求用户在 Gravity 网络上以 G 代币支付 gas 交易费”
自定义奖励项目负责发放,与代币相同"项目负责分发这些奖励,具体发放将在 Galxe 之外处理"

Galxe 的引述来自其已发布的奖励文档,链接见表格表头。

如实看待取舍。如果你需要的是完成任务的直接产出以 NFT 形式到达钱包,Galxe 能做到,Zealy 做不到,再多的 Zealy sprint 设计也无法替代。如果你需要的是接收方无需付费、无需接触链即可领取的分发,Zealy 的 USDC 路径能做到,链上抽奖做不到。两个平台都把自定义奖励留给项目方自行处理,所以通用方案尚无解。

如何在 Zealy 上逐步执行 sprint 发放

先设定 sprint 日期,因为时间窗口就是筛选条件。选择按比例或分层发放,并设定奖励区间。sprint 结束后,导出排行榜或奖励获奖者以获取钱包地址,从你自己的钱包发送,然后把交易哈希粘贴回 Zealy。

1. 确定该窗口衡量的是什么。 Sprint XP 来自开始与结束日期之间提交的任务,因此你在该窗口内发布的任务就是你付费所定义的“活跃”。如果你想要深度而非点击量,请在 sprint 开始前按此方式加权 XP,而不是开始后。 创建冲刺 涵盖设置。

2. 选择按比例或分层。 按比例奖励奖励投入量,并产生一长串小额奖励。分层则将价值集中在顶部,并产生竞争。几百的奖励区间能让奖励列表保持在你实际可以手动结算的规模。

3. 限制任务,而不是限制成员。 Zealy 上没有成员允许列表,因此保持冲刺公平的方式是通过任务条件。Zealy 接受七种条件类型——完成另一个任务、等级、Discord 角色、日期、持有 NFT、X 关注者数量以及 X 账户年龄——并用 AND 或 OR 组合。等级条件仅接受“高于”和“低于”,NFT 门控仅限 Polygon。 条件文档 列出了全部七种。

4. 为每个奖励选择发放方式。 奖励发放方式 包括先到先得、抽奖、排名和投票,均按奖励设置,而非按任务设置。先到先得和抽奖各上限 1,000 名获奖者,排名同样上限 1,000,投票没有上限。抽奖是对成功领取者进行随机排序,且必须设置领取上限或截止日期才有效。

5. 导出正确的文件。 成员导出会提供 userId、名称、角色、XP、加入日期和封禁状态,但不包含钱包地址。地址来自 排行榜导出 或获奖者导出——不过获奖者文件专门输出 Ethereum 地址列,因此 Solana 或 TON 社区应改用排行榜导出。拉取成员列表后疑惑钱包地址去哪了,是整个流程中最常见的浪费一小时的情况。

6. 发送,然后记录。 从你的钱包付款,粘贴哈希,如果获奖者名单很长就使用批量操作。也要把哈希发布给你的社区——因为 Zealy 不会在链上验证它,你的成员验证它就是现有的检查。 奖励文档 涵盖奖励设置本身。

会让你吃亏的部分

Zealy 没有成员允许名单,没有代币余额门槛,也没有链上检查来确认你的付款交易确实做了你所说的。重置排行榜是破坏性的,并且会移动进行中冲刺的开始日期。成员导出不含钱包地址。这些都有变通办法,但没有一个是显而易见的。

重置排行榜是真正花钱的那个。重置会清除手动发放的 XP,将每个任务的领取计数归零,而且——如果冲刺正在进行——会把该冲刺的开始日期提前到你重置的那一刻。你冲刺历史的一半可能因为一个听起来像日常维护的按钮而消失。在重置前完成冲刺,或者根本不要重置。

缺失的门槛决定了你能承诺什么。你无法上传地址列表并将任务限制为仅这些地址,代币余额条件也不是你能设置的,尽管这个概念在代码库中存在。所以“仅限持有者”不是你能配置的 Zealy 冲刺;Polygon 上的 NFT 持有是最接近的可用门槛。

等级门槛值得单独警告。你按等级设门槛,而不是按原始 XP,并且只能设高于或低于某个等级。等级阈值来自固定的全局曲线,在每个 Zealy 社区都相同,所以“5 级及以上”层级在你的社区意味着与其他人社区相同的累计 XP 量。设计层级时要明白你并没有在设置阈值—— 如何开展加密大使计划 围绕该限制条件构建具名等级来推进。

这些都不说明 sprint 是个糟糕的答案。它说明 sprint 是个特定的答案:Zealy 擅长判定谁值得获得奖励,并且在发放奖励时毫不浪漫化。如果你期待的是一个分发引擎,你会感到恼火。如果你期待的是一个非常精确、带有导出按钮的记分板,你得到的正是这个,而发送则是你自己钱包的三十分钟操作。

FAQs

定义一个时间窗口,并按该窗口产生的排名进行支付,而不是事后筛选成员列表。在 Zealy 上这就是 sprint:一个带有开始和结束日期的排行榜,XP 只从窗口内提交的 claim 中累积,sprint XP 为零的成员会自动被排除在支付之外。设置奖励区间——前 50 名、前 200 名——并按 XP 比例支付或按排名分档支付。

不可以。NFT 奖励目前在 Zealy 上不可用。该奖励类型仍存在于 Zealy 的数据模型中,Zealy 也确实曾通过功能开关背后的外部服务在 Polygon 上铸造过 NFT,但 quest 编辑器提供六种奖励类型,NFT 不在其中。该字段本身只显示一行:NFT 奖励尚不可用。如果你需要的是将 NFT 发放作为 quest 的直接产出,Galxe 将 NFT 列为其 quest 奖励类型之一,而 Zealy 没有。

仅限 USDC。USDC 奖励会在成功 claim 后自动从你预先充值的余额中入账,成员再提现到其关联的 Polygon 钱包。对于项目自己的代币,Zealy 判定谁获胜并记录应支付到哪个地址,然后你从自己的钱包发送,并把交易哈希粘贴回 Zealy。Zealy 不持有代币奖励的签名者,因此你的社区支付 gas,而 Zealy 只检查该哈希的格式,不会在链上验证正确金额是否到达正确地址。

请使用排行榜导出或奖励获奖者导出。成员导出是错误文件——它返回 userId、name、role、XP、加入日期和封禁状态,其中没有钱包地址。排行榜导出和奖励获奖者导出确实包含地址,因此它们才是冲刺结束时你要用的导出。

不能。Zealy 的成员筛选条件有十三列:id、name、role、加入日期、Discord 用户名和 ID、TikTok 用户名、X 用户名、X 粉丝数、X ID、email、country 和 ETH 地址。加入日期是唯一的日期字段,因此没有最近活跃、最近领取或过去 30 天 XP 这类筛选。XP 完全无法筛选,也无法排序:它会显示,但是在成员页面数据已经获取之后才计算出来的。Zealy 以随时间聚合的方式统计活跃用户,但不列出具体用户。冲刺是替代方案:它以排名形式生成最近活跃成员列表,而不是通过查询生成。

Zealy 冲刺没有抽奖模式——冲刺奖励按排名和 XP 发放,XP 为零的成员会被排除,并且有固定的前 N 名奖励区。随机性体现在任务奖励上:抽奖是五种奖励方式之一,另外四种是全部、先到先得、排名和投票;它按奖励设置而不是按任务设置,最多 1,000 名获奖者,抽取方式是对成功领取进行随机排序。抽奖还需要设置领取上限或截止日期才有效。想奖励贡献最多的人时用冲刺,想让所有达到门槛的人都有机会时用任务抽奖。