Skip to main content
Phương thức RPC getMinimumBalanceForRentExemption cho phép bạn tính số dư lamport tối thiểu cần thiết để một tài khoản có kích thước dữ liệu cụ thể được miễn tiền thuê. Trong Solana, các tài khoản phải duy trì số dư tối thiểu để trang trải chi phí lưu trữ theo thời gian, một khái niệm được gọi là tiền thuê. Các tài khoản có số dư tương đương với hai năm thanh toán tiền thuê được xem là “miễn tiền thuê” và số dư của chúng không bị khấu trừ bởi tiền thuê.

Các trường hợp sử dụng phổ biến

  • Tạo tài khoản: Trước khi tạo tài khoản mới (ví dụ: tài khoản token mới, địa chỉ do chương trình tạo hoặc kho lưu trữ dữ liệu tùy chỉnh), hãy sử dụng phương thức này để xác định số lamport cần phân bổ nhằm giúp tài khoản được miễn tiền thuê ngay từ đầu. Điều này ngăn tài khoản bị thu gom rác nếu số dư xuống quá thấp.
  • Định cỡ tài khoản động: Nếu ứng dụng xử lý các tài khoản có kích thước dữ liệu có thể tăng lên, bạn có thể sử dụng phương thức này để kiểm tra định kỳ xem có cần thêm lamport để duy trì trạng thái miễn tiền thuê hay không.
  • Ước tính chi phí: Ước tính chi phí SOL liên quan đến việc triển khai chương trình hoặc tạo tài khoản dữ liệu có nhiều kích thước khác nhau.
  • Tích hợp ví và SDK: Các ví và SDK sử dụng phương thức này để đảm bảo cấp vốn phù hợp cho tài khoản mới.

Tham số yêu cầu

  1. dataLength (usize, bắt buộc): Độ dài dữ liệu của tài khoản tính bằng byte. Đây là yếu tố chính quyết định mức tối thiểu để được miễn tiền thuê.
    • Ví dụ: 165 (đối với tài khoản SPL Token tiêu chuẩn).
  2. commitment (object, không bắt buộc): Chỉ định mức cam kết cho truy vấn. Nếu bỏ qua, mức cam kết mặc định của nút RPC sẽ được sử dụng.
    • Các trường:
      • commitment (chuỗi): ví dụ: "finalized", "confirmed" hoặc "processed".

Cấu trúc phản hồi

Trường result của phản hồi JSON-RPC sẽ là một u64 (số nguyên 64 bit không dấu), biểu thị số lamport tối thiểu cần thiết để tài khoản có dataLength đã chỉ định được miễn tiền thuê.

Ví dụ

1. Lấy mức miễn tiền thuê cho tài khoản token tiêu chuẩn (165 byte)

Ví dụ này truy vấn số dư tối thiểu cần thiết để một tài khoản SPL Token thông thường (có kích thước dữ liệu là 165 byte) được miễn tiền thuê.

2. Lấy mức miễn tiền thuê cho tài khoản có dữ liệu 0 byte

Ví dụ này cho biết mức miễn tiền thuê cơ bản đối với tài khoản không có dữ liệu, thường là mức tối thiểu tuyệt đối cho mọi tài khoản.

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

  • Tiền thuê thay đổi theo kích thước dữ liệu: Dữ liệu của tài khoản càng lớn thì mức tối thiểu để được miễn tiền thuê càng cao.
  • Tham số mạng: Chi phí tiền thuê cơ sở (lamport trên mỗi byte-năm) là một tham số mạng, về lý thuyết có thể thay đổi thông qua biểu quyết của cụm, mặc dù điều này hiếm khi xảy ra. Phương thức getMinimumBalanceForRentExemption sẽ luôn trả về giá trị hiện tại dựa trên trạng thái của cụm.
  • Lamport so với SOL: Phản hồi được tính bằng lamport. Hãy nhớ rằng 1 SOL = 1.000.000.000 lamport.
  • Thiết yếu cho khả năng tồn tại lâu dài: Việc đảm bảo các tài khoản được miễn tiền thuê rất quan trọng đối với khả năng duy trì dữ liệu lâu dài trên blockchain Solana.
Hướng dẫn này giúp bạn hiểu và sử dụng phương thức RPC getMinimumBalanceForRentExemption để quản lý hiệu quả tiền thuê tài khoản trong các ứng dụng Solana.