Request window · 30 minutes
The customer must connect and sign while the new request is open. If they miss the window, create a fresh request.
Follow one request in the order the software actually runs it. Signing, broadcasting, receiving USDT, and sending TRX are distinct steps.
The customer enters an exact USDT amount. The server checks the limit, fetches a TRX/USDT market rate, locks the quoted TRX payout, and saves a request. The amount form begins at 10 USDT. A new request has 30 minutes for the customer to connect and sign.
The customer opens the request inside Trust Wallet on TRON Mainnet. They review the USDT contract, their wallet, the Service Spender, exact amount, and TRX quote. Trust Wallet signs approve(spender, amount). No USDT moves at this point.
The server checks the signed transaction against the request: owner, token contract, spender, amount, network, raw data, transaction ID, signature, and expiration. It stores the exact signed payload. The request becomes APPROVAL_VERIFIED.
An operator selects Funding and chooses Fund customer & broadcast approval. The platform estimates the customer’s approval resource cost, adds its configured buffer and reserve, and sends the calculated TRX amount to the customer if it is within the funding cap. Once that transfer confirms, it broadcasts the customer’s unchanged signed approval.
The platform checks the approval transaction’s solidified receipt and reads the USDT contract’s live allowance. Only a positive confirmed allowance makes the request ACTIVE. This is permission to transfer; the USDT is still in the customer wallet.
An operator reviews and executes transferFrom. This request can transfer at most the amount originally typed by the customer, even if the signed approval is larger. The server also rechecks the live allowance and USDT balance. The Spender pays the transaction cost. Any remaining on-chain allowance must be revoked by the customer.
After the USDT transaction is solidified and balances reconcile, an Admin or Superadmin sends TRX from the separate Payout wallet. The payout is calculated from the amount of USDT actually received at the locked rate. The request completes after that payout confirms.
| Action | Signer and network cost | What moves |
|---|---|---|
| Approval funding | Funding wallet | TRX from Funding to customer |
| approve() | Customer wallet, using funded TRX or resources | USDT allowance is set; USDT stays put |
| transferFrom() | Service Spender wallet | USDT from customer to the request’s Treasury |
| Exchange payout | Payout wallet | Locked TRX amount from Payout to customer |
Approval funding and the exchange payout are two separate TRX transfers. Funding happens first so the customer can publish the approval. The payout happens only after USDT is received and verified.
The customer must connect and sign while the new request is open. If they miss the window, create a fresh request.
The app extends TRON’s transaction expiration by 3,600 seconds when it builds the approval. The admin screen shows the exact “Expires” time. Broadcast before that deadline.
An approval that has already succeeded on-chain is different: the transaction deadline does not remove the resulting USDT allowance. The allowance remains until it is used or changed on-chain. The server reads the current allowance before moving USDT.
References: TRON transaction expiry · TRC-20 allowance
No. It authorizes the named Service Spender for the exact amount. A separate confirmed transferFrom is required to move USDT.
To the company. Each request saves the company's default USDT wallet when it is created, and an operator may send a request's USDT to another address when needed. Every transfer records who sent it, how much, and where, and the customer always receives the TRX payout for the USDT that was taken.
No. The node may accept a signed transaction before it is included or executed. The platform waits for solidified confirmation and checks the contract result.
Keep the original txID and query it. A timeout can happen after the node accepted the transaction. Never create a replacement payment blindly.
See which account signs, pays fees, receives assets, and appears in configuration.