메인 콘텐츠로 건너뛰기
POST
getHistoricalTokenAccountsByOwner
getHistoricalTokenAccountsByOwner은 베타 버전입니다. 매개변수, 가격, 응답 형식 및 데이터 범위가 변경될 수 있습니다.

개요

getHistoricalTokenAccountsByOwner은 과거 슬롯 또는 해당 슬롯의 특정 트랜잭션 직후에 지갑이 소유했던 SPL Token 및 Token-2022 계정을 반환합니다. Helius 전용 RPC 메서드입니다. 표준 getTokenAccountsByOwner은 현재 상태만 반환합니다. jsonParsed 인코딩을 사용하면 토큰 수량에 요청한 위치 시점의 각 민트 소수 자릿수가 적용되므로, 잔액에는 해당 시점에 지갑이 보유했던 수량이 반영됩니다. 기록은 슬롯 444,959,999(2026년 9월 7일)부터 사용할 수 있으며, 이는 에포크 1030 시작 시점의 상태입니다. getHistoricalTokenAccountsByOwner은 Business 이상 요금제의 메인넷에서 사용할 수 있으며, 베타 기간에는 호출당 0크레딧이 부과됩니다. 가격은 변경될 수 있습니다.

getTokenAccountsByOwner와의 차이점

  • 민트 또는 프로그램 필터는 선택 사항입니다. 필터를 지정하지 않으면 지갑이 소유했던 모든 토큰 계정을 가져옵니다. 결과 범위를 좁히려면 구성 객체(세 번째 매개변수)에 mint 또는 programId 중 하나만 설정하세요.
  • 두 번째 매개변수는 쿼리 객체입니다. 민트 또는 프로그램 필터가 아니라 기록에서의 위치를 선택합니다.
  • result.value은 객체입니다. 배열이 아니라 accounts 및 paginationKey이 포함된 객체입니다.

기록에서 위치 선택

두 번째 매개변수는 쿼리 객체입니다.
  • 생략하거나 {}: 요청한 커밋먼트를 상한으로 하는 가장 최근에 인덱싱된 슬롯입니다.
  • { "slot": 445000000 }: 슬롯 445,000,000의 끝입니다.
  • { "slot": 445000000, "transactionIndex": 10 }: 해당 슬롯에서 인덱스 10의 트랜잭션이 실행된 직후입니다.
위치의 작동 방식은 과거 계정 가이드를 참조하세요.

요청 예시

이 요청은 슬롯 445,000,000의 끝에서 지갑이 보유한 USDC 토큰 계정을 반환합니다.

모든 토큰 계정 페이지네이션

결과는 민트순으로 정렬된 후 토큰 계정 주소순으로 정렬됩니다. 각 응답은 value.accounts과 <mint>:<tokenAccount> 형식의 커서인 value.paginationKey을 반환합니다. null이 될 때까지 다음 요청에 다시 전달하세요.
페이지가 짧거나 비어 있어도 paginationKey이 포함될 수 있습니다. paginationKey이 null인 경우에만 마지막에 도달한 것입니다.
페이지네이션할 때는 항상 slot을 명시적으로 전달하세요. 이를 생략하면 각 페이지가 가장 최근에 인덱싱된 슬롯을 읽으므로 서로 다른 시점의 페이지가 반환될 수 있습니다.

응답 읽기

value.accounts의 각 항목에는 토큰 계정의 pubkey와 account 객체가 있습니다. 계정 객체에는 getAccountInfo과 동일한 필드에 더해 lastUpdatedAt이 포함됩니다.
  • **lastUpdatedAt.slot**과 **lastUpdatedAt.transactionIndex**은 이 상태를 생성한 쓰기 작업을 식별합니다.
  • lastUpdatedAt.slot이 444,959,999이고 transactionIndex이 null인 경우 기록 범위가 시작된 후 토큰 계정이 변경되지 않았음을 의미합니다.
  • **context.slot**은 쿼리한 슬롯이 아니라 Helius가 요청을 처리할 때 인덱싱한 가장 최근 슬롯입니다.

