Account Structure

Summary

EmpoorioChain's canonical account is a 32-byte AccountId32, shown in SS58 format. EVM contracts get a secondary H160 address, derived from the native account through a one-way hash. Accounts must hold a minimum DMS balance (the Existential Deposit) to remain in state.

AccountId32 and SS58

EmpoorioChain's account type is defined in the runtime as:

Account type
pub type AccountId = <<Signature as Verify>::Signer as IdentifyAccount>::AccountId;
pub type Signature = MultiSignature;

This resolves to a standard Substrate AccountId32: a 32-byte value derived from an sr25519, ed25519, or ecdsa keypair. It is normally displayed in SS58 format — a base58-encoded address with a network-specific prefix and checksum, similar in spirit to Bitcoin's Base58Check, but distinct from Ethereum's 0x-prefixed hex addresses.

Every native account on EmpoorioChain — a user's wallet, a pallet's treasury account, the faucet, an AI reward pool — is an AccountId32. There is no separate "program-derived" or off-curve address type at the account layer; where a pallet needs a deterministic, unsigned account for its own internal bookkeeping (a pool address, a treasury account), it derives one using standard Substrate primitives, but this is a pallet-level implementation detail, not a distinct account type developers work with directly the way program-derived addresses on other chains are.

The EVM layer: H160 addresses

EmpoorioChain ships an EVM compatibility pallet (pallet-evm + pallet-ethereum, part of the Frontier stack), so 20-byte, 0x-prefixed H160 addresses exist too — but only inside that EVM execution environment. Every H160 address is mapped back to a native AccountId32 through pallet_evm::HashedAddressMapping<BlakeTwo256>: a one-way Blake2-256 hash derivation, not a truncated or reversible 1:1 mapping. An EVM address and its corresponding native account are two different-looking identifiers linked by a deterministic hash, not the same bytes viewed two ways.

The registered EVM chain ID has appeared as different values across the project's own documentation at different points in its history. Check your wallet or RPC endpoint's live eth_chainId response rather than trusting a hardcoded number from any single doc page.

Existential Deposit

Accounts must hold a minimum DMS balance, the Existential Deposit (ED), to exist in on-chain state. Accounts whose balance falls below the ED are reaped (removed from state). The runtime currently sets:

Existential Deposit
ExistentialDeposit: Balance = 10_000_000_000_000_000; // 0.01 DMS at 18 decimals

Although it functions differently from other chains' per-byte rent-exemption model (EmpoorioChain doesn't scale the ED by account data size the way some chains scale rent by account size), the underlying motivation is similar: keep chain state bounded by discouraging a proliferation of empty or near-empty accounts.

For the full Ethereum-to-EmpoorioChain account comparison, including a field-by-field table, see EVM to EmpoorioChain: Accounts on empoorio.org.

Is this page helpful?

Содержание

Редактировать страницу
Account Structure | empoorio