LoginSignup
1
1

solana 開発勉強日誌2 テストトークンの作成&送受信

Last updated at Posted at 2024-04-24

とりあえず感覚をつかむ為にdevnetで
ウォレットAとBを作成。テストトークンを作成して送り合ってみる

inu.jsonウォレットを作る

Phantomウォレットをデベロッパー設定からテストモードにしておく

solana-keygen new

上記キーペア作成コマンドを入力

(base) AAAA@DESKTOP-AAAAA:~/rust-like$ solana-keygen new
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):

Wrote new keypair to /home/AAAAAAA/.config/solana/id.json
========================================================================
pubkey: CcnjrouQkmLs1TEQt333333333333333

こんな感じでターミナルに出力される。BIP39 PassphraseはスルーしてOK

Wrote new keypair to /home/AAAAAAA/.config/solana/id.json
上記がキーペアが保存された場所。フォルダを開きid.jsonへ。テストトークンを作成して送受信したい為、今作ったキーペアid.jsonをinu.jsonと名前を変更(以降分かりやすくする為

/home/AAAAAAA/.config/solana/inu.json

inu.jsonを開き数字の列をコピー
Phantomウォレット(テストモード)開く
ウォレットの追加雄
秘密鍵のインポート
コピーした数字の列を入力
ウォレットの名前をinuとする

neko.jsonウォレットを作る

再度キーペア作成

solana-keygen new

再度作ったid.jsonをneko.jsonに変更

/home/AAAAAAA/.config/solana/neko.json

上記に変更。inu.jsonと同じ様にPhantomウォレット(テストモード)に追加する

以上で、ウォレットが2つ出来た。
inu.json( CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
neko.json( 37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg

Devnet用のSOLを上記サイトでinu.json&neko.jsonウォレットに貰いにいく(各5sol

solana config set --keypair ${HOME}/.config/solana/inu.json

上記コマンドでinu.jsonをセットする
(今から各コマンドを打つとinu.jsonに紐づいたウォレットに反映される)

テストトークン作成

spl-token create-token

inu.json アカウントで テストトークンを作る


Creating token 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

Address:  2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
Decimals:  9

Signature: 5m7EjvPYcKN2WhdXsy43QxfZQcxzyi5k2yb89Brp8nUeWxwPfLdGEE2eChNEvmVP1QfWCz69S4nrf1XcGH2Bpt8v

上記で作ったトークンの供給量を表示(コマンドで入力

spl-token supply 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku

0と表示されるはず
新しいトークンにはトークンを保持するアカウントが必要な為、下記コマンドを入力してアカウントを作成する

spl-token create-account 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku

上記コマンドを入力後、下記が出力
Creating account 3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS

Signature: 5Abb9jUXWoEK6gmYijCXTMHkrFrQcku96NHEQDhiCHs5khpyzXgcRT2hVK5D34uVPxxt7RsKNQvJs8W4YQ9BKHzv

スクリーンショット 2024-04-24 101059.png
inu.jsonのアカウント
CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
トークンを保持するアカウント(トークンアカウント
3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS
トークンをmintしたアカウント
2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku

spl-token mint 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 1000

上記コマンドでmintアカウントからトークンアカウントに1000個発行していう命令

スクリーンショット 2024-04-24 102408.png

spl-token balance 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku

上記アカウントに1000あるよ
Phantomウォレットを確認すると
inu.jsonのウォレットに不明なトークン1000
DevnetのSOLが4.996(トークン発行等で減った

spl-token transfer 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 50 37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg

上記コマンドはinu.jsonで作ったmintアドレス2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku
から50トークンを
nekoウォレット
37HiJNqc7oSZeWxTFSBdAHswHr6xv6YhDypR6eCdjndg
へ送信するコマンド

良くある謎のSCAMトークンやエアドロップと同じ様なコマンドです

今度は逆にneko.jsonからinu.jsonに謎トークンを50送ります
まずneko.jsonのウォレットをセットします

solana config set --keypair ${HOME}/.config/solana/neko.json

上記コマンドで以後neko.jsonが使用されます
次のコマンドでneko.jsonからinu.jsonへトークンを送信します

spl-token transfer 2o1cJy3jdRYfDGFRuETHSNCjh9QsjJyYgarga7i9Anku 50 CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4

Transfer 50 tokens
Sender: J2aV1ycq5YmtAe9i5gMzT5WFemFetva6z7Fg5XdyGREy
Recipient: CcnjrouQkmLs1TEQt3TSybKcJW8HJY9brAw8zFB8Vwt4
Recipient associated token account: 3TA3yZMH16aQk5TZYQ3nAP3UorD5YUTWBm49jnf6rFZS

正しく送信できました。
トークンをコマンドから送信する場合

spl-token transfer <トークンのmintアドレス> <数量> <送りたいアドレス>

この様な形になります
2つのウォレットの作成
テストトークンの作成
テストトークンの送受信が完了

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1