Skip to main content

Signing overview

Every app integration follows the same pipeline:

Never embed mnemonics in production apps. Use Cosmos Kit, SecureStore (mobile), or hardware keys.

import { SigningStargateClient, assertIsDeliverTxSuccess } from '@cosmjs/stargate';

const client = await SigningStargateClient.connectWithSigner(RPC, offlineSigner, {
gasPrice: { denom: 'usaf', amount: '0.05' },
});

const result = await client.signAndBroadcast(address, [msg], 'auto');
assertIsDeliverTxSuccess(result);

With Cosmos Kit, offlineSigner comes from getOfflineSigner(chainId).

Signer sources

PathWhen
Cosmos KitBrowser dApp or mobile via WalletConnect
CosmJS DirectSecp256k1HdWalletRN, Flutter (JS bridge), scripts, dev only
safrochaind txDebugging, CI, operators

Advanced authorization

FeatureInfra docs
Fee grants (sponsor gas)CLI tx, feegrant module
Authz (delegate msgs)CLI tx, authz module
FeePay sponsored txsfeepay module

Next steps