見出し画像

【完全保存版】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でも確認することができました。

今回は以上です。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