ホームに戻る
Solanaコース
Solanaブロックチェーン開発とストコントラクトプログラミングを学習
初
初級
無料で学習
初級基本コマンド
問題1: バージョン確認
Solana CLIが正しくインストールされているかを確認するために、バージョンを表示するコマンドを学びます。これはSolana CLIを使用する際の最初のステップです。`--version`オプションを使用してバージョン情報を表示できます。
インストールはこちらを参照: https://docs.solana.com/cli/install-solana-cli-tools
初級基本コマンド
問題2: 設定の確認
現在のSolana CLI設定を確認する方法を学びます。このコマンドは、RPC URL、WebSocket URL、鍵ペアのパス、コミットメントレベルなどの重要な設定を表示します。異なるSolanaネットワークで作業する際に、設定を理解することは不可欠です。
初級基本コマンド
問題3: クラスターをDevnetに設定
Solana CLIを異なるネットワークに接続するための設定方法を学びます。RPC URLとWebSocket URLは、CLIがリクエストを送信するSolanaクラスターを指定します。この問題では、開発とテストに最適なdevnetにクラスターを設定します。
初級基本コマンド
問題4: 新しいキーペアの生成
新しいSolanaウォレットのキーペアを生成する方法を学びます。Solana CLIを使用してトランザクションを送信するには、SOLが入ったSolanaウォレットが必要です。このコマンドはデフォルトの場所に新しいキーペアを作成し、公開鍵と復元用のシードフレーズを表示します。⚠️ 重要: シードフレーズは絶対に他人と共有しないでください!ウォレットと資金への完全なアクセス権を提供してしまいます。🔐
初級基本コマンド
問題5: ウォレットアドレスの表示
ウォレットのアドレス(公開鍵)を表示する方法を学びます。ウォレットアドレスは、他の人からSOLトークンを受け取るために共有するものです。このコマンドは現在のデフォルトキーペアの公開鍵を表示します。
初級基本コマンド
問題6: ウォレット残高の確認
ウォレットのSOL残高を確認する方法を学びます。このコマンドはウォレットに何SOLトークンがあるかを表示します。ウォレットを作成したばかりの時は、トークンを受け取るまで0 SOLと表示されます。
初級基本コマンド
問題7: エアドロップのリクエスト
テスト用にdevnetで無料のSOLトークンをリクエストする方法を学びます。エアドロップは、開発とテスト目的で無料のSOLトークンを取得できるdevnetとtestnetで利用可能な機能です。このコマンドは2 SOLをウォレットに送信するようリクエストします。
初級基本コマンド
問題8: ローカルテストバリデーターの起動
開発用のローカルテストバリデーターを起動する方法を学びます。Solana CLIにはローカル開発用の組み込みテストバリデーターが含まれています。このコマンドは別のターミナルでローカルバリデーターを起動し、devnetやmainnetに接続せずにアプリケーションをテストするためのローカルブロックチェーン環境を作成します。
初級基本コマンド
問題9: SPL Token CLIのインストール
SPL Token CLIツールのインストール方法を学びます。SPL Token CLIは、Solana上でトークンを作成・管理するためのコマンドラインユーティリティです。このツールは、Solanaブロックチェーン上でファンジブルトークンやノンファンジブルトークン(NFT)を扱う際に不可欠です。
初級トークン操作
問題10: 新しいトークンの作成
Solana上で新しいSPLトークンを作成する方法を学びます。このコマンドは指定されたパラメータで新しいトークンミントアカウントを作成します。トークンアドレス(ミントアカウント)は一意であり、新しいトークンをミントするために使用できます。デフォルトでは、トークンは小数点以下9桁で作成されます。
初級トークン操作
問題11: トークン供給量の確認
トークンの現在の供給量を確認する方法を学びます。新しいミントアカウントは供給量ゼロから始まります。supplyコマンドはミントされたトークンの総数を返します。これはトークンの発行を追跡し、流通供給量を理解するために不可欠です。
初級トークン操作
問題12: トークンアカウントの作成
特定のミントのトークンを保持するためのトークンアカウントを作成する方法を学びます。トークンを保持するには、その特定のトークンミントに関連付けられたトークンアカウントが必要です。このコマンドは、あなたのウォレットアドレスを所有者とした関連トークンアカウントを作成します。
初級トークン操作
問題13: トークンのミント
新しいトークンをミント(作成)する方法を学びます。ミントは新しいトークンを作成してトークンアカウントに預け入れることで、トークンの供給量を増やします。ミント権限者のみが新しいトークンをミントできます。ミントする量はトークンアドレスの後に指定します。
初級トークン操作
問題14: トークンの転送
トークンアカウント間でトークンを転送する方法を学びます。このコマンドはあなたのトークンアカウントから別のアカウントにトークンを移動します。受信者のウォレットアドレス(関連トークンアカウントを使用)または特定のトークンアカウントアドレスのいずれかを指定できます。
初級トークン操作
問題15: メタデータ付きトークンの作成
Token Extensions Programを使用してメタデータ機能を持つトークンを作成する方法を学びます。これにより、メタデータ(名前、シンボル、画像リンク)をMint Accountに直接保存できます。メタデータ拡張機能はトークン作成時に有効にし、別途初期化する必要があります。
初級トークン操作
問題16: トークンメタデータの初期化
メタデータ拡張機能で作成されたトークンのメタデータを初期化する方法を学びます。このコマンドはトークンの名前、シンボル、およびJSONフォーマットのオフチェーンメタデータへのリンクURIを設定します。ミント権限者がこのトランザクションに署名する必要があります。
中
中級
無料で学習
中級Solanaプログラミング基礎
問題17: Solanaアカウント構造体
Solanaのアカウント構造体を理解しましょう。Solanaでは、すべてのデータは「アカウント」内に存在します。アカウントには残高(lamports)、データ、所有者プログラム、実行可能フラグ、レントエポックの5つの主要なフィールドがあります。これらのフィールド名を正しく埋めて、アカウント構造体を完成させてください。
中級Solanaプログラミング基礎
問題18: ウォレットアカウントの取得
Solanaでウォレットアカウントを作成し、アカウント情報を取得する方法を学びます。新しいキーペアを生成し、SOLのエアドロップで資金を提供し、作成されたアカウントの詳細情報を取得します。すべてのウォレットアカウントはSystem Programが所有し、主にSOLの保持とトランザクションの署名に使用されます。
中級Solanaプログラミング基礎
問題19: Token Programの取得
Token Programアカウントを取得して、ウォレットアカウントとプログラムアカウントの違いを理解します。プログラムアカウントには実行可能なバイトコードが格納され、executableフラグがtrueに設定されています。Token ProgramはBPFLoader2によって所有され、Solana上でトークンの作成と管理を行う重要なプログラムです。
中級Solanaプログラミング基礎
問題20: Mintアカウントの取得
USD Coin(USDC)のmintアカウントを取得して、プログラムが状態を格納する方法を学びます。MintアカウントはToken Programが所有し、トークンの総供給量、小数点以下の桁数、ミント権限などのメタデータを保存します。executableはfalseで、dataフィールドには実行可能コードではなく状態データが格納されます。
中級Solanaプログラミング基礎
問題21: Mint構造体の定義
Token ProgramのMint構造体を理解しましょう。この構造体はトークンのメタデータを定義し、mintアカウントのdataフィールドに格納されます。mint_authorityはトークンの新規発行権限、supplyは総供給量、decimalsは小数点以下の桁数、is_initializedは初期化状態、freeze_authorityはアカウント凍結権限を表します。
中級Solanaプログラミング基礎
問題22: Mint Accountのデシリアライズ
Solanaアカウントのdataフィールドには生のバイトが含まれています。@solana/spl-tokenライブラリのgetMint()関数を使用して、Mint accountのデータをデシリアライズし、構造化されたデータとして扱う方法を学びます。これにより、総供給量、小数点以下の桁数、権限などの情報に簡単にアクセスできます。
中級Solanaプログラミング基礎
問題23: SOLの転送
2つのアカウント間でSOLを転送する方法を学びます。System Programはすべてのウォレットアカウントの所有者で、SOLの転送にはSystem Programのtransfer instructionを使用します。トランザクションを作成し、署名して送信し、転送後の残高を確認する一連の流れを理解しましょう。
中級Solanaプログラミング基礎
問題24: トークンの作成
Token Extensions Program(Token-2022)を使用して新しいトークンを作成する方法を学びます。mintアカウントを作成し、小数点以下の桁数や権限などのパラメータで初期化し、新しいToken-2022プログラムを使用します。レント免除額の計算、アカウントの作成、mintの初期化を1つのトランザクションで実行する必要があります。
中級Solanaプログラミング基礎
問題25: 初めてのAnchorプログラム
Solanaのセキュアなスマートコントラクトを書くためのフレームワーク、Anchorの基礎を学びます。まず基本的なインポートとプログラム宣言を理解しましょう。declare_id!マクロはプログラムのオンチェーンアドレスを指定し、Solana Playgroundはプロジェクトをビルドする際に自動的にこのアドレスを更新します。
中級Solanaプログラミング基礎
問題26: Anchorプログラムのインストラクション
Anchorでプログラムのインストラクションを定義する方法を学びます。#[program]属性は、インストラクションハンドラーを含むモジュールをマークします。このモジュール内の各パブリック関数は、クライアントアプリケーションから呼び出せるインストラクションになります。Context型はアカウントや他のインストラクションデータへのアクセスを提供します。
中級Solanaプログラミング基礎
問題27: Anchorのアカウント構造体
Anchorでアカウント構造体を定義する方法を学びます。#[derive(Accounts)]属性は、インストラクションに必要なアカウントを指定します。各フィールドは特定の型と制約を持つ個別のアカウントを表します。Anchorはフィールドタイプ(例:Signer'<''info'>')と制約(例:#[account(mut)])を通じて、一般的なセキュリティチェックを自動的に処理します。#[account]属性は、プログラムが作成して所有するカスタムデータ構造を定義します。
中級Solanaプログラミング基礎
問題28: Anchorプログラムのテスト
クライアント側からAnchorプログラムをテストする方法を学びます。テストファイルは、プログラムのinitializeインストラクションを呼び出す方法を示しています。このテストは新しいアカウントを作成し、カスタムデータでトランザクションを送信し、オンチェーンの状態が期待値と一致することを検証します。