Command Line Interface (CLI)
The CLI tool ('evmd') provides a full-feature interface for interacting with the blockchain. This includes commands for node operations, key management, querying blockchain state, submitting transactions, and more.
export const footnote = ({children}) => { return <span style={{ fontSize: '0.8em', opacity: 0.75, display: 'block', marginTop: '0.5em' }}> {children} ; };
**Node Requirements**
To use the query and tx commands, your evmd node must either:
Be fully synced with the network you're interacting with, OR
Be configured to use an external RPC endpoint in
~/.evmd/config/client.tomlExample client.toml configuration:# The network chain ID chain-id = "myapp-1" # The keyring's backend keyring-backend = "os" # CLI output format output = "text" # <host>:<port> to CometBFT RPC interface for this chain node = "tcp://localhost:26657" # Transaction broadcasting mode (sync|async) broadcast-mode = "sync"To use an external RPC, update the
nodefield to point to a public or private RPC endpoint.
Global Flags
These flags are available for all commands:
-b, --broadcast-mode
Transaction broadcasting mode (sync|async)
sync
--chain-id
Specify Chain ID for sending Tx
--fees
Fees to pay along with transaction (e.g., 10atest)
--from
Name or address of private key with which to sign
--gas-adjustment
Adjustment factor to multiply against the estimate returned by tx simulation
1
--gas-prices
Gas prices to determine the transaction fee (e.g., 10atest)
--home
Directory for config and data
~/.evmd
--keyring-backend
Select keyring's backend
os
--log_format
The logging format (json|plain)
plain
--log_level
The logging level
info
--log_no_color
Disable colored logs
--node
<host>:<port> to CometBFT RPC interface
tcp://localhost:26657
--trace
Print out full stack trace on errors
Commands
### Starting the Node
<CodeGroup>
```bash Basic
evmd start
```
```bash "With JSON-RPC"
evmd start \
--json-rpc.enable \
--json-rpc.api eth,net,web3,txpool
```
```bash "Full Configuration"
evmd start \
--json-rpc.enable \
--json-rpc.address 0.0.0.0:8545 \
--json-rpc.ws-address 0.0.0.0:8546 \
--json-rpc.api eth,net,web3,txpool,debug \
--json-rpc.enable-indexer \
--json-rpc.gas-cap 50000000
```
</CodeGroup>
### Node Initialization
<CodeGroup>
```bash "Basic Init"
evmd init my-node --chain-id Ontomir-evm-1
```
```bash "Custom Settings"
evmd init my-validator \
--chain-id Ontomir-evm-1 \
--default-denom atest \
--initial-height 1
```
```bash "Overwrite Existing"
evmd init my-node \
--chain-id Ontomir-evm-1 \
--overwrite
```
</CodeGroup>
### Node Status
```bash
evmd status
```
### Transaction Indexing
<CodeGroup>
```bash "Index Forward"
evmd index-eth-tx forward
```
```bash "Index Backward"
evmd index-eth-tx backward
```
</CodeGroup>### Account Management
<CodeGroup>
```bash "Create New Key"
evmd keys add my-account
```
```bash "Recover from Mnemonic"
evmd keys add my-account --recover
```
```bash "Create ETH Key"
evmd keys add my-eth-account \
--algo eth_secp256k1 \
--coin-type 60
```
</CodeGroup>
### Key Operations
<CodeGroup>
```bash "List All Keys"
evmd keys list
```
```bash "Show Key Info"
evmd keys show my-account
```
```bash "Show Address Only"
evmd keys show my-account --address
```
```bash "Export Key"
evmd keys export my-account
```
```bash "Import Key"
evmd keys import new-account keyfile.json
```
</CodeGroup>
### Ethereum Key Import/Export
<CodeGroup>
```bash "Export ETH Key"
evmd keys unsafe-export-eth-key my-eth-account
```
```bash "Import ETH Key"
evmd keys unsafe-import-eth-key imported-account 0x...
```
</CodeGroup>### Account & Balance Queries
<CodeGroup>
```bash "Account Info"
evmd query evm account 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81
```
```bash "Bank Balance"
evmd query evm balance-bank 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 atest
```
```bash "ERC20 Balance"
evmd query evm balance-erc20 \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
```
</CodeGroup>
### Contract Queries
<CodeGroup>
```bash "Get Contract Code"
evmd query evm code 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
```
```bash "Get Storage Value"
evmd query evm storage \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
0x0000000000000000000000000000000000000000000000000000000000000001
```
</CodeGroup>
### Configuration & Parameters
<CodeGroup>
```bash "EVM Config"
evmd query evm config
```
```bash "EVM Params"
evmd query evm params
```
</CodeGroup>
### Address Conversion
<CodeGroup>
```bash "0x to Bech32"
evmd query evm 0x-to-bech32 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81
```
```bash "Bech32 to 0x"
evmd query evm bech32-to-0x Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
```
</CodeGroup>### Token Pair Queries
<CodeGroup>
```bash "All Token Pairs"
evmd query erc20 token-pairs
```
```bash "Specific Token Pair"
evmd query erc20 token-pair 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
```
```bash "Query by Denom"
evmd query erc20 token-pair usdc
```
```bash "Module Parameters"
evmd query erc20 params
```
</CodeGroup>### Fee Market Information
<CodeGroup>
```bash "Current Base Fee"
evmd query feemarket base-fee
```
```bash "Block Gas Usage"
evmd query feemarket block-gas
```
```bash "Module Parameters"
evmd query feemarket params
```
</CodeGroup>### Precision Banking
<CodeGroup>
```bash "Module Remainder"
evmd query precisebank remainder
```
```bash "Fractional Balance"
evmd query precisebank fractional-balance Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
```
</CodeGroup>### Bank Module
<CodeGroup>
```bash "All Balances"
evmd query bank balances Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
```
```bash "Specific Denom"
evmd query bank balance Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s atest
```
```bash "Total Supply"
evmd query bank total
```
</CodeGroup>
### Staking Module
<CodeGroup>
```bash "All Validators"
evmd query staking validators
```
```bash "Delegations"
evmd query staking delegations Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
```
```bash "Unbonding"
evmd query staking unbonding-delegations Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
```
</CodeGroup>
### Distribution Module
<CodeGroup>
```bash "Delegation Rewards"
evmd query distribution rewards \
Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s \
Ontomirvaloper1xyz...
```
```bash "Validator Commission"
evmd query distribution commission Ontomirvaloper1xyz...
```
</CodeGroup>
### Governance Module
<CodeGroup>
```bash "All Proposals"
evmd query gov proposals
```
```bash "Specific Proposal"
evmd query gov proposal 1
```
```bash "Proposal Votes"
evmd query gov votes 1
```
</CodeGroup>### EVM Transfers
<CodeGroup>
```bash "Send Transaction"
evmd tx evm send \
my-account \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
1000000atest \
--gas-prices 10atest
```
```bash "Raw Transaction"
evmd tx evm raw \
0xf86c0485... \
--from my-account
```
</CodeGroup>### Token Conversions
<CodeGroup>
```bash "Coin to ERC20"
evmd tx erc20 convert-coin \
1000000atest \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
--from my-account \
--gas-prices 10atest
```
```bash "ERC20 to Coin"
evmd tx erc20 convert-erc20 \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
1000000 \
Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s \
--from my-account
```
</CodeGroup>
### Governance Operations
<CodeGroup>
```bash "Register ERC20"
evmd tx erc20 register-erc20 \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
--from validator
```
```bash "Toggle Conversion"
evmd tx erc20 toggle-conversion \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
--from validator
```
</CodeGroup>### Bank Transactions
<CodeGroup>
```bash "Send Tokens"
evmd tx bank send \
my-account \
Ontomir1abc... \
1000000atest \
--gas-prices 10atest
```
```bash "Multi-Send"
evmd tx bank multi-send \
my-account \
Ontomir1abc... 500000atest \
Ontomir1xyz... 500000atest \
--gas-prices 10atest
```
</CodeGroup>
### Staking Transactions
<CodeGroup>
```bash "Delegate"
evmd tx staking delegate \
Ontomirvaloper1abc... \
1000000atest \
--from my-account \
--gas-prices 10atest
```
```bash "Unbond"
evmd tx staking unbond \
Ontomirvaloper1abc... \
1000000atest \
--from my-account
```
```bash "Redelegate"
evmd tx staking redelegate \
Ontomirvaloper1abc... \
Ontomirvaloper1xyz... \
1000000atest \
--from my-account
```
</CodeGroup>
### Governance Transactions
<CodeGroup>
```bash "Submit Proposal"
evmd tx gov submit-proposal \
--title="Upgrade Proposal" \
--description="Upgrade to v2.0.0" \
--type="Text" \
--deposit="1000000atest" \
--from my-account
```
```bash "Vote"
evmd tx gov vote 1 yes \
--from my-account \
--gas-prices 10atest
```
```bash "Deposit"
evmd tx gov deposit 1 1000000atest \
--from my-account
```
</CodeGroup>### Genesis Operations
<CodeGroup>
```bash "Add Account"
evmd genesis add-genesis-account \
Ontomir1abc... \
1000000000atest
```
```bash "Create GenTx"
evmd genesis gentx \
my-validator \
1000000atest \
--chain-id Ontomir-evm-1
```
```bash "Collect GenTxs"
evmd genesis collect-gentxs
```
</CodeGroup>
### CometBFT Commands
<CodeGroup>
```bash "Show Node ID"
evmd comet show-node-id
```
```bash "Show Validator"
evmd comet show-validator
```
```bash "Reset State"
evmd comet unsafe-reset-all
```
</CodeGroup>
### Debug Utilities
<CodeGroup>
```bash "Address Info"
evmd debug addr Ontomir1abc...
```
```bash "Decode Hex"
evmd debug raw-bytes 0xdeadbeef
```
```bash "Public Key"
evmd debug pubkey '{"@type":"/Ontomir.crypto.secp256k1.PubKey","key":"...."}'
```
</CodeGroup>Examples
Complete Workflows
```bash "Create Account" # Create new Ontomir account evmd keys add my-account
# Save mnemonic safely!
# Address will be shown as Ontomir1...
```
```bash "Import ETH Key"
# Import existing Ethereum private key
evmd keys unsafe-import-eth-key \
eth-account \
0x1234567890abcdef...
# Show the imported account
evmd keys show eth-account
```
```bash "List & Export"
# List all accounts
evmd keys list
# Export account (encrypted)
evmd keys export my-account > account.backup
# Show account address only
evmd keys show my-account --address
```
</CodeGroup>```bash "Account Info" # Query Ontomir account evmd query bank balances \ Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s
# Query EVM account
evmd query evm account \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81
```
```bash "Token Balances"
# Native token balance
evmd query bank balance \
Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s \
atest
# ERC20 token balance
evmd query evm balance-erc20 \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
```
```bash "Network State"
# Current base fee
evmd query feemarket base-fee
# Node sync status
evmd status | jq .sync_info
# Latest block height
evmd status | jq .sync_info.latest_block_height
```
</CodeGroup>```bash "Native Transfer" # Send tokens via bank module evmd tx bank send \ my-account \ Ontomir1abc... \ 1000000atest \ --gas-prices 10atest \ --gas-adjustment 1.5 ```
```bash "EVM Transfer"
# Send via EVM module
evmd tx evm send \
my-account \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
1000000atest \
--gas-prices 10atest
```
```bash "Token Conversion"
# Convert native to ERC20
evmd tx erc20 convert-coin \
1000000atest \
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb81 \
--from my-account \
--gas-prices 10atest
# Convert ERC20 to native
evmd tx erc20 convert-erc20 \
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
1000000 \
Ontomir1wsk4trnzfszs55jlt5ugz76lwl2hp04slh5s5s \
--from my-account
```
</CodeGroup>Configuration
Configuration directory:
~/.evmd/Key storage: Managed by the keyring backend (os, file, test)
Node configuration:
~/.evmd/config/config.tomlApp configuration:
~/.evmd/config/app.toml
If you use the --home flag upon initializing the light client, the root/config directory will be generated there
