How a transfer is recorded
When you calldeposit, the bridge router on BOT Chain:
- Emits
DepositEventwith adepositNonce. This number is the transfer’s ID on the router. - Stores a record under that nonce in
refundDatas(nonce).
ExecutionConfirmed(localNonce) and executionConfirmed(nonce) returns true. If the transfer is refunded instead, the router emits Refunded and the record’s refunded flag becomes true.
BOT Chain doesn’t document these status fields. This page is based on the router’s ABI and on testnet transfers. On 2026-10-01, a 1,000 USDT deposit to Sepolia was confirmed 54 seconds after the deposit block. On 2026-10-02, two 11 USDT deposits to BSC testnet were both delivered, one of them released on BSC testnet 38 seconds after the deposit block.
Steps
1
Set up the project
Use the
bot-defi project from Wrap BOT. This script only reads.2
Write the script
track-transfer.ts
- The filter keeps only events from the router. The bridge contract emits a separate
Depositevent with its own per-destination nonce, which you don’t need here. refundDatasreturns a tuple. Item 3 isrefunded.
3
Run it
Verify it worked
Output for the deposit made in Bridge USDT out on testnet on 2026-10-02. It printedpending on the first two runs and delivered on the third:
Output
botChain instead of botChainTestnet.
Confirm arrival on the destination
“Delivered” means the router recorded the release. To see the USDT itself, open the recipient’s address on the destination explorer and look for an incoming USDT transfer from the gateway listed in Contract addresses:- Ethereum: Etherscan, or Sepolia Etherscan on testnet
- BNB Smart Chain: BscScan, or BscScan testnet
- Tron: Tronscan, or Nile Tronscan
What a refund means
A refund returns the USDT to the sender on BOT Chain when a transfer isn’t delivered. On testnet, transfer 389 was refunded: the sender deposited 202 USDT and got 201 back, so the bridge fee wasn’t returned. Refunds are triggered by the bridge operator. In the router’s ABI,adminRefund needs an operator role, so you can’t start one yourself. If a transfer stays pending for much longer than usual, contact BOT Chain with the deposit transaction hash.
Troubleshooting
No bridge DepositEvent in this transaction
No bridge DepositEvent in this transaction
Check the hash is the
deposit transaction, not the approve before it, and that you’re on the right network.The status stays pending
The status stays pending
The validators and relayer may be waiting for the destination side, or the destination may lack liquidity. Wait and check again, then contact BOT Chain with the hash.
Delivered, but the recipient's balance didn't change
Delivered, but the recipient's balance didn't change
Check the recipient address and the destination chain in the script’s first line, then look for the gateway transfer on that chain’s explorer. On BNB Smart Chain, check you formatted with 18 decimals.
Next steps
Bridge USDT out
Send a transfer.
Bridge overview
How lock and release works.