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