bank
The bank
module is responsible for handling token transfer functionalities such as multi-asset coin transfers between accounts and tracking special-case pseudo-transfers which must work differently with particular kinds of accounts (notably delegating/undelegating for vesting accounts). It exposes several interfaces with varying capabilities for secure interaction with other modules which must alter user balances.
In addition, the bank
module tracks and provides query support for the total supply of all assets used in the application.
For more information, visit https://docs.cosmos.network/main/modules/bank/
Message Types
Msg
defines the bank Msg service.
_7 // Send defines a method for sending coins from one account to another account.
_7 rpc Send(MsgSend) returns (MsgSendResponse);
_7 // MultiSend defines a method for sending coins from some accounts to other accounts.
_7 rpc MultiSend(MsgMultiSend) returns (MsgMultiSendResponse);
MsgSend
MsgSend
represents a message to send coins from one account to another.
_11 option (cosmos.msg.v1.signer) = "from_address";
_11 option (gogoproto.equal) = false;
_11 option (gogoproto.goproto_getters) = false;
_11 string from_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
_11 string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
_11 repeated cosmos.base.v1beta1.Coin amount = 3
_11 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
MsgSendResponse
MsgSendResponse
defines the Msg/Send
response type.
_1message MsgSendResponse {}
MsgMultiSend
MsgMultiSend
represents an arbitrary multi-in, multi-out send message.
_8 option (cosmos.msg.v1.signer) = "inputs";
_8 option (gogoproto.equal) = false;
_8 repeated Input inputs = 1 [(gogoproto.nullable) = false];
_8 repeated Output outputs = 2 [(gogoproto.nullable) = false];
MsgMultiSendResponse
MsgMultiSendResponse
defines the Msg/MultiSend
response type.
_1message MsgMultiSendResponse {}
Queries
Query
defines the gRPC querier service.
_49 // Balance queries the balance of a single coin for a single account.
_49 rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/by_denom";
_49 // AllBalances queries the balance of all coins for a single account.
_49 rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}";
_49 // SpendableBalances queries the spenable balance of all coins for a single
_49 rpc SpendableBalances(QuerySpendableBalancesRequest) returns (QuerySpendableBalancesResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/spendable_balances/{address}";
_49 // TotalSupply queries the total supply of all coins.
_49 rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/supply";
_49 // SupplyOf queries the supply of a single coin.
_49 rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/supply/by_denom";
_49 // Params queries the parameters of x/bank module.
_49 rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/params";
_49 // DenomsMetadata queries the client metadata of a given coin denomination.
_49 rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}";
_49 // DenomsMetadata queries the client metadata for all registered coin
_49 rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata";
_49 // DenomOwners queries for all account addresses that own a particular token
_49 rpc DenomOwners(QueryDenomOwnersRequest) returns (QueryDenomOwnersResponse) {
_49 option (google.api.http).get = "/cosmos/bank/v1beta1/denom_owners/{denom}";
QueryBalanceRequest
QueryBalanceRequest
is the request type for the Query/Balance
RPC method.
_10message QueryBalanceRequest {
_10 option (gogoproto.equal) = false;
_10 option (gogoproto.goproto_getters) = false;
_10 // address is the address to query balances for.
_10 string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
_10 // denom is the coin denom to query balances for.
QueryBalanceResponse
QueryBalanceResponse
is the response type for the Query/Balance
RPC method.
_4message QueryBalanceResponse {
_4 // balance is the balance of the coin.
_4 cosmos.base.v1beta1.Coin balance = 1;
QueryAllBalanceRequest
QueryAllBalanceRequest
is the request type for the Query/AllBalances
RPC method.
_10message QueryAllBalancesRequest {
_10 option (gogoproto.equal) = false;
_10 option (gogoproto.goproto_getters) = false;
_10 // address is the address to query balances for.
_10 string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
_10 // pagination defines an optional pagination for the request.
_10 cosmos.base.query.v1beta1.PageRequest pagination = 2;
QueryAllBalancesResponse
QueryAllBalancesResponse
is the response type for the Query/AllBalances
RPC method.
_8message QueryAllBalancesResponse {
_8 // balances is the balances of all the coins.
_8 repeated cosmos.base.v1beta1.Coin balances = 1
_8 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
_8 // pagination defines the pagination in the response.
_8 cosmos.base.query.v1beta1.PageResponse pagination = 2;
QuerySpendableBalancesRequest
QuerySpendableBalancesRequest
defines the gRPC request structure for querying an account's spendable balances.
_10message QuerySpendableBalancesRequest {
_10 option (gogoproto.equal) = false;
_10 option (gogoproto.goproto_getters) = false;
_10 // address is the address to query spendable balances for.
_10 string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
_10 // pagination defines an optional pagination for the request.
_10 cosmos.base.query.v1beta1.PageRequest pagination = 2;
QuerySpendableBalancesResponse
QuerySpendableBalancesResponse
defines the gRPC response structure for querying an account's spendable balances.
_8message QuerySpendableBalancesResponse {
_8 // balances is the spendable balances of all the coins.
_8 repeated cosmos.base.v1beta1.Coin balances = 1
_8 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
_8 // pagination defines the pagination in the response.
_8 cosmos.base.query.v1beta1.PageResponse pagination = 2;
QueryTotalSupplyRequest
QueryTotalSupplyRequest
is the request type for the Query/TotalSupply
RPC method.
_9message QueryTotalSupplyRequest {
_9 option (gogoproto.equal) = false;
_9 option (gogoproto.goproto_getters) = false;
_9 // pagination defines an optional pagination for the request.
_9 // Since: cosmos-sdk 0.43
_9 cosmos.base.query.v1beta1.PageRequest pagination = 1;
QueryTotalSupplyResponse
QueryTotalSupplyResponse
is the response type for the Query/TotalSupply
RPC method.
_10message QueryTotalSupplyResponse {
_10 // supply is the supply of the coins
_10 repeated cosmos.base.v1beta1.Coin supply = 1
_10 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
_10 // pagination defines the pagination in the response.
_10 // Since: cosmos-sdk 0.43
_10 cosmos.base.query.v1beta1.PageResponse pagination = 2;
QuerySupplyOfRequest
QuerySupplyOfRequest
is the request type for the Query/SupplyOf
RPC method.
_4message QuerySupplyOfRequest {
_4 // denom is the coin denom to query balances for.
QuerySupplyOfResponse
QuerySupplyOfResponse
is the response type for the Query/SupplyOf
RPC method.
_4message QuerySupplyOfResponse {
_4 // amount is the supply of the coin.
_4 cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false];
QueryParamsRequest
QueryParamsRequest
defines the request type for querying x/bank parameters.
_1message QueryParamsRequest {}
QueryParamsResponse
QueryParamsResponse
defines the response type for querying x/bank parameters.
_3message QueryParamsResponse {
_3 Params params = 1 [(gogoproto.nullable) = false];
QueryDenomMetadataRequest
is the request type for the Query/DenomMetadata
RPC method.
_4message QueryDenomMetadataRequest {
_4 // denom is the coin denom to query the metadata for.
QueryDenomMetadataResponse
is the response type for the Query/DenomMetadata
RPC method.
_4message QueryDenomMetadataResponse {
_4 // metadata describes and provides all the client information for the requested token.
_4 Metadata metadata = 1 [(gogoproto.nullable) = false];
QueryDenomsMetadataRequest
is the request type for the Query/DenomsMetadata
RPC method.
_4message QueryDenomsMetadataRequest {
_4 // pagination defines an optional pagination for the request.
_4 cosmos.base.query.v1beta1.PageRequest pagination = 1;
QueryDenomsMetadataResponse
is the response type for the Query/DenomsMetadata
RPC method.
_7message QueryDenomsMetadataResponse {
_7 // metadata provides the client information for all the registered tokens.
_7 repeated Metadata metadatas = 1 [(gogoproto.nullable) = false];
_7 // pagination defines the pagination in the response.
_7 cosmos.base.query.v1beta1.PageResponse pagination = 2;
QueryDenomOwnersRequest
QueryDenomOwnersRequest
defines the request type for the DenomOwners
RPC query, which queries for a paginated set of all account holders of a particular denomination.
_7message QueryDenomOwnersRequest {
_7 // denom defines the coin denomination to query all account holders for.
_7 // pagination defines an optional pagination for the request.
_7 cosmos.base.query.v1beta1.PageRequest pagination = 2;
QueryDenomOwnersResponse
QueryDenomOwnersResponse
defines the RPC response of a DenomOwners
RPC query.
_6message QueryDenomOwnersResponse {
_6 repeated DenomOwner denom_owners = 1;
_6 // pagination defines the pagination in the response.
_6 cosmos.base.query.v1beta1.PageResponse pagination = 2;