Skip to main content
Learn how to set up with Para SDK to interact with Cosmos-based blockchains.

Prerequisites

Para Setup Required

Installation

npm install @cosmjs/stargate @cosmjs/proto-signing @cosmjs/amino --save-exact

Library Setup

Use the Proto signer for transaction operations like sending tokens, staking, and IBC transfers.
import { useCosmjsProtoSigner } from "@getpara/react-sdk/cosmos";
import { SigningStargateClient, StargateClient } from "@cosmjs/stargate";
import { useState, useEffect } from "react";

const RPC_URL = "https://rpc.cosmos.directory/cosmoshub";

export function useCosmosClient() {
  const { protoSigner, isLoading } = useCosmjsProtoSigner();
  const [publicClient, setPublicClient] = useState<StargateClient>();
  const [signingClient, setSigningClient] = useState<SigningStargateClient>();

  useEffect(() => {
    StargateClient.connect(RPC_URL).then(setPublicClient);
  }, []);

  useEffect(() => {
    if (!protoSigner) {
      setSigningClient(undefined);
      return;
    }

    SigningStargateClient.connectWithSigner(RPC_URL, protoSigner).then(setSigningClient);
  }, [protoSigner]);

  const address = protoSigner?.address;

  return { publicClient, signingClient, address, isLoading };
}

Next Steps