Skip to main content
An OfflineSigner is the interface CosmJS uses to abstract over any source of signatures. It doesn’t matter whether the private key lives in memory, in a browser extension, or on a hardware device — as long as it implements OfflineSigner, it works with SigningStargateClient.
There are two flavors, matching the two Cosmos signing modes:

OfflineDirectSigner (Protobuf / Direct)

The modern default. Signs raw Protobuf-encoded bytes. Preferred for new applications.

OfflineAminoSigner (Amino JSON)

The legacy format. Signs a deterministic JSON representation. Required for Ledger hardware wallets and some older chains.
The “offline” in the name means the signer itself never needs network access. It only receives bytes and returns a signature. The client handles everything else — querying account state, building the transaction, and broadcasting.

Signer Summary

All of these produce an OfflineSigner. All of them work with SigningStargateClient.connectWithSigner. The signing client doesn’t know or care where the signature comes from — it just needs something that implements the interface.