Skip to main content
This guide shows you how to read the bridge’s current limits and fees from the contracts, so your app never relies on a number that has changed.
Everything on this page uses testnet (chain 968). Get free test tokens from the faucet.

What you can read

The router’s Bridge() function returns the bridge contract’s address. The limits are in whole USDT, not base units. Convert them with parseUnits(value.toString(), 6) before comparing with an amount.

Steps

1

Set up the project

Use the bot-defi project from Wrap BOT. This script only reads, so it needs no key.
2

Write the script

bridge-limits.ts
botBridgeAbi and USDT_RESOURCE_ID come from @uzolabs/sdk/contracts. The two bridge functions aren’t in that ABI, so the script declares them with parseAbi.
3

Run it

Verify it worked

On testnet on 2026-10-02:
Output
To read mainnet, import botChain instead of botChainTestnet and use botChain in both places. The same day, mainnet returned the same fee and minimums, a maximum of 30150 USDT, and destinations 56, 1 and 728126428. Mainnet and testnet limits differ, so always read the network you’re sending on.

Work out the fee

The fee is the percentage or the minimum fee, whichever is larger, and comes out of the amount you send:
bridge-fee.ts
This matches real testnet transfers: a 1,000 USDT deposit delivered 999, a 500 USDT deposit delivered 499, and an 11 USDT deposit delivered 10, because 0.1% of 500 or 11 is below the 1 USDT minimum. BOT Chain’s fee docs describe the same rule for bridging out and say bridging in is free of bridge fees.

Check before every transfer

  • Stop if getBridgePause() is true.
  • Check the amount is between the minimum and maximum.
  • Check the destination is in the supported list.
  • Show the user the fee and the amount that will arrive.

Troubleshooting

They’re whole USDT, not base units. 10 means 10 USDT.
Call it on the bridge address from Bridge(), not on the router, and pass the USDT resource ID from Contract addresses.

Next steps

Bridge USDT out

Use these checks before a deposit.

Track a transfer

Follow a transfer to arrival.
Last modified on October 2, 2026