公式見ながらゆるくハンズオン
Solana CLI と SPL Token CLI をインストール
$ sh -c "$(curl -sSfL https://release.solana.com/v1.8.0/install)" # .zshrcに追記 # export PATH="/Users/shmn7iii/.local/share/solana/install/active_release/bin:$PATH" # rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh $ cargo install spl-token-cli --- # ここでspl-token-cliのインストールの失敗する場合 # rustのバージョン上げたら通った $ rustup update
やってみる
### 初期設定 # クラスターをdevnetに設定 $ solana config set --url https://api.devnet.solana.com # キーペアファイルを設定 $ solana config set --keypair /Users/shmn7iii/Desktop/splana/devnet/new-keypair.json # キー生成 $ solana-keygen new -o /Users/shmn7iii/Desktop/splana/devnet/new-keypair.json Generating a new keypair For added security, enter a BIP39 passphrase NOTE! This passphrase improves security of the recovery seed phrase NOT the keypair file itself, which is stored as insecure plain text BIP39 Passphrase (empty for none): Enter same passphrase again: Wrote new keypair to /Users/shmn7iii/Desktop/splana/devnet/new-keypair.json =================================================================================== pubkey: HTqyoyXgQS9zjVCT2Co4iS2FTYWkivdUJHZuhJdHYktg =================================================================================== Save this seed phrase and your BIP39 passphrase to recover your new keypair: rail nuclear wrestle involve riot gather clap sponsor between immense favorite slot =================================================================================== # エアドロ(Faucetからもらう) $ solana airdrop 1 # 残高確認 $ solana balance 1 SOL ### FT # トークン作成 $ spl-token create-token Creating token 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn # サプライ量確認 $ spl-token supply 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn 0 # アカウント作成 $ spl-token create-account 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn Creating account 3YbccGfx3BWo2qCmbtYtC8VPni5szyA2P21cM1CjU1dx # 100個ミントする $ spl-token mint 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn 100 Minting 100 tokens Token: 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn Recipient: 3YbccGfx3BWo2qCmbtYtC8VPni5szyA2P21cM1CjU1dx # サプライ量確認 $ spl-token supply 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn 100 # アカウント情報表示 $ spl-token account-info 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn Address: 3YbccGfx3BWo2qCmbtYtC8VPni5szyA2P21cM1CjU1dx Balance: 100 Mint: 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn Owner: HTqyoyXgQS9zjVCT2Co4iS2FTYWkivdUJHZuhJdHYktg State: Initialized Delegation: (not set) Close authority: (not set) ### TOKENs $ spl-token accounts Token Balance --------------------------------------------------------------- 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn 100 ### NFT # トークン作成 $ spl-token create-token --decimals 0 Creating token HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac # アカウント作成 $ spl-token create-account HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac Creating account 2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG # ミント $ spl-token mint HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac 1 2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG Minting 1 tokens Token: HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac Recipient: 2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG # アカウント情報 $ spl-token account-info HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac Address: 2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG Balance: 1 Mint: HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac Owner: HTqyoyXgQS9zjVCT2Co4iS2FTYWkivdUJHZuhJdHYktg State: Initialized Delegation: (not set) Close authority: (not set) ### TOKENs $ spl-token accounts Token Balance --------------------------------------------------------------- 41esUV1X3Ekm7yuaoT8TntefS6po9Ad64rUzAWVV3kWn 100 HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac 1
NFT
- create-tokenに
--decimals 0
フラグを追加して発行 - アカウント
2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG
に向けて 1 だけ mint - トークン
HgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac
の将来の mint (future minting) を無効化 - これによりアカウント
2vWKkYD7ho7FzrArizriTLPrtfBmJjkmRDtscKvQp9JG
はたった一つで唯一の (the one and only) トークンHgYLSyG1WkvJnuTKQuvVubj7S5VUaP2GMzR9zPmrGCac
を所持する
SolanaにおけるNFTはamount = 1 固定のFT扱い?
→ 記述あった
An NFT is simply a token type where only a single token has been minted.
https://spl.solana.com/token#non-fungible-tokens
たぶん
- Solanaではトークンをアカウント単位で所持
- アカウントは一つのキーペアで複数作成可能
- キーペアの公開鍵で各人を識別、例えばトークンのOwnerはPubKeyが表示されてる
spl-token account-info
はトークンを所持しているアカウントを教えてねコマンド- Addressにアカウントアドレスが表示
- Ownerは所持者のPub Key
- ことあるごとに出てくるSignitureがなんなのかは知らん