メインコンテンツへスキップ
ウォレットAPIはベータ版です。エンドポイントとレスポンス形式が変更される可能性があります。

概要

トランザクション履歴エンドポイントは、Enhanced Transactions APIを使用してSolanaウォレットの完全なトランザクション履歴を取得します。各トランザクションの残高変化を含む、人間が読める形式の解析済みトランザクションが、新しいものから古いものへと逆年代順で返されます。 このエンドポイントは、リクエストごとに最大100件のトランザクションを返すため、ページネーションは手動で行います。次のページを取得するにはbeforeパラメータをpagination.nextCursorと共に使用し、より多くの結果が利用可能な場合はpagination.hasMoreを確認してください。各リクエストは単一のAPIコールで、100クレジットが消費されます。 tokenAccountsパラメータは、ウォレットが所有するトークンアカウントを含むトランザクションを含むかどうかを制御します:
  • balanceChanged(推奨):トークンアカウントの残高を変えたトランザクションを含め、スパムをフィルタリングします。
  • none:直接的なウォレットのやり取りのみ。
  • all:スパムを含むすべてのトークンアカウントのトランザクション。
tokenAccountsフィルタはトークン残高メタデータのownerフィールドに依存しており、このフィールドはスロット111,491,819(2022年12月頃)以前には利用できませんでした。このスロット以前にアクティブなトークンアカウントに関与するトランザクションが欠けている可能性があります。解決策については、getTransactionsForAddressチュートリアルをご覧ください。

使用タイミング

トランザクション履歴APIが必要な場合の使用法:
  • トランザクションフィードの表示:ユーザーに完全なトランザクション履歴を表示します。
  • PnLの計算:すべてのトランザクションの利益と損失を追跡します。
  • 税および会計:税務申告のための完全なトランザクションレポートを生成します。
  • ポートフォリオ分析:取引パターンと活動を分析します。
  • 監査トレイル:ウォレットアクティビティの完全な記録を維持します。
  • 残高再構築:過去のデータから現在の残高を再構築します。

クイックスタート

基本的な履歴クエリ

残高変化のある最新トランザクションを取得する:

全履歴のページネーション

ページネーションを使用してすべてのトランザクションを取得するには、beforeパラメータを使用:

クエリパラメータ

利用可能なトランザクションタイプ

typeパラメータは以下のトランザクションタイプによるフィルタリングをサポートしています: SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT, COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE, WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST, AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT, UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT, INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE, CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2, UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION

フィルタ例

レスポンス形式

フィールドノート

  • timestamp: Unix秒。完全に処理されていない非常に最近のトランザクションの場合、nullかもしれません。
  • error: 成功したトランザクションの場合はnull。失敗した場合はエラー値。失敗したトランザクションでも手数料が発生します。
  • balanceChanges: トランザクションでウォレットの保有がどのように変化したか — 正のamountは受け取ったトークンを示し、負のamountは送信または消費したトークンを示します。
  • mint (balanceChanges内): トークンミントアドレス、またはネイティブSOLのための"SOL"
  • amount (balanceChanges内): 人間が読める形式、すでにdecimalsで除算済みです — -0.05は-0.05 SOLを意味し、-0.05ラマポーツではありません。このエンドポイントには生のamountRawフィールドは含まれていません。

残高変化の例

ユースケース

総取引量の計算

すべての転送を合計して取引量を得る:

税務報告書の作成

税務申告用のトランザクションレポートを作成する:

失敗したトランザクションの追跡

エラーを理解するためにすべての失敗したトランザクションを見つける:

過去の残高を再構築する

特定の時点での残高を計算する:
単一トークンの特定時点の正確な残高については、Historical Balanceエンドポイントを使用してオンチェーンのポストバランスから直接読み取ります。

トランザクション手数料の分析

支払った手数料を合計する:

ベストプラクティス

  • 全履歴のページネーションを使用する。 一部のウォレットには何百万ものトランザクションが存在します。すべてを取得する際は必ずページネーションを使用してください。
  • 履歴データをキャッシュする。 履歴トランザクションは変更されません。ローカルにキャッシュし、新しいトランザクションのみを取得します。
  • 失敗したトランザクションを処理する。 成功したものと失敗したものを区別するため、errorフィールドをチェックしてください。失敗したトランザクションでも手数料が発生します。
  • 日時フィルタリングにはタイムスタンプを使用する。 タイムスタンプはUnix秒で表されています。表示やフィルタリングのためにローカル日付に変換してください。

一般的なエラー

次のステップ

トークン転送

送信者/受信者情報を伴う転送のみのビュー — フル履歴よりもシンプルです。

ウォレットAPIの概要

すべてのウォレットAPIエンドポイントと共通の規約。

APIリファレンス

トランザクション履歴のリクエストとレスポンススキーマ。