Find the escrow account for an IBC transfer channel
An ICS-20 transfer can lock local coins in a channel-specific escrow account. Reconciliation starts with the local port and channel where that escrow was used.
Resolve the escrow account on the locking chain
Set GRPC to a TLS endpoint with reflection serving the ibc-go transfer query API. Use the source-side identifiers for the transfer you are investigating and read escrowAddress.
grpcurl -d '{"portId":"transfer","channelId":"channel-7"}' "$GRPC" ibc.applications.transfer.v1.Query/EscrowAddress
Look up the relevant bank denomination at the returned address. If a transfer escrows 15 units and no other movement affects that denomination during the comparison, the balance should increase by 15. Compare at retained heights bracketing the operation.
Recognize the return path
A voucher returning along its source path can be burned on the sending side while the counterparty releases escrow. For that direction, an expected increase in local escrow is the wrong reconciliation rule. Use packet denomination traces and events to determine the direction. github.com ibc-go Query API