requestAirdrop RPCメソッドは、指定されたアカウントにSOL(lamports)のエアドロップをリクエストすることができます。このメソッドはDevnetやTestnetのような非メインネット環境専用であり、開発者に無料のSOLを提供するためのファーセットとして機能します。
重要: このメソッドはMainnet Betaでは動作しません。
一般的な使用ケース
- テストウォレットへの資金供給: DevnetまたはTestnetでのトランザクション手数料の支払いとプログラムのデプロイのためにSOLを取得します。
- 自動化テスト: スクリプトはテストアカウントに十分なSOLがあることを確認するために
requestAirdropを使用できます。 - 開発と実験: 開発中にオンチェーンプログラムと対話するために素早くSOLを取得します。
リクエストパラメータ
pubkey(文字列, 必須): エアドロップされるlamportsを受け取るアカウントの公開鍵で、base-58エンコードされた文字列として提供されます。lamports(u64, 必須): リクエストするlamportsの量。(1 SOL = 1,000,000,000 lamports)options(オブジェクト, 任意): オプションの構成オブジェクトで、以下を含むことができます:commitment(文字列, 任意): エアドロップトランザクションを確認する際のコミットメントレベルを指定します(例:"finalized","confirmed","processed")。省略した場合、ノードのデフォルトのコミットメントが使用されます。
応答構造
JSON-RPCの応答内のresultフィールドは、エアドロップのトランザクション署名を表す単一の文字列であり、base-58でエンコードされています。
応答例:
getTransactionやSolanaエクスプローラーを使用してエアドロップトランザクションの状況を追跡するために使用できます。
コード例
開発者ヒント
- ネットワーク特有: このメソッドは、ファーセットが有効なテストネットワーク(Devnet、Testnet)でのみ機能します。Mainnet Betaでは失敗します。
- レート制限: エアドロップファーセットは悪用を防ぐためにレート制限されることがよくあります。短期間に多くのリクエストを行うと、エラーが返される可能性があります。
- 量制限: エアドロップごと、または時間枠ごとにリクエストできるSOLの量に制限がある場合があります。
- 確認:
requestAirdropが署名を返した後、トランザクションはネットワークによって処理および確認される必要があります。確認待ちにはconfirmTransaction(@solana/web3.jsから)を使用するか、getSignatureStatusesをポーリングすることができます。
requestAirdropを使用する方法を説明しています。
関連メソッド
getBalance
エアドロップを受け取った後のSOL残高を確認
getSignatureStatuses
エアドロップ確認のためにトランザクションのステータスをポーリング