# Class: GenericCosmosAdapter

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:162](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L162)

GenericCosmosAdapter provides wallet adapter functionality for Cosmos signing.

Supports both browser wallets (Keplr, Leap, Cosmostation) and server-side
signing with mnemonic or private key.

## Example

```typescript
// Browser wallet (Keplr)
const adapter = await GenericCosmosAdapter.fromKeplr('bitbadges-1');

// Browser wallet (Leap)
const adapter = await GenericCosmosAdapter.fromLeap('bitbadges-1');

// Server-side with mnemonic
const adapter = await GenericCosmosAdapter.fromMnemonic('word1 word2 ...', 'bitbadges-1');

// Server-side with private key
const adapter = await GenericCosmosAdapter.fromPrivateKey('0x...', 'bitbadges-1');

// Use with signing client
const client = new BitBadgesSigningClient({ adapter });
```

## Extends

- [`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter)

## Implements

- [`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter)

## Properties

### address

> `readonly` **address**: `string`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:164](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L164)

The address managed by this adapter (BitBadges bb-prefixed for Cosmos, 0x for EVM)

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`address`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#address)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`address`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#address)

***

### chainType

> `readonly` **chainType**: `"cosmos"`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:163](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L163)

The chain type this adapter supports

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`chainType`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#chaintype)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`chainType`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#chaintype)

## Methods

### estimateEvmGas()?

