Skip to main content

Address Formats

Monolythium supports two address formats that represent the same underlying account.

Address Types

FormatPrefixExampleUsed For
Cosmos (Bech32)mono1mono1abc123def456...Staking, governance, Cosmos SDK
EVM (Hex)0x0x1234567890abcdef...Smart contracts, MetaMask

Same Account, Two Representations

Both formats derive from the same private key:

Private Key

├── Cosmos Address (mono1...)

└── EVM Address (0x...)

The same account can be accessed via either format. Sending LYTH to either address credits the same balance.

Bech32 (Cosmos) Addresses

Format

mono1 + 38 characters

Example: mono1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu

Uses

  • Cosmos CLI commands
  • Keplr and Leap wallets
  • Staking transactions
  • Governance voting
  • Bank transfers (native)

Validator Addresses

TypePrefixUse
Accountmono1User addresses
Validator operatormonovaloper1Validator management
Validator consensusmonovalcons1Consensus key
Public keymonopub1Account public key

EVM (Hex) Addresses

Format

0x + 40 hexadecimal characters

Example: 0x1234567890123456789012345678901234567890

Uses

  • MetaMask and EVM wallets
  • Smart contract interactions
  • EVM RPC calls
  • Solidity development

Converting Between Formats

CLI

# Bech32 to Hex
monod debug addr mono1abc123...

# Hex to Bech32
monod debug addr 0x1234...

Programmatically

// Using ethers.js and cosmjs
import { ethers } from 'ethers';
import { fromBech32, toBech32 } from '@cosmjs/encoding';

// Bech32 to Hex
function bech32ToHex(bech32Address) {
const { data } = fromBech32(bech32Address);
return '0x' + Buffer.from(data).toString('hex');
}

// Hex to Bech32
function hexToBech32(hexAddress) {
const data = Buffer.from(hexAddress.slice(2), 'hex');
return toBech32('mono', data);
}

Which Format Should I Use?

ActionRecommended Format
Send from MetaMaskEVM (0x...)
Send from KeplrEither works
Stake tokensCosmos (mono1...)
Vote on proposalsCosmos (mono1...)
Deploy contractsEVM (0x...)
Interact with dAppsEVM (0x...)
CLI operationsCosmos (mono1...)

Receiving LYTH

You can share either address format to receive LYTH:

  • Share mono1... for Cosmos wallet users
  • Share 0x... for MetaMask/EVM users

Both credit the same account.

Important Notes

Checksum (EVM)

EVM addresses have an optional checksum format using mixed case:

0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed  (checksummed)
0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed (lowercase)

Both are valid; checksummed format helps detect typos.

Case Sensitivity

  • Cosmos addresses: Case-insensitive (all lowercase)
  • EVM addresses: Case-sensitive for checksum, but accepted either way

Cross-Chain Addresses

!!! warning "Network-Specific" Addresses are specific to Monolythium. Do not send to/from addresses on other chains (Ethereum, Cosmos Hub, etc.) without proper bridging.

FAQ

Do I need separate wallets for each format?

No. Use MetaMask for EVM operations and Keplr for Cosmos operations. Both access the same account.

Can I stake using my EVM address?

No. Staking transactions require Cosmos format. Use Keplr or CLI.

What if I send to the wrong format?

Within Monolythium, both formats work - the tokens arrive. Issues only occur if you try to send to another chain.

How do I verify both addresses are the same account?

Use monod debug addr <address> to convert and verify.