Litecoin started in October 2011 as a fork of the Bitcoin Core codebase, and most of it is still Bitcoin: the same UTXO model, the same Script, the same transaction format, SegWit, and a litecoin-cli that answers the same RPCs as bitcoin-cli. The differences come down to a few parameters and one feature: a different proof-of-work function (Scrypt), blocks four times as often, four times the supply, and MWEB, an opt-in privacy layer that Bitcoin doesn't have.
The parameters side by side
| Bitcoin | Litecoin | |
|---|---|---|
| Launched | 2009 | 2011 |
| Proof of work | SHA-256d | Scrypt |
| Target block time | 10 minutes | 2.5 minutes |
| Difficulty retarget | Every 2,016 blocks (~2 weeks) | Every 2,016 blocks (~3.5 days) |
| Maximum supply | 21 million BTC | 84 million LTC |
| Initial block subsidy | 50 BTC | 50 LTC |
| Halving interval | 210,000 blocks (~4 years) | 840,000 blocks (~4 years) |
| Smallest unit | satoshi (10⁻⁸ BTC) | litoshi (10⁻⁸ LTC) |
| SegWit activated | August 2017 | May 2017 |
| Protocol-level privacy | None | MWEB (opt-in, since 2022) |
| Default P2P / RPC ports | 8333 / 8332 | 9333 / 9332 |
Scrypt proof of work
Bitcoin miners search for a header whose double SHA-256 hash is below the target. Litecoin miners do the same with Scrypt, a memory-hard function, using parameters N=1024, r=1, p=1 (about 128 KB of memory per hash). The idea in 2011 was to keep mining on ordinary CPUs. That didn't last: GPUs took over quickly, and dedicated Scrypt ASICs have dominated since around 2014. Today Litecoin has its own ASIC industry, separate from Bitcoin's. A SHA-256 machine can't mine Litecoin, and a Scrypt machine can't mine Bitcoin.
Scrypt is used only for the proof-of-work check. Block hashes and transaction IDs are still double SHA-256, exactly as in Bitcoin:
import hashlib
def pow_hash(header: bytes) -> bytes:
# Litecoin proof of work: the 80-byte header is both password and salt
return hashlib.scrypt(header, salt=header, n=1024, r=1, p=1, dklen=32)
def block_hash(header: bytes) -> bytes:
# Block ID, same as Bitcoin: double SHA-256
return hashlib.sha256(hashlib.sha256(header).digest()).digest()
def meets_target(header: bytes, target: int) -> bool:
return int.from_bytes(pow_hash(header), "little") <= target
That's why the block hash an explorer shows for a Litecoin block doesn't have the leading zeros you'd expect: the zeros are in the Scrypt hash, which explorers rarely display. Litecoin's hashrate is also shared with Dogecoin through merged mining, so most Scrypt miners produce blocks for both chains at once.
2.5-minute blocks: faster confirmations, not faster finality
A block every 2.5 minutes means the first confirmation arrives about four times sooner on average. It doesn't mean four times the security per minute. What protects a payment is the amount of work an attacker would have to redo, and that depends on Litecoin's hashrate and the cost of renting or buying Scrypt hardware, not on how many blocks you count.
In practice:
- Exchanges usually ask for more confirmations on LTC than on BTC. That still adds up to minutes rather than hours.
- For large amounts, think in terms of "how much would it cost to rewrite this many minutes of Litecoin work", not "six confirmations is the standard".
- Shorter intervals produce slightly more stale blocks, so a one-block reorg is a bit more common than on Bitcoin. Don't treat one confirmation as final.
The block weight limit is the same as Bitcoin's (4 million weight units), so with blocks four times as often Litecoin has roughly four times the raw capacity. Combined with lower demand, fees are usually a small fraction of Bitcoin's. They're still priced per virtual byte, and fee bumping works the same way. Litecoin Core tracks an older Bitcoin Core release, though, so recent Bitcoin mempool policy changes (full-RBF by default, for example) may not be present. Check the node version before assuming Bitcoin Core behavior.
Supply and halvings
Litecoin copies Bitcoin's emission curve scaled by four: the same 50-coin starting subsidy, four times as many blocks per halving period, and four times the final supply. Because the blocks are four times as frequent, halvings still land roughly every four years:
| Halving | Year | Subsidy after |
|---|---|---|
| 1st | 2015 | 25 LTC |
| 2nd | 2019 | 12.5 LTC |
| 3rd | 2023 | 6.25 LTC |
| 4th | expected 2027 | 3.125 LTC |
Price per coin tells you nothing about value. 84 million LTC isn't "cheaper" than 21 million BTC, just a different unit.
SegWit and Lightning
Litecoin activated SegWit in May 2017, a few months before Bitcoin, and served as a live test network for it. Early Lightning Network experiments ran on Litecoin too, including cross-chain BTC–LTC swaps over Lightning later that year. SegWit on Litecoin works exactly as on Bitcoin: native SegWit outputs are cheaper to spend and fix third-party malleability.
Lightning is a different story today. Tooling, liquidity and wallet support for Lightning on Litecoin are far thinner than for Bitcoin, so don't plan a product around LTC Lightning without checking what current implementations actually support.
MWEB: opt-in privacy
MimbleWimble Extension Blocks (MWEB) activated in May 2022 with Litecoin Core 0.21.2. Each regular block can carry an extension block that uses the MimbleWimble protocol:
- Peg-in: a normal transaction moves LTC into MWEB. The amount is visible on the main chain.
- Inside MWEB: amounts are hidden with Pedersen commitments and range proofs, outputs go to stealth addresses, and spent outputs can be cut through and pruned.
- Peg-out: coins return to a normal address. The amount is visible again.
MWEB is opt-in, so the main chain is as transparent as Bitcoin's. Privacy comes only from what happens between peg-in and peg-out, and matching peg-in and peg-out amounts and timing can undo it. MWEB addresses start with ltcmweb1:
litecoin-cli getnewaddress "" bech32 # ltc1q... native SegWit
litecoin-cli getnewaddress "" mweb # ltcmweb1... MWEB stealth address
Support isn't universal. Many exchanges and hardware wallets don't accept MWEB deposits or send to MWEB addresses, and some South Korean exchanges delisted LTC in 2022, citing MWEB.
Address formats
| Prefix | Type | Notes |
|---|---|---|
L... | P2PKH (legacy) | Version byte 0x30 |
M... | P2SH | Version byte 0x32 |
3... | P2SH (old encoding) | Same script as an M address, Bitcoin's version byte |
ltc1q... | Native SegWit (bech32) | Cheapest to spend for ordinary payments |
ltcmweb1... | MWEB | Needs an MWEB-aware wallet |
Litecoin originally shared Bitcoin's P2SH version byte, so its P2SH addresses began with 3 and were indistinguishable from Bitcoin's. It switched to M to prevent cross-chain mistakes. Old 3 addresses still work and encode the same script hash. Elsewhere, different version bytes and the bech32 prefix (bc vs ltc) make wallets reject an address for the wrong chain.
If you use a Bitcoin library, pass Litecoin's network parameters explicitly. With bitcoinjs-lib:
import * as bitcoin from "bitcoinjs-lib";
export const litecoin: bitcoin.networks.Network = {
messagePrefix: "\x19Litecoin Signed Message:\n",
bech32: "ltc",
bip32: { public: 0x019da462, private: 0x019d9cfe },
pubKeyHash: 0x30,
scriptHash: 0x32,
wif: 0xb0,
};
Litecoin's BIP-44 coin type is 2, so a native SegWit account lives at m/84'/2'/0'. Generic Bitcoin libraries don't understand MWEB.
When the differences matter
| You are... | What changes |
|---|---|
| Sending or receiving LTC | Faster first confirmation, low fees, ltc1 addresses preferred |
| Accepting payments | Set confirmations by value at risk; check whether to accept MWEB |
| Building a wallet | Litecoin network params, coin type 2, optional MWEB support |
| Running a node or pool | Scrypt PoW, ports 9333/9332, older Bitcoin Core base |
| Mining | Scrypt ASICs, usually merged-mined with Dogecoin |
If you already know Bitcoin, you already know most of Litecoin. Learn Scrypt, block timing, the address prefixes and MWEB, and treat everything else as Bitcoin with different constants.
Get the weekly commit
New blockchain deep dives every week.