📢 Gate广场 #创作者活动第一期# 火热开启,助力 PUMP 公募上线!
Solana 爆火项目 Pump.Fun($PUMP)现已登陆 Gate 平台开启公开发售!
参与 Gate广场创作者活动,释放内容力量,赢取奖励!
📅 活动时间:7月11日 18:00 - 7月15日 22:00(UTC+8)
🎁 活动总奖池:$500 USDT 等值代币奖励
✅ 活动一:创作广场贴文,赢取优质内容奖励
📅 活动时间:2025年7月12日 22:00 - 7月15日 22:00(UTC+8)
📌 参与方式:在 Gate 广场发布与 PUMP 项目相关的原创贴文
内容不少于 100 字
必须带上话题标签: #创作者活动第一期# #PumpFun#
🏆 奖励设置:
一等奖(1名):$100
二等奖(2名):$50
三等奖(10名):$10
📋 评选维度:Gate平台相关性、内容质量、互动量(点赞+评论)等综合指标;参与认购的截图的截图、经验分享优先;
✅ 活动二:发推同步传播,赢传播力奖励
📌 参与方式:在 X(推特)上发布与 PUMP 项目相关内容
内容不少于 100 字
使用标签: #PumpFun # Gate
发布后填写登记表登记回链 👉 https://www.gate.com/questionnaire/6874
🏆 奖励设置:传播影响力前 10 名用户,瓜分 $2
Solana NFT身份认证:探索基于SPL Token的去中心化登录系统
探索使用 Solana Token 作为身份认证工具
NFT (non-fungible token) 作为一种"不可替代"的代币,非常适合用作身份认证工具。本文将通过一个简单示例,探讨使用 NFT 作为注册凭证的可行性。
工具介绍
SPL Token
Solana 提供了 Token Program 作为通用实现,它是 Solana Program Library (SPL) 的一部分。SPL 包含了多个常用程序实现,并提供完善的客户端库和 CLI 工具,极大便利了 Solana 开发者。
Solana Playground
Solpy 提供了一个在线编写和部署 Solana 合约的环境,默认包含一些常用工具,如 SPL Token。我们可以通过 spl-token-cli 方便地创建和管理 Token。
创建认证 Token
我们将创建一个 NFT Token。如果用户 Mint 了该 Token,就认为该钱包地址已在系统中注册。
创建 Token
使用 spl-token 创建一个新的不可分割 Token:
spl-token create-token --decimals 0
这将输出 Token 的 Mint Address,也就是 Token ID。
创建 Token Account
为新创建的 Token 创建一个 Token Account:
spl-token create-account <token_mint_address>
Mint Token
尝试为 Token Account mint 一个 Token 单位:
spl-token mint <token_mint_address> 1
也可以尝试 mint 到其他钱包地址:
spl-token mint <token_mint_address> 1 <wallet_address>
注意,由于我们将 decimals 设为 0,所以实际执行时会舍去小数部分。
为钱包地址 Mint
要为用户钱包地址 mint Token,需要先为该地址创建 Token Account:
spl-token create-account <token_mint_address> --owner <wallet_address>
然后使用创建的 Token Account 进行 mint 操作。
获取 Token Account 信息
我们需要通过 RPC 接口获取钱包地址是否 mint 了我们的 NFT。使用 getTokenAccountsByOwner 方法查询数据:
json { "jsonrpc": "2.0", "id": 1, "method": "getTokenAccountsByOwner", "params": [ "<wallet_address>", { "mint": "<token_mint_address>" }, { "encoding": "jsonParsed" } ] }
实现登录系统
我们可以创建一个简单的 Next.js 项目来实现这个功能,使用 Ant Design Web3 来连接钱包。
主要流程如下:
在注册过程中,系统会为用户创建 Token Account 并 mint 一个 Token 单位作为注册凭证。
总结
我们使用 spl-token-cli 创建了一个 NFT,并通过检查钱包地址是否拥有该 Token 来判断用户是否注册。这为 Web3 应用提供了一种基于区块链的身份认证方式。
通过这种方法,我们可以利用 NFT 的不可替代性,为用户提供一种去中心化的身份凭证,同时保持了区块链的透明性和安全性。这种认证机制可以应用于各种 Web3 场景,为用户提供更加安全和便捷的登录体验。