Accounts

circle-exclamation

BlockX Accounts

BlockX defines its own custom Account type that uses Ethereum's ECDSA secp256k1 curve for keys. This satisfies the EIP84 arrow-up-rightfor full BIP44 arrow-up-rightpaths. The root HD path for BlockXs-based accounts is m/44'/60'/0'/0.

// EthAccount implements the authtypes.AccountI interface and embeds an
// authtypes.BaseAccount type. It is compatible with the auth AccountKeeper.
type EthAccount struct {
	*types.BaseAccount `protobuf:"bytes,1,opt,name=base_account,json=baseAccount,proto3,embedded=base_account" json:"base_account,omitempty" yaml:"base_account"`
	CodeHash           string `protobuf:"bytes,2,opt,name=code_hash,json=codeHash,proto3" json:"code_hash,omitempty" yaml:"code_hash"`
}

Addresses and Public Keys

BIP-0173 arrow-up-rightdefines a new format for segregated witness output addresses that contains a human-readable part that identifies the Bech32 usage. BlockX uses the following HRP (human readable prefix) as the base HRP:

Network
Testnet
Mainnet

There are 3 main types of HRP for the Addresses/PubKeys available by default on BlockX:

  • Addresses and Keys for accounts, which identify users (e.g. the sender of a message). They are derived using the eth_secp256k1 curve.

  • Addresses and Keys for validator operators, which identify the operators of validators. They are derived using the eth_secp256k1 curve.

  • Addresses and Keys for consensus nodes, which identify the validator nodes participating in consensus. They are derived using the ed25519 curve.

circle-info

Data items are coming soon

-
Address bech32 Prefix
Pubkey bech32 Prefix
Curve
Address byte length
Pubkey byte length

Accounts

Validator Operator

Consensus Nodes

Address formats for clients

EthAccount can be represented in both Bech32arrow-up-right and hex (0x...) formats for Ethereum's Web3 tooling compatibility.

The Bech32 format is the default format for Cosmos-SDK queries and transactions through CLI and REST clients. The hex format on the other hand, is the Ethereum common.Address representation of a Cosmos sdk.AccAddress.

Address conversion

The [] can be used to convert an address between hex and bech32 formats. For example:

:::: tabs ::: tab Bech32

::: ::: tab Hex

::: ::::

Key output

circle-info

The Cosmos SDK Keyring output (i.e blockxdkeys) only supports addresses and public keys in Bech32 format.

We can use the keys show command of blockxd with the flag --bech <type> (acc|val|cons) to obtain the addresses and keys as mentioned above,

:::: tabs ::: tab Account

::: ::: tab Validator

::: ::: tab Consensus

::: ::::

Querying an Account

You can query an account address using the CLI, gRPC or

Command Line Interface

Cosmos gRPC and REST

JSON-RPC

To retrieve the Ethereum hex address using Web3, use the JSON-RPC eth_accounts or personal_listAccounts endpoints:

Last updated