Determine whether the Cosmos bank module allows a denomination to move
A wallet with enough spendable coins can still encounter a bank send restriction. Resolve the per-denomination override and the default policy.
Look up the explicit setting
Use these calls on a TLS gRPC endpoint with reflection. The first asks for any explicit send policy for uatom. The second supplies the module default.
grpcurl -d '{"denoms":["uatom"]}' "$GRPC" cosmos.bank.v1beta1.Query/SendEnabled
grpcurl -d '{}' "$GRPC" cosmos.bank.v1beta1.Query/Params
If an entry for uatom has enabled false, the override disables ordinary bank sends for that denomination. If the response contains no matching override, apply defaultSendEnabled from the bank parameters.
Check restrictions beyond this switch
An enabled setting only clears this module-level test. The recipient can be blocked, account funds can be locked, and a chain may install additional send restrictions. Preserve the actual transaction error when investigating a rejected transfer. github.com Cosmos SDK Query API