bitcoinjs already has support for litecoin, a quick look at /src/network.js and the README reveals this. https://github.com/bitcoinjs/bitcoinjs-lib/blob/d853806/test/integration/basic.js#L30

See how they set the network: litecoin variable, that is probably used consistently through the code (atleast for address generation).

Nothing really major changes for signing to be honest, take a look at https://github.com/bitcoinjs/bitcoinjs-message

WIF and address generation Do not take the warning about the cryptographically secure random number generator lightly. If you do not change it then you will constantly generate the same address and it will be horribly insecure.

//import bitcoinjs libs var bitcoin = require('bitcoinjs-lib') // v2.x.x var bitcoinMessage = require('bitcoinjs-message') //set a litecoin variable equal to its network type, which we'll use throughout the example var litecoin = bitcoin.networks.litecoin //let's generate a litecoin keypair from a string //WARNING: YOU MUST REPLACE rng() WITH A FUNCTION THAT ACTUALLY RETURNS CRYPTOGRAPHICALLY SECURE RANDOM DATA! function rng () { return Buffer.from('MAKE SURE THIS IS NEW RANDOM DATA EACH TIME RNG() IS CALLED') } var keyPair = bitcoin.ECPair.makeRandom({ network: litecoin, rng: rng }) var wif = keyPair.toWIF() //You should store the output of the variable wif here, this is the actual key to the litecoin address (contains the private key) and is crucial to signing messages, do not share this and handle with care. var address = keyPair.getAddress() console.log("wif: " + wif + "

") console.log("address: " + address + "

")

Message signing using WIF from example1

This takes your WIF and then signs a message.

//import bitcoinjs libs var bitcoin = require('bitcoinjs-lib') // v2.x.x var bitcoinMessage = require('bitcoinjs-message') //set a litecoin variable equal to its network type, which we'll use throughout the example var litecoin = bitcoin.networks.litecoin // add the wif key you stored var wif = 'WIF key goes here' var keyPair = bitcoin.ECPair.fromWIF(wif, litecoin) var privateKey = keyPair.d.toBuffer(32) var message = 'This is an example of a signed message.' var messagePrefix = litecoin.messagePrefix var signature = bitcoinMessage.sign(message, messagePrefix, privateKey, keyPair.compressed) console.log(signature.toString('base64'))

Replace the WIF by the one you generated in the previous example.

Message verification using the address from example1, and signature output from example2