Skip to content

iotexproject/iotex-address

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iotex-address

This is the golang library of the address used in IoTeX blockchain and relatant products and services.

Address Generation Algorithm

A human readable address looks like io1nyjs526mnqcsx4twa7nptkg08eclsw5c2dywp4. It takes the following steps to be constructed:

  1. Generating a random private key and the corresponding public key using secp256k1's elliptic curve;
  2. Apply keccak256 hash function to the public key (hash := keccak256(pk[1:]), exluding the first byte (which indicates whether the public key is uncompressed or not);
  3. Take the last 20 bytes as the payload (payload := hash[12:]), which is the byte representation of the address;
  4. Apply bech32 encoding on the payload and adding io prefix.