Skip to main content
Phương thức RPC getBalance là một cách đơn giản để kiểm tra số dư SOL gốc của bất kỳ tài khoản nào trên blockchain Solana. Phương thức này trả về số dư theo lamport (1 SOL = 1.000.000.000 lamport). Phương thức này nhẹ hơn getAccountInfo nếu bạn chỉ cần số dư SOL mà không cần thông tin tài khoản nào khác.

Trường hợp sử dụng chính

  • Kiểm tra nhanh lượng SOL nắm giữ của một tài khoản: Mục đích chính là xác định lượng SOL mà một tài khoản (ví, chương trình, v.v.) đang nắm giữ.

Tham số

  1. publicKey (chuỗi, bắt buộc): Khóa công khai được mã hóa base-58 của tài khoản cần truy vấn.
  2. config (đối tượng, không bắt buộc): Đối tượng cấu hình có các trường sau:
    • commitment (chuỗi, không bắt buộc): Chỉ định mức cam kết dùng cho truy vấn. Mặc định là finalized.
      • finalized: Nút sẽ truy vấn khối gần nhất được đại đa số cụm xác nhận là đã đạt thời gian khóa tối đa.
      • confirmed: Nút sẽ truy vấn khối gần nhất đã được đại đa số cụm bỏ phiếu.
      • processed: Nút sẽ truy vấn khối gần nhất của mình. Lưu ý rằng khối này có thể chưa hoàn chỉnh.
    • minContextSlot (số, không bắt buộc): Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá.

Phản hồi

Trường result của phản hồi JSON-RPC sẽ là một đối tượng chứa:
  • context (đối tượng):
    • slot (số): Slot tại đó số dư được truy xuất.
    • apiVersion (chuỗi, không bắt buộc): Phiên bản API RPC (có thể không được cung cấp từ tất cả các nút).
  • value (số): Số dư tài khoản tính bằng lamport (số nguyên 64 bit không dấu).
Nếu tài khoản không tồn tại trên chuỗi, getBalance thường sẽ trả về giá trị 0 lamport.

Ví dụ: Truy xuất số dư tài khoản

Hãy kiểm tra số dư SOL của ID Serum Program V3 (9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin) trên mạng chính. Bản thân tài khoản chương trình này nắm giữ SOL để được miễn tiền thuê. Lưu ý: Thay YOUR_API_KEY bằng khóa API Helius thực tế của bạn trong các ví dụ dưới đây.

Mẹo dành cho nhà phát triển

  • Đơn giản hóa việc lấy số dư SOL: Nếu bạn chỉ cần số dư SOL của tài khoản mà không cần dữ liệu trên chuỗi nào khác (như chủ sở hữu, dữ liệu hoặc trạng thái thực thi), getBalance hiệu quả hơn getAccountInfo vì truy xuất ít dữ liệu hơn.
  • Tài khoản không tồn tại: Nếu một tài khoản không tồn tại trên chuỗi (chưa từng được khởi tạo hoặc chưa từng có SOL), getBalance sẽ trả về 0. Đây có thể là cách nhanh chóng để kiểm tra sự tồn tại của tài khoản nếu bạn chỉ quan tâm đến số dư SOL của tài khoản đó.
  • Lamport và SOL: Hãy nhớ rằng số dư được trả về theo lamport. Bạn cần chia cho LAMPORTS_PER_SOL (1.000.000.000) để chuyển đổi sang SOL.
  • Mức cam kết: Việc lựa chọn commitment có thể ảnh hưởng đến tốc độ nhận số dư và mức độ xác nhận của số dư đó. Đối với hầu hết mục đích hiển thị trên giao diện người dùng, confirmed mang lại sự cân bằng hợp lý. Đối với các giao dịch tài chính quan trọng, finalized mang lại độ đảm bảo cao nhất. Xem Các mức cam kết của Solana để biết thông tin chi tiết.
  • Xử lý theo lô với getMultipleAccounts: Mặc dù getBalance dành cho một tài khoản, nếu cần số dư của nhiều tài khoản, việc sử dụng getMultipleAccounts rồi trích xuất số dư lamport từ thông tin của từng tài khoản có thể mang lại hiệu suất cao hơn so với nhiều lệnh gọi getBalance riêng lẻ.

Phương thức liên quan

getAccountInfo

Lấy đầy đủ thông tin tài khoản, bao gồm dữ liệu, chủ sở hữu và trạng thái thực thi

getMultipleAccounts

Truy xuất hàng loạt nhiều tài khoản trong một yêu cầu duy nhất