稳健,是 Gate 持续增长的核心动力。
真正的成长,不是顺风顺水,而是在市场低迷时依然坚定前行。我们或许能预判牛熊市的大致节奏,但绝无法精准预测它们何时到来。特别是在熊市周期,才真正考验一家交易所的实力。
Gate 今天发布了2025年第二季度的报告。作为内部人,看到这些数据我也挺惊喜的——用户规模突破3000万,现货交易量逆势环比增长14%,成为前十交易所中唯一实现双位数增长的平台,并且登顶全球第二大交易所;合约交易量屡创新高,全球化战略稳步推进。
更重要的是,稳健并不等于守成,而是在面临严峻市场的同时,还能持续创造新的增长空间。
欢迎阅读完整报告:https://www.gate.com/zh/announcements/article/46117
Solana Token实现身份认证:NFT作为Web3注册凭证探索
探索使用 Solana Token 实现身份认证
NFT 作为一种不可替代的代币,非常适合用作身份认证工具。本文将通过一个简单示例,探讨使用 NFT 作为注册凭证的可行性。
前言
在开始之前,先介绍一下将要用到的工具。
SPL Token
我们可以直接使用 Solana 提供的通用实现:Token Program。Token Program 属于 Solana Program Library(SPL)的一部分,SPL 提供了包括 Token、Swap、Memo 在内的多个常用程序实现,并提供了完善的客户端库、CLI 等工具,极大方便了 Solana 开发者。
Solana Playground
Solpy 提供了一个在线编写和部署 Solana 合约的环境,默认包含一些常用工具,如 SPL Token。我们可以通过 spl-token-cli 方便地创建和管理 Token。
Auth Token
在这部分,我们会创建一个 NFT Token。如果用户 Mint 了该 Token,则认为该钱包地址已在系统中注册,否则提示用户先进行注册。
现在开始 On-chain 部分:
创建 Token
使用 spl-token 创建一个新的 token,通过 --decimals 指定它是一个不可分割的 Token(类似 NFT):
spl-token create-token --decimals 0
输出日志中的 Mint Address 就是我们创建的 Token 的 ID。
创建 Token Account
为上一步创建的 Token 创建一个 Token Account:
spl-token create-account <token_mint_address>
Mint Token
尝试为刚创建的 Token Account mint 一个 Token unit:
spl-token mint <token_mint_address> 1
也可以直接给一个钱包地址 mint token:
spl-token mint <token_mint_address> 1 <wallet_address>
为钱包地址 Mint
如果要为某个钱包地址铸造 Token,需要先为该地址创建 Token Account,然后使用创建的 Token Account mint 新的 Token unit。
为钱包地址创建 Token Account:
spl-token create-account <token_mint_address> --owner <wallet_address>
获取 Token Account
通过 RPC 接口的 getTokenAccountsByOwner 方法,可以查询某个钱包地址是否有 Mint 过我们创建的 NFT。
实现
接下来,我们通过创建一个简单的 Nextjs 项目来实现功能,使用 Ant Design Web3 来连接钱包。
初始化 Nextjs 项目:
npx create-next-app@latest
添加相关依赖:
npm install @ant-design/web3 @ant-design/web3-solana @solana/spl-token
创建 sign-in 和 sign-on 页面,分别用于连接钱包检查用户是否注册,以及让用户进行注册流程。
在 sign-in 页面,系统会根据连接的钱包地址查找关联的 Token Account。如果找不到数据,则认为该钱包地址未注册。
sign-on 页面会为用户创建 Token Account 并 Mint Token,作为用户已注册的凭证。
总结
我们使用 spl-token-cli 创建了一个 NFT,然后通过判断钱包地址是否有 Token Account 并 Mint 过 Token 来判断是否注册。
当 Web3 用户连接钱包时,系统会自动创建 Token Account 并 Mint Token 作为注册凭证。之后用户就可以使用同样的钱包地址再次登录网站。