Налаштування прийому платежів у Litecoin
Litecoin — форк Bitcoin з меншим часом блоку (~2.5 хв проти 10 хв) та іншими параметрами мережі. Технічна інтеграція практично ідентична Bitcoin: ті ж HD-гаманці (BIP-32/44), ті ж типи адрес, та ж UTXO-модель. Якщо у вас вже є Bitcoin-інтеграція, додавання Litecoin — це зміна параметрів мережі та кількох констант.
Адреси та параметри мережі
Litecoin підтримує ті ж типи адрес, що й Bitcoin, але з різними префіксами:
| Тип | Litecoin формат | BIP-44 шлях |
|---|---|---|
| P2PKH (Legacy) | L... або M... |
m/44'/2'/0' |
| P2SH-P2WPKH (Wrapped SegWit) | M... |
m/49'/2'/0' |
| P2WPKH (Native SegWit) | ltc1q... |
m/84'/2'/0' |
| P2TR (Taproot) | ltc1p... |
m/86'/2'/0' |
Coin type для Litecoin у BIP-44 — 2 (на відміну від Bitcoin — 0).
Реалізація через bitcoinjs-lib
bitcoinjs-lib підтримує Litecoin через кастомні параметри мережі — окремої бібліотеки не потрібно:
import * as bitcoin from 'bitcoinjs-lib'
import { BIP32Factory } from 'bip32'
import * as ecc from 'tiny-secp256k1'
bitcoin.initEccLib(ecc)
const bip32 = BIP32Factory(ecc)
// Параметри мережі Litecoin
const LITECOIN: bitcoin.Network = {
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'ltc', // префікс для Native SegWit адрес
bip32: {
public: 0x019da462, // Ltpv / Ltub
private: 0x019d9cfe,
},
pubKeyHash: 0x30, // адреси починаються з 'L'
scriptHash: 0x32, // адреси починаються з 'M'
wif: 0xb0,
}
const LITECOIN_TESTNET: bitcoin.Network = {
messagePrefix: '\x19Litecoin Signed Message:\n',
bech32: 'tltc',
bip32: {
public: 0x0436f6e1,
private: 0x0436ef7d,
},
pubKeyHash: 0x6f,
scriptHash: 0x3a,
wif: 0xef,
}
// Генерація Native SegWit адреси (ltc1q...)
function getLitecoinAddress(xpub: string, index: number): string {
const node = bip32.fromBase58(xpub, LITECOIN)
const child = node.derive(0).derive(index)
const { address } = bitcoin.payments.p2wpkh({
pubkey: Buffer.from(child.publicKey),
network: LITECOIN,
})
if (!address) throw new Error('Address derivation failed')
return address
}
Моніторинг транзакцій
Для Litecoin доступні ті ж інструменти, що й для Bitcoin:
Власна нода + electrs — переважний варіант. electrs підтримує Litecoin через прапор --network=litecoin. Litecoin Core завантажується та синхронізується швидше, ніж Bitcoin (~50 GB проти ~600 GB для повної ноди).
Публічний API — Blockchair підтримує Litecoin:
async function checkLitecoinPayment(
address: string,
expectedLit: number // у лайтконах, не у litoshi
): Promise<'pending' | 'confirmed'> {
const res = await fetch(
`https://api.blockchair.com/litecoin/dashboards/address/${address}`
)
const data = await res.json()
const stats = data.data[address]?.address
const confirmedReceived = stats?.received / 1e8 ?? 0
return confirmedReceived >= expectedLit ? 'confirmed' : 'pending'
}
Blockchair API безкоштовний до 1430 запитів/день. Для production потрібна нода.
Кількість підтверджень
Через швидші блоки (~2.5 хв) ви можете вимагати більше підтверджень за той же астрономічний час:
| Еквівалент за часом | Bitcoin блоків | Litecoin блоків |
|---|---|---|
| ~10 хвилин | 1 | 4 |
| ~30 хвилин | 3 | 12 |
| ~60 хвилин | 6 | 24 |
На практиці для більшості платежів достатньо 6–12 підтверджень Litecoin.
Конвертація та курси
При виставленні рахунку в LTC потрібен актуальний курс. Варіанти:
// Через CoinGecko (безкоштовно, без ключа)
async function getLtcPriceUsd(): Promise<number> {
const res = await fetch(
'https://api.coingecko.com/api/v3/simple/price?ids=litecoin&vs_currencies=usd'
)
const data = await res.json()
return data.litecoin.usd
}
// Виставлення рахунку: зафіксувати суму в LTC на момент створення
// та зберігати до закінчення (~15 хвилин). Не перераховувати щосекунди.
Курс потрібно фіксувати в момент генерування адреси платежу та не перераховувати протягом життя платежу. Якщо користувач не оплатив до закінчення — генерувати нову адресу з актуальним курсом.
Відмінності від Bitcoin у production
Litecoin історично використовувався як "тестова мережа Bitcoin" в реальних умовах — багато оновлень (SegWit, MimbleWimble через MWEB) вийшло там раніше. MWEB (MimbleWimble Extension Blocks) додає опціональну конфіденційність транзакцій, що спричиняє додаткові складності при моніторингу: MWEB-транзакції не видно стандартним API. Якщо клієнти платять через MWEB — вам потрібна власна нода з підтримкою MWEB.
Комісії в мережі Litecoin історично нижче Bitcoin в абсолютних значеннях. Але це не впливає на отримувача — комісію платить відправник.







