Why Does My Token Balance Change After Bridging?
A bridged token balance can differ because the bridge limits precision, charges a token-denominated relayer fee, or delivers a wrapped representation with different decimals. For an integration, compare the raw amount delivered with the amount requested, then convert each using the decimals of the actual token contract on its own chain. A matching symbol alone does not prove the two balances represent the same asset.
That distinction matters when comparing a general bridge transfer with Portal Bridge cross-chain transfers: the displayed amount is only useful when you know which token contract was received and how the transfer encoded its quantity. Portal Bridge uses Wormhole’s token-transfer mechanism, whose whitepaper describes an eight-decimal precision limit. The limit can leave a small remainder for tokens with more than eight decimals.
Precision and fees explain most amount differences
Wormhole normalizes transfer amounts to at most eight decimal places before encoding them. For example, sending 1.234567891234 units of an 18-decimal token can transfer 1.23456789 units; the remaining 0.000000001234 is below the bridge’s supported precision. Check the source transaction to see whether that remainder stayed in the sender’s wallet or was refunded.
Tokens with eight or fewer decimals do not lose precision from this rule. Also check whether the transfer specified a relayer fee: Wormhole’s transfer message includes an optional fee denominated in the bridged token, so the recipient may receive less than the encoded gross amount. Network gas is usually paid separately in the chain’s gas token, so do not subtract it from the bridged-token balance unless the transaction or route explicitly does so.
Verify the destination asset and raw balance
A bridge may mint a wrapped token on the destination chain instead of releasing the original token. The name and symbol can look familiar while the contract address differs; an app that aggregates by symbol can therefore show a balance for the wrong asset. Portal Bridge transfers should be identified by origin chain and origin token address, then mapped to the destination representation.
For a before-and-after check, suppose an Arbitrum wallet starts with 5.000000000000000000 units of an 18-decimal token and requests a transfer of 1.234567891234. Read the source transaction’s actual token movement and transfer message, then inspect the destination transaction’s mint or release event and the recipient’s raw balance change. Format each raw integer with the decimals reported by its corresponding token contract; ERC-20’s decimals value is display metadata, not a change to how balanceOf is stored.
If the destination delta still differs, check for a fee-on-transfer or rebasing token, a relayer fee, and whether the transfer has completed. Use transaction logs and contract addresses as the accounting record; wallet labels and rounded interface values are clues, not proof. The reliable comparison is the destination’s raw balance delta, formatted with that token’s decimals and reconciled to the bridge message.
Comments
Post a Comment