📢 Gate广场 #MBG任务挑战# 发帖赢大奖活动火热开启!
想要瓜分1,000枚MBG?现在就来参与,展示你的洞察与实操,成为MBG推广达人!
💰️ 本期将评选出20位优质发帖用户,每人可轻松获得50枚MBG!
如何参与:
1️⃣ 调研MBG项目
对MBG的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与MBG相关活动(包括CandyDrop、Launchpool或现货交易),并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是现货行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
MBG热门活动(帖文需附下列活动链接):
Gate第287期Launchpool:MBG — 质押ETH、MBG即可免费瓜分112,500 MBG,每小时领取奖励!参与攻略见公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通过首次交易、交易MBG、邀请好友注册交易即可分187,500 MBG!参与攻略见公告:https://www.gate.com/announcements
NFT身份认证:探索Solana上的注册凭证实现方案
NFT作为身份认证工具的探索
NFT作为一种"不可替代"的代币,非常适合用作身份认证工具。本文将通过一个简单示例,探讨使用NFT作为注册凭证的可行性。
工具介绍
SPL Token
Solana提供了Token Program作为通用实现,它是Solana Program Library(SPL)的一部分。SPL包含了Token、Swap、Memo等多个常用程序实现,并提供完善的客户端库和CLI工具,极大方便了Solana开发。
Solana Playground
Solana Playground提供了一个在线编写和部署Solana合约的环境,默认包含了一些常用工具,如SPL Token。我们可以通过spl-token-cli方便地创建和管理Token。
创建认证Token
我们将创建一个NFT Token。如果用户Mint了该Token,就认为该钱包地址已在系统中注册,否则提示用户先注册。
创建Token
使用spl-token创建一个新token,通过"--decimals"指定为不可分割的Token:
spl-token create-token --decimals 0
输出中的Mint Address即为创建的Token ID。
创建Token Account
为上一步创建的Token创建一个Token Account:
spl-token create-account <token_id>
Mint操作
可以为Token Account mint一个Token unit:
spl-token mint <token_id> 1
也可以直接给一个钱包地址mint token,但需要先为该地址创建Token Account。
获取Token Account
通过RPC接口的"getTokenAccountsByOwner"方法,查询某个钱包地址是否mint过我们创建的NFT。
实现
使用Nextjs创建一个简单项目,使用Ant Design Web3连接钱包。
主要包括三个页面:
Sign in页面会根据连接的钱包地址查找关联的Token Account,判断用户是否已注册。
Sign on页面会为用户创建Token Account并mint一个Token unit作为注册凭证。
总结
我们使用spl-token-cli创建了一个NFT,将钱包地址是否有Token Account并mint过Token作为判断用户是否注册的依据。
当Web3用户连接钱包时,自动发送sign-on请求,在后端创建Token Account并mint一个Token unit作为注册凭证。
之后用户就可以使用同一钱包地址再次登录网站了。