> `optional` **estimateEvmGas**(`tx`): `Promise`\<`bigint`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts:90](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts#L90)

Estimate gas for an EVM transaction.
Only implemented by EVM wallet adapters with a provider connection.

#### Parameters

##### tx

[`EvmTransaction`](https://docs.bitbadges.io/sdk/reference/interfaces/evm-transaction)

#### Returns

`Promise`\<`bigint`\>

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`estimateEvmGas`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#estimateevmgas)

#### Inherited from

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`estimateEvmGas`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#estimateevmgas)

***

### getPublicKey()

> **getPublicKey**(): `Promise`\<`string`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:347](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L347)

Get the public key in base64 format.
Required for Cosmos transactions (used to build the auth info).
Returns empty string for EVM-only adapters.

#### Returns

`Promise`\<`string`\>

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`getPublicKey`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#getpublickey)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`getPublicKey`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#getpublickey)

***

### sendEvmTransaction()?

> `optional` **sendEvmTransaction**(`tx`): `Promise`\<`string`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts:89](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts#L89)

Send an EVM transaction.
Only implemented by EVM wallet adapters.

#### Parameters

##### tx

[`EvmTransaction`](https://docs.bitbadges.io/sdk/reference/interfaces/evm-transaction)

The EVM transaction to send

#### Returns

`Promise`\<`string`\>

The transaction hash

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`sendEvmTransaction`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#sendevmtransaction)

#### Inherited from

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`sendEvmTransaction`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#sendevmtransaction)

***

### signDirect()

> **signDirect**(`payload`, `accountNumber`): `Promise`\<[`SigningResult`](https://docs.bitbadges.io/sdk/reference/interfaces/signing-result)\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:351](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L351)

Sign a transaction using Cosmos SignDirect format.
Only implemented by Cosmos wallet adapters.

#### Parameters

##### payload

[`TransactionPayload`](https://docs.bitbadges.io/sdk/reference/interfaces/transaction-payload)

The transaction payload containing signBytes

##### accountNumber

[`Uint64Like`](https://docs.bitbadges.io/sdk/reference/type-aliases/uint64-like)

The account number on the blockchain. Post-v34
  accounts get hash-derived numbers above 2^53 — pass the chain's string
  value or a bigint; never Number() it.

#### Returns

`Promise`\<[`SigningResult`](https://docs.bitbadges.io/sdk/reference/interfaces/signing-result)\>

The signature and public key

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`signDirect`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#signdirect)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`signDirect`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#signdirect)

***

### signTypedData()?

> `optional` **signTypedData**(`typed`): `Promise`\<`string`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts:91](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts#L91)

Sign EIP-712 typed-data with the wallet.
Only implemented by EVM wallet adapters; lets BitBadges Cosmos
messages be signed via the standard EVM signing flow
(`eth_signTypedData_v4` / `Signer.signTypedData`) so any EVM
wallet can produce a valid Cosmos transaction signature.
Returns a `0x...`-prefixed 65-byte hex signature (r || s || v).

#### Parameters

##### typed

[`EIP712TypedData`](https://docs.bitbadges.io/sdk/reference/interfaces/eip712-typed-data)

#### Returns

`Promise`\<`string`\>

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`signTypedData`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#signtypeddata)

#### Inherited from

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`signTypedData`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#signtypeddata)

***

### supportsEvmTransaction()

> **supportsEvmTransaction**(): `boolean`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:393](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L393)

Check if the adapter supports EVM transactions

#### Returns

`boolean`

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`supportsEvmTransaction`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#supportsevmtransaction)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`supportsEvmTransaction`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#supportsevmtransaction)

***

### supportsSignAmino()

> **supportsSignAmino**(): `boolean`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:389](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L389)

Check if the adapter supports Amino signing (legacy)

#### Returns

`boolean`

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`supportsSignAmino`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#supportssignamino)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`supportsSignAmino`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#supportssignamino)

***

### supportsSignDirect()

> **supportsSignDirect**(): `boolean`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:385](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L385)

Check if the adapter supports SignDirect signing

#### Returns

`boolean`

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`supportsSignDirect`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#supportssigndirect)

#### Overrides

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`supportsSignDirect`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#supportssigndirect)

***

### supportsSignTypedData()

> **supportsSignTypedData**(): `boolean`

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts:105](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/WalletAdapter.ts#L105)

Check if the adapter supports EIP-712 typed-data signing

#### Returns

`boolean`

#### Implementation of

[`WalletAdapter`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter).[`supportsSignTypedData`](https://docs.bitbadges.io/sdk/reference/interfaces/wallet-adapter#supportssigntypeddata)

#### Inherited from

[`BaseWalletAdapter`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter).[`supportsSignTypedData`](https://docs.bitbadges.io/sdk/reference/classes/base-wallet-adapter#supportssigntypeddata)

***

### fromBrowserWallet()

> `static` **fromBrowserWallet**(`wallet`, `chainId`, `prefix?`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:237](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L237)

Create an adapter from any Keplr-compatible wallet interface.

#### Parameters

##### wallet

`KeplrLike`

A Keplr-compatible wallet instance

##### chainId

`string`

The chain ID to connect to

##### prefix?

`string` = `'bb'`

Optional address prefix (default: 'bb')

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter connected to the wallet

***

### fromCosmostation()

> `static` **fromCosmostation**(`chainId`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:222](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L222)

Create an adapter from Cosmostation wallet.

#### Parameters

##### chainId

`string`

The chain ID to connect to

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter connected to Cosmostation

***

### fromKeplr()

> `static` **fromKeplr**(`chainId`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:196](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L196)

Create an adapter from Keplr wallet.

#### Parameters

##### chainId

`string`

The chain ID to connect to

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter connected to Keplr

***

### fromLeap()

> `static` **fromLeap**(`chainId`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:209](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L209)

Create an adapter from Leap wallet.

#### Parameters

##### chainId

`string`

The chain ID to connect to

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter connected to Leap

***

### fromMnemonic()

> `static` **fromMnemonic**(`mnemonic`, `chainId`, `options?`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:279](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L279)

Create an adapter from a mnemonic phrase (server-side).

**Security Note**: Only use in secure server-side environments.

#### Parameters

##### mnemonic

`string`

The BIP-39 mnemonic phrase (12 or 24 words)

##### chainId

`string`

The chain ID to use

##### options?

`string` \| \{ `prefix?`: `string`; \}

Optional: prefix string (default 'bb') or options object with prefix

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter for server-side signing

#### Example

```typescript
const adapter = await GenericCosmosAdapter.fromMnemonic('word1 word2 ...', 'bitbadges-2');
const client = new BitBadgesSigningClient({ adapter, network: 'testnet' });
```

***

### fromPrivateKey()

> `static` **fromPrivateKey**(`privateKey`, `chainId`, `options?`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:297](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L297)

Create an adapter from a private key (server-side).

**Security Note**: Only use in secure server-side environments.

#### Parameters

##### privateKey

`string`

The private key (hex string, with or without 0x prefix)

##### chainId

`string`

The chain ID to use

##### options?

`string` \| \{ `prefix?`: `string`; \}

Optional: prefix string (default 'bb') or options object with prefix

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

A new GenericCosmosAdapter for server-side signing

***

### ~~fromWallet()~~

> `static` **fromWallet**(`wallet`, `chainId`, `prefix?`): `Promise`\<`GenericCosmosAdapter`\>

Defined in: [packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts:257](https://github.com/BitBadges/bitbadgesjs/blob/master/packages/bitbadgesjs-sdk/src/signing/adapters/GenericCosmosAdapter.ts#L257)

#### Parameters

##### wallet

`KeplrLike`

##### chainId

`string`

##### prefix?

`string` = `'bb'`

#### Returns

`Promise`\<`GenericCosmosAdapter`\>

#### Deprecated

Use fromBrowserWallet instead
