Skip to main content
POST
getTokenAccountsByOwnerV2

Tổng quan

getTokenAccountsByOwnerV2 là phiên bản nâng cao của phương thức getTokenAccountsByOwner tiêu chuẩn, được thiết kế riêng để truy vấn hiệu quả các danh mục token và xử lý các ví nắm giữ lượng lớn token. Phương thức này bổ sung tính năng phân trang dựa trên con trỏ và khả năng cập nhật tăng dần.
Các tính năng mới trong V2:
  • Phân trang dựa trên con trỏ: Cấu hình giới hạn từ 1 đến 10.000 tài khoản token cho mỗi yêu cầu
  • Cập nhật tăng dần: Sử dụng changedSinceSlot để chỉ tìm nạp các tài khoản token mới được sửa đổi gần đây
  • Khả năng mở rộng danh mục: Xử lý hiệu quả các ví có hàng nghìn tài khoản token
  • Khả năng tương thích ngược: Hỗ trợ tất cả tham số và bộ lọc hiện có của getTokenAccountsByOwner
  • withContext tùy chọn: true thêm slot và apiVersion vào result.context; nếu bỏ qua hoặc đặt thành false thì chúng sẽ không được đưa vào
Yêu cầu về bộ lọc: Bạn phải cung cấp mint (token cụ thể) hoặc programId (chương trình SPL Token hoặc Token-2022) trong truy vấn. Không hỗ trợ truy vấn tất cả loại token của một chủ sở hữu mà không có bộ lọc.

Lợi ích chính

Large Portfolios

Xử lý các ví có hàng nghìn tài khoản token mà không gặp lỗi hết thời gian chờ hoặc vấn đề về bộ nhớ

Real-time Tracking

Theo dõi các thay đổi của danh mục theo thời gian thực bằng changedSinceSlot để cập nhật tăng dần

withContext (tùy chọn)

Giá trị Boolean trong đối tượng cấu hình (params[2]). Chỉ cấu trúc của result thay đổi, còn bộ lọc, giới hạn và cách phân trang không thay đổi. Nếu bỏ qua hoặc đặt thành false: result.value là mảng tài khoản token. Nếu đặt thành true: result.context cùng với result.value dưới dạng đối tượng (accounts, paginationKey). Nếu xử lý cả hai trường hợp, hãy phân nhánh theo Array.isArray(result.value).

Các phương pháp hay nhất khi phân trang

Hành vi phân trang quan trọng: Việc kết thúc phân trang chỉ được xác định khi không có tài khoản token nào được trả về. API có thể trả về ít tài khoản hơn giới hạn do áp dụng bộ lọc — luôn tiếp tục phân trang cho đến khi paginationKey là null.

Truy vấn danh mục cơ bản

Cập nhật danh mục tăng dần

Hỗ trợ chương trình token

Hỗ trợ Token-2022: Sử dụng TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb làm programId để truy vấn các tài khoản Token-2022 có phần mở rộng như phí chuyển, token sinh lãi và nhiều tính năng khác.

Di chuyển từ getTokenAccountsByOwner

Việc di chuyển rất đơn giản — chỉ cần thêm các tham số phân trang vào truy vấn hiện có:

Các phương thức liên quan

getTokenAccountsByOwner

Phương thức gốc không có tính năng phân trang

getProgramAccountsV2

Phương thức V2 dành cho các truy vấn tài khoản chương trình

Tham số yêu cầu

string
bắt buộc
Địa chỉ ví Solana (pubkey) của chủ sở hữu tài khoản cần truy vấn lượng token đang nắm giữ, ở dạng chuỗi được mã hóa base-58.
string
Địa chỉ phát hành token Solana cụ thể để chỉ truy xuất các tài khoản của một token hoặc NFT nhất định.
string
ID chương trình token Solana cụ thể (thường là chương trình SPL Token) đã tạo các tài khoản token.
string
Mức cam kết cho yêu cầu.
  • confirmed
  • finalized
  • processed
number
Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá.
boolean
Khi là true, trả về result.context (siêu dữ liệu ảnh chụp nhanh: slot, apiVersion) và lồng accounts cùng paginationKey bên trong result.value dưới dạng đối tượng. Khi là false hoặc bị bỏ qua, result.value là mảng tài khoản token của trang này, với paginationKey nằm trong result. Áp dụng cùng bộ lọc và giới hạn.
object
Yêu cầu một phần dữ liệu của tài khoản.
number
Số byte cần trả về.
number
Độ lệch byte để bắt đầu đọc.
string
Định dạng mã hóa cho dữ liệu Tài khoản.
  • base58
  • base64
  • base64+zstd
  • jsonParsed
number
Số tài khoản token tối đa trả về cho mỗi yêu cầu (1-10.000).
string
Con trỏ phân trang được mã hóa base-58 để tìm nạp các trang tiếp theo. Sử dụng paginationKey từ phản hồi trước đó.
number
Chỉ trả về các tài khoản token đã được sửa đổi tại hoặc sau số slot này. Hữu ích cho việc cập nhật danh mục tăng dần.

Ủy quyền

api-key
string
query
bắt buộc

Khóa API Helius của bạn. Bạn có thể nhận khóa miễn phí trong bảng điều khiển.

Nội dung

application/json
jsonrpc
enum<string>
mặc định:2.0

Phiên bản giao thức JSON-RPC.

Tùy chọn có sẵn:
2.0
Ví dụ:

"2.0"

id
string
mặc định:1

Mã định danh duy nhất cho yêu cầu.

Ví dụ:

"1"

method
enum<string>
mặc định:getTokenAccountsByOwnerV2

Tên của phương thức RPC cần gọi.

Tùy chọn có sẵn:
getTokenAccountsByOwnerV2
Ví dụ:

"getTokenAccountsByOwnerV2"

params
string · object · object[]

Các tham số để truy vấn những tài khoản token được phân trang thuộc sở hữu của một khóa công khai cụ thể.

Địa chỉ ví Solana (pubkey) của chủ sở hữu tài khoản cần truy vấn tài sản token, dưới dạng chuỗi được mã hóa base-58.

Ví dụ:

"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd"

Phản hồi

Đã truy xuất thành công các tài khoản token được phân trang theo chủ sở hữu.

jsonrpc
enum<string>

Phiên bản giao thức JSON-RPC.

Tùy chọn có sẵn:
2.0
Ví dụ:

"2.0"

id
string

Mã định danh khớp với yêu cầu.

Ví dụ:

"1"

result
không có withContext · object

Các tài khoản token được phân trang khi withContext là false hoặc bị bỏ qua. Khớp với cấu trúc quen thuộc, trong đó danh sách tài khoản là một mảng tại result.value (không được lồng trong accounts).