Chain CLI (bitbadgeschaind)

The BitBadges chain ships a standard Cosmos SDK binary called bitbadgeschaind. You can use it for key management, transaction signing, querying, and broadcasting without writing any code.

Installation

You can install bitbadgeschaind from a pre-built release or build from source.

Pre-built releases: Download the latest binary for your platform from the GitHub Releases pagearrow-up-right. See Run a Mainnet Node for additional setup details.

Build from source (requires Go 1.22+):

git clone https://github.com/BitBadges/bitbadgeschain.git
cd bitbadgeschain
make install

After installation, verify:

bitbadgeschaind version

Important: BitBadges periodically performs chain upgrades. To ensure compatibility with the latest on-chain changes, always use the correct binary version for the current chain height. Check the releases pagearrow-up-right for the latest version.

Key Management

BitBadges supports both Ethereum-compatible keys (eth_secp256k1) and standard Cosmos keys (secp256k1). The default keyring backend is test (unencrypted, for development). For production, use --keyring-backend os or --keyring-backend file.

Create a New Key

bitbadgeschaind keys add mykey

This generates a new key and outputs the address and mnemonic. Save the mnemonic securely.

Recover from Mnemonic

You will be prompted to enter the mnemonic.

List Keys

Show Key Details

Add --bech val to show the validator address or --bech cons for the consensus address.

Export / Import

Delete a Key

Submitting Transactions

All transaction commands follow this pattern:

Common Flags

Flag
Description
Default

--from

Key name or address to sign with

(required)

--chain-id

Cosmos chain ID

bitbadgeschain

--node

Node RPC endpoint

tcp://localhost:26657

--gas

Gas limit (auto to simulate)

200000

--gas-adjustment

Multiplier when using auto gas

1.0

--fees

Transaction fee (e.g. 10000ubadge)

--keyring-backend

Keyring backend (os, file, test)

test

--broadcast-mode

sync, async, or block

sync

--dry-run

Simulate without broadcasting

false

--generate-only

Generate unsigned tx JSON

false

Network Endpoints

Network
Cosmos Chain ID
Node LCD
EVM Chain ID

Mainnet

bitbadges-1

https://lcd.bitbadges.io

50024

Testnet

bitbadges-2

https://lcd-testnet.bitbadges.io

50025

Tokenization Module Commands

The tokenization module handles collections, tokens, transfers, approvals, and dynamic stores. Most commands accept a JSON argument that can be provided inline or as a file path.

Create a Collection

The JSON file should contain the fields for MsgCreateCollection. See MsgCreateCollection for the full schema.

Universal Update Collection

The most comprehensive update command -- can modify any collection field in a single transaction:

See MsgUniversalUpdateCollection for the full schema.

Update Collection

Delete Collection

Transfer Tokens

Example transfer.json:

See MsgTransferTokens for the full schema.

Approval Management

Collection Metadata and Configuration

Each of these accepts a JSON argument (inline or file path):

Dynamic Stores

Dynamic stores are on-chain boolean mappings (allowlists/blocklists) that can be referenced in approval criteria.

Address Lists

Voting

Query Commands

All query commands support --node to specify which node to query and --output json for JSON output.

JSON Input

Most transaction commands accept JSON either inline or from a file path. The CLI automatically detects which format you are using:

Using files is recommended for complex transactions. The JSON schema for each message matches the protobuf definitions documented in the Messages section.

For Developers (SDK Alternative)

If you prefer programmatic signing over the CLI, use the BitBadgesSigningClient from bitbadgesjs-sdk. It provides TypeScript functions for all transaction types with automatic gas estimation, sequence management, and broadcasting.

Last updated