TokenManager for the token. Use this guide to configure them.
CCTP for non-USDC does not cap inbound transfers. Once a transfer is attested,
the destination always delivers the tokens.
How the throttles behave
- Rate limit. Caps the net outbound amount of a token in a sliding window.
Net outbound is the outbound amount minus the inbound amount received during
the same window. The default window length is six hours. Setting the rate
limit to
0blocks all outbound transfers of the token. After configuration, always verify the limit is non-zero before your firstcrossChainTransfer; a common mistake is configuring withrateLimit: 0and skipping this guide. - Max transfer amount. Caps the size of a single outbound transfer transaction. Applies on top of the rate limit to prevent oversize single transfers regardless of the headroom remaining in the rate-limit window.
1,000,000 over six hours:
- A user transfers
300,000out and100,000in during the window. Net outbound consumed is200,000. Remaining headroom:800,000. - A second user attempts to transfer
900,000out in the same window. The transfer reverts because net outbound would exceed1,000,000.
Prerequisites
Before you begin, ensure that you’ve:- Obtained the
tokenIdfor the token you want to configure. - Confirmed the wallet you’ll use holds the operator role for that token’s
TokenManager.
Steps
1
Discover the TokenManager address
Read the local
TokenManager address from the CrossChainTokenService:TypeScript
2
Set the rate limit
Call
setRateLimit with the maximum net outbound amount per window in the
token’s smallest unit.TypeScript
3
Set the max transfer amount
Call
setMaxTransferAmount to cap the size of a single outbound transfer.TypeScript
4
Set the rate-limit window (optional)
The default window is six hours. To change it, call
setRateLimitWindow with
the new window length in seconds.TypeScript
5
Verify the configuration
Read the current values from the
TokenManager and confirm they match what you
set. If rateLimit is still 0, outbound transfers revert until you call
setRateLimit with a positive amount (in the token’s smallest unit).TypeScript