
【完全保存版】Solana でNonce Accountを作ってみよう!
本日は、こちらの公式ドキュメントを元に、Nonce accountを作ってみます。
通常のアカウントは「BlockHash」をトランザクションに取り込むところ、こちらは「Nonce」を取り込みます。
やってみましょう。
まず今回は、Nonce accountの実行用とNonce account用のキーペアを作ります。
1 現在のキーペアの確認
まずは、次のコマンドで、現在のキーペアがどこに格納されているか確認しましょう。
solana config get
私の場合は
/Users/ytakahashi/.config/solana
の中に格納されているようです。

2 新しいキーペアの作成
では、それに基づいて、同じ階層に下のようにして、新しいキーペアを作成します。
solana-keygen new -o <格納場所>/nonce-authorigy.json
ファイル名は別の名前でも良いです。
これで、durable nonce用の作成用のキーペアのファイルを作成しました。

3 新しいキーペアのパスの設定
次に、上で作ったキーペアをパスとして設定します。
solana config set -k <格納場所>/<格納ファイル名>
下のようにセットできました。

4 テストトークンの取得
では、そちらのアドレスの確認や、テストトークンの取得を下のようにしてみましょう。
// アドレスの確認
solana address
// バランスの確認
solana balance
// テストトークンの取得
solana airdrop 5

5 durable nonceのキーペアの作成
次に、durable nonce用のキーペアを作成します。
先ほどは実行権限のキーペアで、今回は実際に使う用のキーペアです。
solana-keygen new -o <格納場所>/nonce-account.json

6 nonce accountの作成
では、今作ったアカウントをnonce accountにしましょう。
ヘルプを確認すると、このようになります。

下のように、引数にキーペアとamountが必要のようですね。

solana create-nonce-account <キーペア> <amount>
下のようにして実行しました。

シグネチャを確認すると、下のように、「System Program」の「Initialize Nonce」が実行されていました。

7 nonce accountの確認
次に、今作成したnonce accountのnonceを取得してみましょう。
ヘルプを見ると、次のようになっています。

では、下のようにして実行してみましょう。
solana nonce <アドレス>

もしくは、nonce accountの情報を次のようにしても確認できます。

solana nonce-account <アドレス>

8 nonceの更新
では、nonceを変更してみましょう。
ヘルプを見ると、次のようになります。

solana new-nonce <アドレス>
下のようになりました。

シグネチャを確認すると、下のように、「System Program」の「Advance Nonce」が実行されていることが確認できました。

では、nonceが変わったかを確認してみましょう。
solana nonce-account <アドレス>
下のように、変更されたことが確認できました。

9 nonce accountからの引き出し
次に、nonce accountからSOLを引き出しましょう。
ヘルプは下の通りです。

solana withdraw-from-nonce-account <引き出し元> <引き出し先> <amount>

シグネチャを確認してみると、下のように、「Unknown Instruction」となっております。

ただ、確認すると、Balanceが減っていることが確認できました。

今回は以上です。
いいなと思ったら応援しよう!
