getSignaturesForAddress RPCメソッドを使用すると、特定のアカウントアドレスが関与する確認済みトランザクション署名のリストを取得できます。これはアカウントのトランザクション履歴を取得するのに役立ちます。署名は新しいものから順に返されます。
一般的なユースケース
- アカウントトランザクション履歴: ユーザーウォレットの過去のトランザクションを表示します。トランザクション履歴のより高度な解析には、Helius のEnhanced Transactions APIの使用を検討してください。
- アクティビティ監査: 特定のスマートコントラクトまたはアカウントに関連するすべてのトランザクションを確認します。
- 特定トランザクション検索: 関与アドレスのみが知られている場合、アカウントの履歴を通じて特定のトランザクションを見つけます。
- データインデクシング: より迅速なクエリと分析のためにトランザクションのローカルインデックスを構築します。
リクエストパラメータ
address(string): (必須) トランザクション署名を取得するアカウントのbase-58エンコードされた公開鍵。options(object, 任意): 以下のフィールドを持つオプションの設定オブジェクト:limit(number, 任意): 返される署名の最大数。デフォルトは1000で、最大許容数も1000。before(string, 任意): base-58エンコードされたトランザクション署名。指定された場合、この署名の前からトランザクション検索を開始します。until(string, 任意): base-58エンコードされたトランザクション署名。指定された場合、この署名まで(除外)トランザクションを検索します。commitment(string, 任意): クエリに使用するコミットメントレベルを指定します。サポートされている値はfinalizedまたはconfirmedです。processedコミットメントはサポートされていません。省略された場合、RPCノードのデフォルトコミットメントが使用されます(通常はfinalized)。minContextSlot(number, 任意): リクエストを評価できる最小スロットを指定します。これは履歴トランザクションのフィルタではなく、ノードのコンテキストの最小スロットを設定します。
応答構造
JSON-RPC応答のresultフィールドは、署名情報オブジェクトの配列です。各オブジェクトは以下の構造を持ちます:
signature(string): base-58エンコードされたトランザクション署名。slot(u64): トランザクションが処理されたスロット。err(object|null): トランザクションが失敗した場合のエラーオブジェクト、成功した場合はnull。memo(string|null): トランザクションに関連付けられたメモがある場合。blockTime(i64|null): トランザクションを含むブロックの推定生成時間(Unixタイムスタンプ)。利用不可の場合はnull。confirmationStatus(string|null): トランザクションの確認ステータス(例:processed,confirmed,finalized)。利用不可(古いHelius応答など)の場合はnull。
例
1. アドレスの最新署名を取得
この例では、指定されたアドレスに対する最大1000件の最新トランザクション署名を取得します。2. 制限付きで署名を取得
この例では、アドレスに対する指定された数の最近のトランザクション署名を取得します。3. トランザクション履歴のページング
この例では、パラメータbeforeを使用してトランザクション履歴をバッチ処理で取得する方法を示します。
開発者向けヒント
- ページネーション: 活動中のアカウントの完全なトランザクション履歴を取得するには、複数のリクエストを行い、前回のバッチで受け取った最後の署名と
limitパラメータを使用します。 - レートリミット: 大量のトランザクション履歴を取得する際には、RPCノードのレートリミットに注意してください。
- 順序: 署名は常に新しいものから古いものへの順序で返されます。
limitパラメータ:limitパラメータは1から1000の範囲で指定可能です。指定されない場合、デフォルトは1000です。untilパラメータ: このパラメータを使用すると、既知の古い署名に達した場合に署名の取得を停止できます。特定のポイントまでのトランザクションのみを必要とする場合に有用です。minContextSlot: このパラメータは履歴トランザクションをフィルタしません。これは、ノードがリクエストの評価に使用するコンテキストの最小スロットを指定します。ノードの状態がこのスロットよりも古い場合、エラーを返すことがあります。- トランザクション詳細: このメソッドは署名と基本情報のみを返します。完全なトランザクション詳細を取得するには、各署名で
getTransactionメソッドを使用します。 - トークンアカウントの制限: このメソッドは提供されたアドレスを直接参照するトランザクションのみを返します。アドレスが所有するトークンアカウントに関与するトランザクションは含まれません。関連トークンアカウントを含む完全なトークン履歴には
getTransactionsForAddressをtokenAccountsフィルタと共に使用してください。
getSignaturesForAddressのページネーションオプションを使用すると、任意のSolanaアドレスのトランザクション履歴を効果的に取得および管理できます。
関連メソッド
getTransactionsForAddress
高度なフィルタリング、ソート、トークンアカウント履歴
getTransaction
署名から完全なトランザクション詳細を取得