【完全保存版】solanaでマルチシグアカウントを作成し、ミントをしよう!
こちらの記事は、こちらのドキュメントの中の「Multisig usage」の部分を元に作成しています。
0 始める前に
はじめてsolanaを触る方は、下の記事やその他の記事から学び始めることをお勧めします。
1 テストアカウントの作成
まず、今回作るテスト用のアカウントを3つ作ります。
これは、3つ中、2つの署名があれば実行できる、という状況を作るためです。
こちらのコマンドで実行します。
for i in $(seq 3); do solana-keygen new --no-passphrase -so "signer-${i}.json"; done
ちなみに、このコマンドは3つのパートからできています。
まず、この部分で、1から連続した(seq)3つを繰り返しています。
こちらで、パスフレーズを用いず、「signer-◯.json」という名前でキーペアを生成しています。
そして、ここでループが終わることを示しています。
結果として、3つのキーペアができました。
2 テストアカウントの公開鍵の取得
では、次のコマンドで、作成したテストアカウントの公開鍵を取得しましょう。
for i in $(seq 3); do SIGNER="signer-${i}.json"; echo "$SIGNER: $(solana-keygen pubkey "$SIGNER")"; done
こちらで、「SIGNER」にファイル名を入れています。
「solana-keygen pubkey」でファイルの公開鍵を取得しています。
それにより、公開鍵を取得できました。
3 マルチシグアカウントの作成
では、マルチシグアカウントを作ってみましょう。
spl-token create multisig <閾値> <公開鍵①> <公開鍵②> <公開鍵③>
閾値とは、全体(今回は3つ)のうち、幾つ(今回は2)の署名があればトランザクションを行えるかです。
また、「\」はただの改行のために使っています。
これにより、「Dvn…T5S」というマルチシグアカウントが作れました。
Solscanを見てもこのようにできています。
4 トークンの作成
では、マルチシグアカウントに権限を与えるトークンを作ってみましょう。
作る時点では、マルチシグは関係ありません。
spl-token create-token
このように、「D1B…cwJ」というアドレスのトークンができました。
Solscanでもこのようになっています。
5 関連アカウントの作成
では、トークンに対する、関連アカウントを作りましょう。
まだマルチシグは関係ありません。
spl-token create-account <トークンアドレス>
次のように関連アカウントができました。
SolScanでもこのようになりました。
6 マルチシグへのミント権限の付与
では、準備ができたので、マルチシグに作成したトークンへのミント権限を与えます。
spl-token authorize <トークンアドレス> mint <マルチシグアドレス>
このように、「mintTokens」という権限のタイプに対して、マルチシグアカウントを設定できました。
7 マルチシグによるミントの実行
では、権限が与えられたので、マルチシグで関連アカウントに対して、100トークンをミントしてみます。
spl-token mint \
<トークンアドレス> \
<ミント量> \
<ミント先アドレス> \
--owner <マルチシグアドレス> \
--multisig-signer <マルチシグファイル①> \
--multisig-signer <マルチシグファイル②>
閾値は2なので、これで実行することができます。
SolScanでも確認することができました。
今回は以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