# ソラナトークンをユーザーサインアップの証明書として使用することを探るNFT (non-fungible token) は、"代替不可能"なトークンとして、認証ツールとして非常に適しています。本記事では、NFTをサインアップ証明書として使用する可行性を簡単な例を通じて探ります。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-a8dcf63c04c6e63d302acd0170aad875)## ツール紹介### SPLトークンソラナは汎用のToken Programの実装を提供しており、ソラナプログラムライブラリ(SPL)の一部です。SPLにはToken、Swap、Memoなどの複数の一般的なプログラム実装が含まれており、充実したクライアントライブラリとCLIツールを提供しており、ソラナ開発者にとって非常に便利です。### ソラナプレイグラウンドSolpyは、オンラインでソラナの契約を作成およびデプロイするための環境を提供し、デフォルトでSPLトークンなどのいくつかの一般的なツールが含まれています。私たちは、spl-token-cliを使用してトークンを簡単に作成および管理することができます。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-2d4061778b838adde4ff1f393858d363)## 認証トークンの作成私たちはNFTトークンを作成します。ユーザーがそのトークンをミントした場合、そのウォレットアドレスはシステムにサインアップされたものと見なされます。そうでない場合は、ユーザーに先にサインアップを行うように促します。### トークンを作成spl-tokenを使用して新しい分割不可能なトークンを作成する:spl-token create-token --decimals 0出力の Mint Address は、作成されたトークン ID です。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-d42044efd505a5367b666752b868da0c)### トークンアカウントを作成上のステップで作成したトークンのトークンアカウントを作成します:spl-token create-account <token_id>! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-b039435212d66c69db512fc679430f89)### トークンをミントするToken アカウントのために Token ユニットをミントしよう:SPL-トークンミント<token_id>1指定されたウォレットアドレスにミントを試みることもできます:SPL-トークンミント<token_id>1 <wallet_address>注意:直接ウォレットアドレスにミントすると失敗します。最初にウォレットアドレスのトークンアカウントを作成する必要があります。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-4c6542c9e4f56eb35dfd7b5f81ca5991)### のウォレットアドレスにトークンアカウントを作成する指定されたウォレットアドレスのためにトークンアカウントを作成するには、以下のコマンドを使用します:spl-token create-account <token_id> --owner <wallet_address>! [Web3ビギナーシリーズ:Solanaトークンを使用したログインを探る](https://img-cdn.gateio.im/social/moments-1c32a3d0e704a3b02a7ced6f1d99cea5)### トークンアカウントを取得RPCインターフェースのgetTokenAccountsByOwnerメソッドを使用して、ウォレットアドレスが私たちが作成したNFTをミントしたかどうかを確認します。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-a24e9eba2139d73dd3d21b4961679cd6)## ログインシステムの実装Nextjsを使用してプロジェクトを作成し、Ant Design Web3を使用してウォレット接続機能を実現します。主要ページには次のものが含まれます:- ホーム:ウェルカムメッセージとログインページへのリンク- ログインページ (サインイン):ウォレットに接続し、ユーザーがサインアップしているか確認します- サインアップページ (sign-on):ユーザーに登録プロセスを行わせる(NFTをミントする)! [Web3スターターシリーズ:Solanaトークンを使用したログインを探る](https://img-cdn.gateio.im/social/moments-57805e7852a7ca66850a8d6b27398250)ログインプロセス:1. ユーザーは「Continue with Solana」をクリックして、ウォレットを起動します。2. バックエンドがウォレットアドレスに関連するトークンアカウントがあるか確認します3. 未登録の場合は、ユーザーにサインアップページに移動するように促します。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-14368232303f480fe96b88d4a6ba1f55)サインアッププロセス:1. ユーザーは「Start with Solana」をクリックしてウォレットに接続します。2. バックエンドはユーザーのウォレットアドレスにトークンアカウントを作成し、トークンをミントします。3. サインアップ成功後、ユーザーは同じウォレットアドレスでサイトにログインできます! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-ff77873087f76c412229207de916e9b9)Solscanを使用すると、CreateAccountディレクティブやMint操作など、関連するトランザクションデータを表示できます。! [Web3ビギナーシリーズ:Solanaトークンを使用したログインを探る](https://img-cdn.gateio.im/social/moments-eb80585bdf5e8c2b3e3392b4bf84b693)## まとめ私たちは spl-token-cli を使用して NFT を作成し、ユーザーが登録しているかどうかを判断するために、ウォレットアドレスに Token Account が存在し、かつ Token を Mint しているかを確認します。ユーザーがウォレットを接続すると、システムは自動的に Token Account を作成し、登録証明書として Token unit を 1 つ Mint します。その後、ユーザーは同じウォレットアドレスを使用してウェブサイトにログインできます。! [Web3スターターシリーズ:Solanaトークンを使用したログインを探索する](https://img-cdn.gateio.im/social/moments-16d560890fd229d1bb393bbc10a67f18)</wallet_address></token_id></wallet_address></token_id></token_id></token_id>
ソラナ NFT:トークンベースのユーザーサインアップと身分証明の探索
ソラナトークンをユーザーサインアップの証明書として使用することを探る
NFT (non-fungible token) は、"代替不可能"なトークンとして、認証ツールとして非常に適しています。本記事では、NFTをサインアップ証明書として使用する可行性を簡単な例を通じて探ります。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
ツール紹介
SPLトークン
ソラナは汎用のToken Programの実装を提供しており、ソラナプログラムライブラリ(SPL)の一部です。SPLにはToken、Swap、Memoなどの複数の一般的なプログラム実装が含まれており、充実したクライアントライブラリとCLIツールを提供しており、ソラナ開発者にとって非常に便利です。
ソラナプレイグラウンド
Solpyは、オンラインでソラナの契約を作成およびデプロイするための環境を提供し、デフォルトでSPLトークンなどのいくつかの一般的なツールが含まれています。私たちは、spl-token-cliを使用してトークンを簡単に作成および管理することができます。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
認証トークンの作成
私たちはNFTトークンを作成します。ユーザーがそのトークンをミントした場合、そのウォレットアドレスはシステムにサインアップされたものと見なされます。そうでない場合は、ユーザーに先にサインアップを行うように促します。
トークンを作成
spl-tokenを使用して新しい分割不可能なトークンを作成する:
spl-token create-token --decimals 0
出力の Mint Address は、作成されたトークン ID です。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
トークンアカウントを作成
上のステップで作成したトークンのトークンアカウントを作成します:
spl-token create-account <token_id>
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
トークンをミントする
Token アカウントのために Token ユニットをミントしよう:
SPL-トークンミント<token_id>1
指定されたウォレットアドレスにミントを試みることもできます:
SPL-トークンミント<token_id>1 <wallet_address>
注意:直接ウォレットアドレスにミントすると失敗します。最初にウォレットアドレスのトークンアカウントを作成する必要があります。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
のウォレットアドレスにトークンアカウントを作成する
指定されたウォレットアドレスのためにトークンアカウントを作成するには、以下のコマンドを使用します:
spl-token create-account <token_id> --owner <wallet_address>
! Web3ビギナーシリーズ:Solanaトークンを使用したログインを探る
トークンアカウントを取得
RPCインターフェースのgetTokenAccountsByOwnerメソッドを使用して、ウォレットアドレスが私たちが作成したNFTをミントしたかどうかを確認します。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
ログインシステムの実装
Nextjsを使用してプロジェクトを作成し、Ant Design Web3を使用してウォレット接続機能を実現します。
主要ページには次のものが含まれます:
! Web3スターターシリーズ:Solanaトークンを使用したログインを探る
ログインプロセス:
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
サインアッププロセス:
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する
Solscanを使用すると、CreateAccountディレクティブやMint操作など、関連するトランザクションデータを表示できます。
! Web3ビギナーシリーズ:Solanaトークンを使用したログインを探る
まとめ
私たちは spl-token-cli を使用して NFT を作成し、ユーザーが登録しているかどうかを判断するために、ウォレットアドレスに Token Account が存在し、かつ Token を Mint しているかを確認します。ユーザーがウォレットを接続すると、システムは自動的に Token Account を作成し、登録証明書として Token unit を 1 つ Mint します。その後、ユーザーは同じウォレットアドレスを使用してウェブサイトにログインできます。
! Web3スターターシリーズ:Solanaトークンを使用したログインを探索する</wallet_address></token_id></wallet_address></token_id></token_id></token_id>