Cosmos

Cosmos Hub gRPC without running your own node

Use Tatum’s managed Cosmos Hub gRPC endpoint with API-key auth, TLS on port 443, and usage-based pricing.

https://cosmos-mainnet-grpc.gateway.tatum.io
Try the Postman collection for Cosmos Hub
Run in Postman

Run ready-made requests instantly in Postman, then use the setup section below for local Node.js gRPC integration.


Set Up Your Environment

Step 1 is shown below. Expand the section to reveal the full setup guide.

  1. Install Node.js (version 18+)
    brew install node
    node -v
Show full setup (steps 2–5)
  1. Install grpcurl (highly recommended for smoke testing your endpoint and API key).
    brew install grpcurl
  2. Create your project and install dependencies
    mkdir tatum-cosmos-grpc && cd tatum-cosmos-grpc
    npm init -y
    npm install @grpc/grpc-js @grpc/proto-loader
  3. Set up Protobuf definitions
    # Create directory structure
    mkdir -p proto/cosmos/bank/v1beta1 \
             proto/cosmos/base/v1beta1 \
             proto/cosmos/base/query/v1beta1 \
             proto/cosmos/msg/v1 \
             proto/cosmos/query/v1 \
             proto/cosmos_proto \
             proto/google/api \
             proto/gogoproto \
             proto/amino
    
    # Download Core Bank definitions
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/bank/v1beta1/query.proto > proto/cosmos/bank/v1beta1/query.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/bank/v1beta1/bank.proto > proto/cosmos/bank/v1beta1/bank.proto
    
    # Download Base, Msg, & Query dependencies
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/base/v1beta1/coin.proto > proto/cosmos/base/v1beta1/coin.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/base/query/v1beta1/pagination.proto > proto/cosmos/base/query/v1beta1/pagination.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/msg/v1/msg.proto > proto/cosmos/msg/v1/msg.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/cosmos/query/v1/query.proto > proto/cosmos/query/v1/query.proto
    
    # Download Third-party Metadata (Critical for resolution)
    curl -s https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/annotations.proto > proto/google/api/annotations.proto
    curl -s https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/http.proto > proto/google/api/http.proto
    curl -s https://raw.githubusercontent.com/cosmos/gogoproto/main/gogoproto/gogo.proto > proto/gogoproto/gogo.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-proto/main/proto/cosmos_proto/cosmos.proto > proto/cosmos_proto/cosmos.proto
    curl -s https://raw.githubusercontent.com/cosmos/cosmos-sdk/main/proto/amino/amino.proto > proto/amino/amino.proto
  4. Verify your connection with grpcurl
    Tatum-specific: endpoint cosmos-mainnet-grpc.gateway.tatum.io:443 (Mainnet).
    Authentication: pass x-api-key metadata (port 443 required for SSL).
    grpcurl \
      -H "x-api-key: YOUR_API_KEY" \
      cosmos-mainnet-grpc.gateway.tatum.io:443 \
      cosmos.base.tendermint.v1beta1.Service/GetNodeInfo
    {
      "defaultNodeInfo": {
        "protocolVersion": {
          "p2p": "8",
          "block": "11"
        },
        "defaultNodeId": "0b8bf4c894418453cfeb45d57eec6036bb863cff",
        "listenAddr": "tcp://0.0.0.0:26656",
        "network": "cosmoshub-4",
        "version": "0.38.19",
        "channels": "QCAhIiMwOGBhAA==",
        "moniker": "ndl-archival-b@eu",
        "other": {
          "txIndex": "on",
          "rpcAddress": "tcp://0.0.0.0:26657"
        }
      },
      //[...]
    }

Tendermint JSON-RPC and REST too

Cosmos Hub is available over gRPC, Tendermint JSON-RPC, and REST in the dashboard—try a quick request below.