오류

관련 메서드

Historical Accounts Guide

과거 계정 메서드에서 위치, 범위 및 lastUpdatedAt이 작동하는 방식

getHistoricalAccountInfo

과거 슬롯의 단일 계정 읽기

getTransactionsForAddress

검사하려는 트랜잭션의 슬롯 및 transactionIndex 찾기

getTokenAccountsByOwnerV2

지갑의 현재 토큰 계정 페이지네이션

요청 매개변수

string
필수
토큰 계정을 소유했던 지갑의 Base-58 인코딩 주소입니다. 토큰 계정이 아니라 소유자 지갑을 전달하세요.
number
상태를 읽을 슬롯입니다. 이 슬롯의 끝 시점에 해당하는 계정을 반환합니다. 지원되는 가장 이른 슬롯은 에포크 1030 시작 시점의 상태인 444959999입니다. 생략하면 요청한 커밋먼트를 상한으로 하는 가장 최근에 인덱싱된 슬롯을 읽습니다.
number
슬롯 내 트랜잭션의 위치입니다. 슬롯 끝이 아니라 해당 트랜잭션이 실행된 직후의 계정 상태를 반환합니다. slot이 필요합니다.
string
이 민트의 토큰 계정만 반환합니다. programId와 함께 사용할 수 없습니다.
string
이 토큰 프로그램이 소유한 토큰 계정만 반환합니다. mint와 함께 사용할 수 없습니다.
  • TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
  • TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
string
기본값:"base64"
계정 데이터의 인코딩 형식입니다. jsonParsed를 사용하면 토큰 수량에 요청한 위치 시점의 민트 소수 자릿수가 적용됩니다. base58 및 binary는 지원되지 않습니다.
  • base64
  • base64+zstd
  • jsonParsed
object
각 계정 데이터의 일부만 반환합니다. base64 및 base64+zstd 인코딩에 적용됩니다.
number
필수
읽기를 시작할 바이트 오프셋입니다.
number
필수
반환할 바이트 수입니다.
number
기본값:"5000"
반환할 토큰 계정의 최대 개수입니다(1~5,000개).
string
이전 응답의 paginationKey에서 가져온 &lt;mint&gt;:&lt;tokenAccount&gt; 형식의 커서입니다. mint도 설정하면 커서의 민트가 해당 값과 일치해야 합니다.
string
기본값:"finalized"
커밋먼트 수준입니다. processed는 지원되지 않습니다.
  • finalized
  • confirmed
number
요청을 평가할 수 있는 최소 슬롯입니다.

인증

api-key
string
query
필수

Helius API 키입니다. 대시보드에서 무료로 받을 수 있습니다.

본문

application/json
jsonrpc
enum<string>
기본값:2.0
필수

JSON-RPC 프로토콜 버전입니다.

사용 가능한 옵션:
2.0
예시:

"2.0"

id
string
기본값:1
필수

요청의 고유 식별자입니다.

예시:

"1"

method
enum<string>
기본값:getHistoricalTokenAccountsByOwner
필수

호출할 RPC 메서드의 이름입니다.

사용 가능한 옵션:
getHistoricalTokenAccountsByOwner
예시:

"getHistoricalTokenAccountsByOwner"

params
(string | 쿼리 · object | 구성 · object)[]
필수

소유자 지갑 주소, 기록 내 위치를 선택하는 선택적 쿼리 객체, 선택적 구성 객체가 포함된 배열입니다.

Required array length: 1 - 3 elements

토큰 계정을 소유했던 지갑의 Base-58 인코딩 주소입니다. 토큰 계정이 아니라 소유자 지갑을 전달하세요.

예시:

"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"

응답

과거 토큰 계정 페이지를 성공적으로 가져왔습니다.

jsonrpc
enum<string>

JSON-RPC 프로토콜 버전입니다.

사용 가능한 옵션:
2.0
예시:

"2.0"

id
string

요청과 일치하는 식별자입니다.

예시:

"1"

result
object