How is a litecoin address generated? What hashing do they use?

For example, bitcoin addresses are generated like so: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

I am looking for an answer like that but can't find it anywhere. Any litecoin searches turn up with bitcoin links.

Please do not give me Litecoin address generation sites or wallets to download. I want to know how I can manually program a litecoin address generator.

2 Answers 2


Litecoin uses exactly the same procedure to generate addresses, the only difference is the network prefix.

On step 4 (Add version byte in front of RIPEMD-160 hash) instead of 0x00 for bitcoin use

0x30 for Litecoin main-net or

0x6F for Litecoin test-net.

Your address should start with L then and will be a valid Litecoin address.

Full sequence:

0 - Having a private ECDSA key


1 - Take the corresponding public key generated with it (65 bytes, 1 byte 0x04, 32 bytes corresponding to X coordinate, 32 bytes corresponding to Y coordinate)


2 - Perform SHA-256 hashing on the public key


3 - Perform RIPEMD-160 hashing on the result of SHA-256


4 - Add version byte in front of RIPEMD-160 hash (0x30 for Litecoin Main Network)


(note that below steps are the Base58Check encoding, which has multiple library options available implementing it)

5 - Perform SHA-256 hash on the extended RIPEMD-160 result


6 - Perform SHA-256 hash on the result of the previous SHA-256 hash


7 - Take the first 4 bytes of the second SHA-256 hash. This is the address checksum


8 - Add the 4 checksum bytes from stage 7 at the end of extended RIPEMD-160 hash from stage 4. This is the 25-byte binary Litecoin Address.


9 - Convert the result from a byte string into a base58 string using Base58Check encoding. This is the most commonly used Litecoin Address format


  • 1
    Was confused because here it shows that Bitcoin's testnet prefix is 0x6f as well. Apparently Bitcoin and Litecoin share same the testnet prefix.
    – thalisk
    Commented Jul 3, 2018 at 10:16
$ python3.6 ltc_address_generator.py 0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

Please try the following py script, and generate a ltc address for your public key.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import hashlib
import base58

def sha256(hexstr):
    """sha256 hash algorithm
    return hashlib.new('sha256', bytes.fromhex(hexstr)).hexdigest()

def rip160(hexstr):
    """ripemd160 hash algorithm
    return hashlib.new('ripemd160', bytes.fromhex(hexstr)).hexdigest()

def get_ltc_address(pubkey):
    rip160_hash = "30" + rip160(sha256(pubkey.upper()).upper()).upper()
    sha256_hash = sha256(sha256(rip160_hash).upper()).upper()
    return base58.b58encode(bytes.fromhex(rip160_hash + sha256_hash[0:8]))

if __name__ == '__main__':
    import sys

    if len(sys.argv) != 2:
        print("[*] Usage: python %s publickey")


# references
# https://en.bitcoin.it/wiki/Protocol_documentation#Addresses
# https://gist.githubusercontent.com/circulosmeos/97f2c155777434081cb56886c1b608be/raw/f960b4e89e86dcdf77fb6288c1005a7cb847cc98/easy-litecoin-address-from-public-key.py
# https://bitcoin.stackexchange.com/questions/65282/how-is-a-litecoin-address-generated
# https://bitcoin.stackexchange.com/questions/56923/is-this-how-to-generate-a-bitcoin-address-with-python
# https://iancoleman.io/bip39/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.