Gom USDT từ các địa chỉ nạp tiền trên TRON: kích hoạt, năng lượng và băng thông cho mỗi lần gom
Một cổng thanh toán hoặc một sàn giao dịch cấp cho mỗi khách hàng một địa chỉ nạp tiền riêng thì phải gom số USDT TRC-20 nằm trên các địa chỉ đó về một ví chính, tức ví nóng, trước khi có thể chi ra bất cứ khoản nào. Trên TRON, mỗi lần dịch chuyển như vậy là một lần chuyển USDT bình thường, do chính địa chỉ nạp tiền ký. Nó cần một tài khoản trên chuỗi, năng lượng cho lệnh gọi hợp đồng và băng thông cho các byte, và một địa chỉ nạp tiền chỉ từng được trả bằng USDT thì không có cái nào trong số đó.
Nhận USDT không tạo ra tài khoản
Số dư USDT là một mục trong bộ nhớ riêng của hợp đồng token. Một lần chuyển vào ghi mục đó và không tạo tài khoản nào, nên một địa chỉ có thể giữ USDT trong khi mạng lưới hoàn toàn không có tài khoản nào cho nó. Phép đo của chúng tôi ngày 7 tháng 9 năm 2026 tìm thấy hai địa chỉ như vậy trên mainnet: mỗi địa chỉ giữ USDT, và nút mà chúng tôi đọc trả về một đối tượng rỗng khi được hỏi tài khoản đứng sau nó, cả trước lệnh gọi thử của chúng tôi lẫn sau đó. Ngày 27 tháng 10, cả hai vẫn giữ đúng số dư mà chúng giữ hôm 7 tháng 9.
Năng lượng được ủy quyền tới một tài khoản, và chúng tôi không giao nó tới một địa chỉ không có tài khoản: một đơn hàng ở mode A hoặc mode C nêu một địa chỉ như vậy làm from sẽ nhận về 422 invalid_address với details.reason đặt là inactive_wallet. Bản thân chuỗi có chấp nhận một lần ủy quyền tới địa chỉ như vậy hay không thì chúng tôi chưa thử, vì lời từ chối của chúng tôi đến trước. Các ghi chú vận hành của chúng tôi cũng ghi lại câu trả lời của nút cho một lần gửi từ một chiếc ví chưa từng nhận gì, no OwnerAccount. Ghi chú đó nói về TRX gửi từ chính ví nóng của chúng tôi; chúng tôi chưa thử một lần chuyển USDT ra khỏi một địa chỉ ở trạng thái này. Câu chuyện rộng hơn của trạng thái đó nằm trong bài về các tài khoản chưa kích hoạt.
Kích hoạt một địa chỉ cần một lần chuyển TRX, do bên gửi trả
Bất kỳ lần chuyển TRX nào đi vào cũng tạo ra tài khoản, dù nhỏ đến đâu, và từ đó địa chỉ là một tài khoản như mọi tài khoản khác. Lần đầu của phép đo đó đã hỏng đúng ở chỗ này, và chúng tôi bỏ nó: một địa chỉ được đọc là chưa có tài khoản, và 22 giây sau có người gửi cho nó đúng một sun, điều đó đã tạo ra một tài khoản. Thời điểm tạo của chính nó đã nói vậy.
Phí tạo nó đổ lên người gửi TRX: trong một hệ thống gom, là chiếc ví cấp vốn cho các lần kích hoạt. Hai tham số của chuỗi định ra nó. Chúng tôi đọc chúng ngày 3 tháng 9 năm 2026, và mạng lưới có thể thay đổi chúng, nên hãy đọc lại trước khi bạn lập ngân sách theo chúng.
| Tham số chuỗi | Giá trị, đọc ngày 3 tháng 9 năm 2026 |
|---|---|
getCreateAccountFee | 0.1 TRX |
getCreateNewAccountFeeInSystemContract | 1 TRX |
Hai khoản đó kết hợp ra sao trên một lần chuyển TRX thông thường thì chúng tôi chưa đo bằng một lần gửi của chính mình: điều đó cần một lần chuyển thật tới một địa chỉ mới tinh, và chúng tôi chưa thực hiện lần nào. Dù thế nào thì phí cũng trả một lần cho mỗi địa chỉ. Một bàn vận hành kích hoạt mọi địa chỉ ngay khi nó được tạo ra sẽ trả phí này trên những địa chỉ có thể không bao giờ thấy một khoản nạp, còn bàn kích hoạt ở khoản nạp đầu tiên chỉ trả ở nơi có gì đó để gom.
Mỗi lần gom lấy con số năng lượng thấp hơn
Một lần chuyển USDT tiêu bao nhiêu năng lượng phụ thuộc vào người nhận. Khi người nhận đã giữ USDT, lần chuyển cần khoảng 65,000 đơn vị; khi số dư USDT của nó bằng không thì cần khoảng 131,000. Người nhận có tài khoản hay không không dính gì tới chuyện này. Phép đo đã tìm ra hai địa chỉ đó đặt cả bốn tổ hợp cạnh nhau, và số dư quyết định ở mọi lần (vì sao có hai con số).
Một lần gom luôn trả cho cùng một người nhận, là ví nóng, và ví nóng giữ USDT. Vậy mỗi lần gom đều là loại rẻ hơn, single, bất kể địa chỉ nạp tiền ở trạng thái nào. Các lệnh gọi ngày 7 tháng 9 chuyển ra một đơn vị từ một chiếc ví còn giữ lại phần còn lại, trong khi một lần gom chuyển đi tất cả và để địa chỉ nạp tiền về không. Ngày 27 tháng 10, chúng tôi nhờ nút mô phỏng cả hai trên cùng hai địa chỉ đó, với một chiếc ví giữ USDT làm người nhận.
| Lần chuyển mô phỏng tới một ví giữ USDT, ngày 27 tháng 10 năm 2026 | Năng lượng đã dùng |
|---|---|
| Địa chỉ thứ nhất, một đơn vị | 64,285 |
| Địa chỉ thứ nhất, toàn bộ số dư | 64,285 |
| Địa chỉ thứ hai, một đơn vị | 64,285 |
| Địa chỉ thứ hai, toàn bộ số dư | 64,285 |
Việc rút cạn địa chỉ nạp tiền không làm đổi gì, và con số này chính là con số mà phép đo đó cho ra với mọi lần chuyển tới một người đang giữ USDT. Đây là các mô phỏng của nút, và không cái nào là biên nhận của một lần gom đã phát; các con số ngày 7 tháng 9 cũng mang cùng lưu ý đó. Hai địa chỉ hôm nay có tài khoản hay chưa thì chúng tôi không đọc lại.
Cách duy nhất để mất loại rẻ hơn là rút cạn ví nóng. Chỉ một đơn vị USDT trên người nhận đã đủ cho con số thấp hơn, nhưng ở mức không thì lần gom kế tiếp vào nó cần khoảng 131,000 đơn vị, tức 13.1 TRX nếu bị đốt. Nếu bị đốt, một lần gom bình thường tốn 6.5 TRX ở mức giao thức là 100 sun mỗi đơn vị, và chi phí để thuê cùng lượng năng lượng đó thì dịch chuyển theo thị trường.
Băng thông miễn phí phủ khoảng một lần gom cho mỗi địa chỉ mỗi ngày
Băng thông đo các byte của một giao dịch, còn năng lượng đo phần tính toán của nó (hai đồng hồ đo đặt cạnh nhau). Mỗi tài khoản có một hạn mức miễn phí hằng ngày của nó. Lần chuyển USDT mà chúng tôi đã gửi và đo trên mainnet ngày 2 tháng 9 năm 2026 trả tiền băng thông bằng TRX, và điều đó cho biết chính xác nó bị tính bao nhiêu băng thông.
| Băng thông của một lần chuyển USDT | Giá trị | Đọc ngày |
|---|---|---|
Bị đốt cho các byte (net_fee) | 0.345 TRX | 2 tháng 9 năm 2026 |
Giá đốt của một byte (getTransactionFee) | 1,000 sun | 3 tháng 9 năm 2026 |
| Băng thông bị tính, theo phép chia | 345 byte | tính ra |
Hạn mức miễn phí cho mỗi tài khoản mỗi ngày (getFreeNetLimit) | 600 | 3 tháng 9 năm 2026 |
So với 600 mỗi ngày, một lần gom bị tính chừng đó thì vừa, còn hai lần liền nhau thì không. Quá hạn mức, mạng lưới đốt TRX của người gửi cho các byte. Vậy lần gom đầu tiên của một địa chỉ trong ngày không tốn gì về băng thông, và một địa chỉ nạp tiền cũng nhận năng lượng bằng ủy quyền thì không cần TRX riêng nào để gửi nó. Lần gom thứ hai ngay sau lần đầu trả tiền cho các byte của nó từ TRX của địa chỉ nạp tiền. Hạn mức hồi lại nhanh đến đâu giữa hai lần thì chúng tôi chưa đo; lần gom của chính chúng tôi tính theo khoảng một lần chuyển mỗi ngày cho mỗi địa chỉ từ hạn mức miễn phí. Nếu một địa chỉ sẽ được gom thường xuyên hơn thế, lần chuyển kích hoạt có thể để lại cho nó số TRX cho các byte đó cùng lúc.
Đặt năng lượng cho một đợt gom
Mode A nêu cả hai đầu của mỗi lần chuyển, địa chỉ nạp tiền làm from và ví nóng làm to, và chúng tôi tự đọc kind từ ví nóng. Mode C chỉ nêu ví cần cấp năng lượng và lấy kind từ bạn, phù hợp với một hệ thống lưu ký ký các lần gom theo lịch của riêng nó và muốn năng lượng đã đứng sẵn ở đó trước (mode C chi tiết). Với một lần gom, kind đó luôn là single, miễn là ví nóng còn giữ USDT. Cả hai chế độ đều nhận tối đa 500 lần chuyển trong một đơn hàng, cùng mức trần với một đợt chi trả. Thời hạn thuê là năm phút hoặc một giờ, và send_before ngắn hơn lúc kết thúc của nó ba giây.
Chỉ một địa chỉ nạp tiền không có tài khoản cũng khiến cả đơn hàng bị từ chối. 422 nêu tên nó trong details.index và details.address, và không có gì được mua. Vì vậy hãy sàng lọc đợt gom trước. POST /v1/estimate nhận cùng 500 lần chuyển đó và không giữ lại gì, và nó cảnh báo ở những chỗ đơn hàng sẽ từ chối: đưa from cho từng mục, và mọi địa chỉ nạp tiền không có tài khoản sẽ quay về với cờ inactive_sender. Hãy kích hoạt những địa chỉ đó, đợi các lần kích hoạt được xác nhận, rồi gửi đơn hàng. Lời từ chối không tiêu tốn Idempotency-Key, và chúng tôi đọc lại việc kích hoạt bỏ qua bộ đệm trước khi từ chối một đơn hàng vì nó, nên cùng khóa và cùng phần thân dùng được ngay khi lần chuyển kích hoạt được xác nhận.
Những quy tắc đáng rút ra từ đợt gom của chính chúng tôi
Chúng tôi chạy một đợt gom của riêng mình. Khách hàng trả tiền vào các địa chỉ nạp tiền mà chúng tôi giữ cho họ, và một lượt chạy nền chuyển những đồng đó tới ví nóng duy nhất dùng để trả cho các lần mua. Nó chuyển TRX, nên nó tiêu băng thông và không tiêu năng lượng, và các bản ghi của nó không nói gì về phía năng lượng của một lần gom USDT.
Đợt gom của chúng tôi đọc số tiền từ chuỗi vào lúc nó quyết định. Các bản ghi của chính chúng tôi không biết về một khoản phí đã bị đốt, hay về một lần gom mà dòng trong cơ sở dữ liệu không sống sót qua một tiến trình bị sập, còn chuỗi thì biết. Cùng quy tắc đó làm cho việc thử lại an toàn: nếu số tiền đã rời đi rồi thì không còn gì để gửi.
Chúng tôi giữ một lần gom đã phát ở trạng thái mở cho tới khi giao dịch của nó xuất hiện trong một khối, và chỉ ghi nhận nó là thất bại sau một khoảng không ngắn hơn thời hạn hết hạn dài nhất mà signer của chúng tôi đặt lên một giao dịch. Đóng nó sớm hơn thì một lần chuyển vẫn còn có thể tới nơi bị tính là đã mất, và lượt chạy kế tiếp có thể ký một lần chuyển thứ hai của cùng số dư. Trong lúc một lần gom chưa được xác nhận, địa chỉ của nó nằm ngoài lượt chạy kế tiếp.
Đợt gom TRX của chúng tôi gửi tối đa là số dư trừ một khoản dự phòng phí, và chỉ giữ khoản dự phòng đó khi băng thông miễn phí của địa chỉ đã dùng hết. Một lần gom USDT trả phí bằng một đồng khác với đồng nó chuyển, nên toàn bộ số dư USDT đi hết mỗi lần, và khoản dự phòng trở thành lượng TRX mà một địa chỉ nạp tiền cần cho các byte của lần gom thứ hai trong một ngày.
Hãy tìm mọi địa chỉ nạp tiền còn cần được kích hoạt trước khi đợt gom được tính giá, năm trăm địa chỉ mỗi yêu cầu: POST /v1/estimate kèm from cho từng mục →