Skip to main content
The useParaCosmjsProtoSigner hook returns a CosmJS OfflineDirectSigner for the user’s Cosmos wallet. It supports both embedded Para wallets and external wallets. If the user has multiple Cosmos wallets, pass address or walletId to select one. When omitted, the active wallet is used automatically.
Requires @getpara/cosmjs-v0-integration as a peer dependency.
Use the companion mutation hook useParaCosmjsSignAndBroadcast to sign and broadcast transactions.

Import

import { useParaCosmjsProtoSigner } from "@getpara/react-sdk";

Usage

import { useParaCosmjsProtoSigner } from "@getpara/react-sdk";
import { SigningStargateClient } from "@cosmjs/stargate";

function SignDirect() {
  const { protoSigner, isLoading } = useParaCosmjsProtoSigner();

  const handleSign = async () => {
    if (!protoSigner) return;

    const signDoc = {
      bodyBytes: new TextEncoder().encode(
        JSON.stringify({ messages: [], memo: "Hello" })
      ),
      authInfoBytes: new Uint8Array(0),
      chainId: "",
      accountNumber: BigInt(0),
    };

    const result = await protoSigner.signDirect(protoSigner.address, signDoc);
    console.log("Signature:", result.signature.signature);
  };

  if (isLoading) return <p>Loading...</p>;

  return (
    <div>
      <p>Address: {protoSigner?.address}</p>
      <button onClick={handleSign}>Sign Message</button>
    </div>
  );
}