Skip to main content
Wallet API đang ở giai đoạn Beta. Các điểm cuối và định dạng phản hồi có thể thay đổi.

Tổng quan

Điểm cuối Lịch sử giao dịch truy xuất toàn bộ lịch sử giao dịch của ví Solana bằng Enhanced Transactions API. Điểm cuối này trả về các giao dịch đã phân tích cú pháp, dễ đọc cùng với những thay đổi số dư trong từng giao dịch, theo thứ tự thời gian đảo ngược (mới nhất trước). Điểm cuối trả về tối đa 100 giao dịch cho mỗi yêu cầu, vì vậy bạn phải phân trang theo cách thủ công. Sử dụng tham số before với pagination.nextCursor để truy xuất trang tiếp theo và đọc pagination.hasMore để biết khi nào còn kết quả khác. Mỗi yêu cầu là một lệnh gọi API và có chi phí 100 tín dụng. Tham số tokenAccounts kiểm soát việc có bao gồm các giao dịch liên quan đến tài khoản token thuộc sở hữu của ví hay không:
  • balanceChanged (khuyến nghị): bao gồm các giao dịch làm thay đổi số dư tài khoản token và lọc thư rác.
  • none: chỉ gồm các tương tác trực tiếp với ví.
  • all: tất cả giao dịch của tài khoản token, bao gồm cả thư rác.
Bộ lọc tokenAccounts dựa vào trường owner trong siêu dữ liệu số dư token. Trường này chưa có trước slot 111.491.819 (khoảng tháng 12 năm 2022). Các giao dịch liên quan đến tài khoản token hoạt động trước slot này có thể bị thiếu. Xem hướng dẫn getTransactionsForAddress để biết giải pháp thay thế.

Khi nào nên sử dụng

Sử dụng Transaction History API khi cần:
  • Hiển thị bảng tin giao dịch: cho người dùng xem toàn bộ lịch sử giao dịch của họ.
  • Tính PnL: theo dõi lãi và lỗ trên tất cả giao dịch.
  • Thuế và kế toán: tạo báo cáo giao dịch đầy đủ để khai thuế.
  • Phân tích danh mục đầu tư: phân tích mô hình và hoạt động giao dịch.
  • Nhật ký kiểm toán: duy trì hồ sơ đầy đủ về hoạt động của ví.
  • Tái dựng số dư: tái dựng số dư hiện tại từ dữ liệu lịch sử.

Bắt đầu nhanh

Truy vấn lịch sử cơ bản

Lấy các giao dịch gần đây nhất cùng những thay đổi số dư:

Phân trang để lấy toàn bộ lịch sử

Truy xuất tất cả giao dịch bằng cách phân trang với tham số before:

Tham số truy vấn

Các loại giao dịch khả dụng

Tham số type hỗ trợ lọc theo các loại giao dịch sau: 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

Ví dụ về bộ lọc

Định dạng phản hồi

Ghi chú về trường

  • timestamp: số giây Unix. Có thể là null đối với các giao dịch rất gần đây chưa được xử lý hoàn toàn.
  • error: null đối với giao dịch thành công; một giá trị lỗi đối với giao dịch thất bại. Giao dịch thất bại vẫn phát sinh phí.
  • balanceChanges: lượng tài sản nắm giữ trong ví đã thay đổi như thế nào trong giao dịch — amount dương là số token đã nhận, còn amount âm là số token đã gửi hoặc chi tiêu.
  • mint (trong balanceChanges): địa chỉ đúc token hoặc "SOL" đối với SOL gốc.
  • amount (trong balanceChanges): dễ đọc, đã được chia cho decimals — -0.05 có nghĩa là −0,05 SOL, không phải −0,05 lamport. Điểm cuối này không bao gồm trường amountRaw thô.

Ví dụ về thay đổi số dư

Trường hợp sử dụng

Tính tổng khối lượng giao dịch

Cộng tất cả các khoản chuyển để tính khối lượng giao dịch:

Tạo báo cáo thuế

Tạo báo cáo giao dịch để khai thuế:

Theo dõi giao dịch thất bại

Tìm tất cả giao dịch thất bại để xác định lỗi:

Tái dựng số dư trong quá khứ

Tính số dư tại một thời điểm cụ thể:
Để lấy số dư chính xác của một token tại một thời điểm, điểm cuối Số dư trong quá khứ đọc trực tiếp số dư sau giao dịch trên chuỗi thay vì cộng các thay đổi ở phía máy khách.

Phân tích phí giao dịch

Tính tổng phí đã trả:

Các phương pháp hay nhất

  • Sử dụng phân trang để lấy toàn bộ lịch sử. Một số ví có hàng trăm nghìn giao dịch; luôn phân trang khi truy xuất tất cả giao dịch.
  • Lưu dữ liệu lịch sử vào bộ nhớ đệm. Các giao dịch trong quá khứ không bao giờ thay đổi. Hãy lưu chúng vào bộ nhớ đệm cục bộ và chỉ truy xuất giao dịch mới.
  • Xử lý giao dịch thất bại. Kiểm tra trường error để phân biệt giao dịch thành công với giao dịch thất bại. Giao dịch thất bại vẫn phát sinh phí.
  • Sử dụng dấu thời gian để lọc theo ngày. Dấu thời gian được tính bằng giây Unix. Chuyển đổi sang ngày giờ địa phương để hiển thị và lọc.

Lỗi thường gặp

Bước tiếp theo

Token Transfers

Chế độ xem chỉ gồm các giao dịch chuyển với thông tin người gửi/người nhận — đơn giản hơn toàn bộ lịch sử.

Wallet API Overview

Tất cả các điểm cuối của Wallet API và quy ước dùng chung.

API Reference

Lược đồ yêu cầu và phản hồi cho lịch sử giao dịch.