如何在Metaplex storefront中搭建Referral program
Metaplex Storefront 推荐计划最优落地方案
生产环境验证过投入产出比最高的方案是链上存核心凭据+链下做流程追踪的混合架构,不要尝试全合约实现,改造成本高且无法覆盖访问追踪这类前端场景,具体实现逻辑如下:
核心模块实现
- 专属推广凭证生成
用户通过推广大使申请审核后,链下服务直接为其绑定与Solana钱包地址一一对应的唯一推荐码,生成规则参考钱包地址前6位+8位随机大小写字符/数字,碰撞概率低于千万分之一,无需额外做高成本去重校验。专属推广链接直接拼接店铺路由参数即可,格式为[你的店铺地址]?ref=对应推荐码。
改造Metaplex Storefront前端的路由初始化逻辑:用户首次访问带ref参数的链接时,将ref值写入localStorage,有效期根据业务规则设置30-90天,有效期内用户清空缓存前的所有成交都归属对应推荐人,无需用户每次访问都重新携带推广参数。 - 转化全链路追踪
直接复用Metaplex Storefront自带的交易状态钩子做埋点,不用额外搭独立埋点体系:前端监听useTransaction钩子返回的交易最终确认状态,当用户完成支付、链上交易敲定后,前端读取本地存储的ref值,将交易签名、购买人钱包地址、成交金额、ref值一并上报给链下追踪服务。
链下服务收到上报后做三层校验防篡改:- 校验ref值是否对应有效、未被封禁的推广大使账户
- 链上查询对应交易签名,确认交易确实调用了当前店铺的Candy Machine/拍卖/支付合约,成交金额、商品信息和上报内容一致
- 校验该交易签名是否已经被上报过,避免重复发奖
校验通过的记录,核心字段(推荐人、交易哈希、奖励金额)做哈希后存在Metaplex派生的PDA账户上,普通访问、点击这类非核心数据存在链下数据库做运营统计即可,不用上链浪费gas。
- 奖励自动发放
奖励规则提前在服务端配置固定逻辑,支持配置SOL、平台NFT、白名单、积分、优惠券等常见奖励类型。数字类商品成交无退款环节的,交易确认后直接过24小时风控期即可发奖;如果是带退款期的实体/权益类商品,等退款期过了再触发发放。链上资产类奖励直接通过预置的多签托管钱包调用转账指令发放,链下权益直接更新用户账户权益余额即可,所有发放记录和原成交记录绑定,可查可追溯。 - 防作弊规则
必须内置基础防刷逻辑,避免奖励被薅:- 推荐人自己使用个人推荐码成交的,不计入有效奖励
- 同一IP/设备指纹短时间内关联多个不同推荐人成交的,直接标记为异常订单,人工审核后再发奖
- 被Metaplex防机器人机制判定为科学家刷mint的交易,直接剔除奖励资格
成本与体验优化点
- 仅将成交、发奖这类核心凭据上链,访问、点击等运营数据全存链下,整体链上成本不到全量上链方案的1%
- 所有推广链路不打断原有Metaplex Storefront的购物流程,用户从推广链接进入后的浏览、购买体验和正常访问无差异,不会拉低转化率
- 推荐码做前端轻校验,格式不符合的直接忽略,减少无效请求打到后端服务
别信所谓全链上推荐计划的方案,实际跑起来不仅gas成本高,链接点击、缓存归因这些前端逻辑根本没法在链上实现,最后还是要补链下逻辑,纯属多此一举。
内容的提问来源于stack exchange,提问作者Sofiane999
相关产品推荐
相关产品推荐

