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​