Чи IPv4 досі інвестиція у 2026? Дохідність після зборів
Коротко (перевірено 2026-11-06): так, як дохідний актив, а не як ставка на ціну. Блок /24, куплений за 90-денною медіаною ip4.market $25.25 за IP (індекс оновлено 2026-11-02), коштує близько $6,464. В оренді за середньою ставкою IPv4Center $0.53 за IP на місяць він приносить близько $1,628 на рік: 25.2% брутто. Решту вирішує реєстр. У LIR, за який ви вже платите, це й чиста дохідність; в ARIN після збору 2027 року лишається 20.7%; у новому LIR у RIPE, відкритому лише під цей блок, внесок EUR 1,894 перетворює його на збиток 7.7% на рік. Блок /22 заробляє достатньо, щоб утримувати власний LIR. Усі цифри є датованими спостереженнями; щоб отримати пропозицію, див. ціни на IPv4.
Що змінилося після обвалу 2025 року
Спекулятивної премії більше немає. У наших ринкових нотатках за липень 2026 /24 коштував близько $30 за IP, а оренда була близько $0.40 на місяць: 16% брутто. До листопада 2026 ціна купівлі впала сильніше, ніж оренда, тож той самий розрахунок дає 25.2%. Великі блоки й далі найдешевші за адресу: індекс ip4.market показує 90-денні медіани $19.00 для /22, $15.97 для /20 і $12.62 для /16 (лише два продажі). Покупець у 2026 році платить за дохід, а не за ціну, яка тільки росте.
Фіксовані витрати рухаються в інший бік. З 2027 року RIPE NCC бере EUR 1,894 за кожен рахунок LIR згідно з RIPE-867, без плати за IP чи за трансфер, вступний внесок EUR 1,000 (див. що змінилося у схемі внесків 2027). З 29 вересня 2026 RIPE NCC також тимчасово не дозволяє наявним членам відкривати додаткові рахунки LIR (сторінка оплати RIPE, прочитано 2026-11-06), тож "припаркувати" блок у новому LIR члену все одно не вдасться. Тарифи ARIN на 2027 рік, ухвалені 19 квітня 2026, становлять $288.75 на рік за /24 (3X-Small) і $577.50 до /22 включно (2X-Small), плюс одноразовий збір з отримувача $187.50 за трансфер /24.
Виміряйте самі: ipv4_asset.js
Скрипт читає публічний журнал трансферів IPv4 від RIPE NCC, щоб побачити ліквідність кожного розміру блоку і як довго блоки лишаються в одного власника. Потім він рахує чисту річну дохідність для /24 і /22 залежно від реєстру, за курсом євро від ЄЦБ. Ціни задано датованими константами на початку: змініть їх, коли отримаєте пропозицію. Збережіть як ipv4_asset.js:
// ipv4_asset.js - is an IPv4 block still an investment? Liquidity from RIPE's own transfer log,
// then net lease yield after registry fees for a /24 and a /22.
// usage: bun ipv4_asset.js [transfers.json] (downloads RIPE's log when no file is given)
const LOG = 'https://www-static.ripe.net/dynamic/table-of-transfers/ipv4/transfers-allocations.json'
const BUY = { 24: 25.25, 22: 19.00 } // ip4.market price index, 90-day median $/IP, updated 2026-11-02
const LEASE = { 24: 0.53, 22: 0.58 } // IPv4Center lease page, avg $/IP/month, read 2026-11-06
const RIPE_LIR_EUR = 1894 // RIPE-867: annual fee per LIR account from 2027
const ARIN_RSP = { 24: 288.75, 22: 577.50 } // ARIN 2027 fee schedule, 3X-Small / 2X-Small
const file = process.argv[2]
const log = file ? await Bun.file(file).json() : await (await fetch(LOG)).json()
const ecb = await (await fetch('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml')).text()
const usdPerEur = +ecb.match(/currency='USD' rate='([\d.]+)'/)[1]
const ecbDate = ecb.match(/time='([\d-]+)'/)[1]
const ip = s => s.split('.').reduce((a, o) => a * 256 + +o, 0)
const size = b => b.includes('/') ? 2 ** (32 - +b.split('/')[1]) : ip(b.split('-')[1].trim()) - ip(b.split('-')[0].trim()) + 1
const day = d => { const [dd, mm, yy] = d.split('/'); return Date.UTC(+yy, mm - 1, +dd) }
const bucket = n => n <= 256 ? '/24' : n <= 1024 ? '/23-/22' : n <= 4096 ? '/21-/20' : n <= 32768 ? '/19-/17' : '/16+'
const rows = log.transfers.map(t => ({ ...t, ts: day(t.date), blocks: t.transferred_blocks.split(',').map(s => s.trim()) }))
const last = new Date(Math.max(...rows.map(r => r.ts))).toISOString().slice(0, 10)
console.log(`RIPE NCC IPv4 transfer log: ${rows.length} entries, newest ${last}`)
// 1. Liquidity: market (POLICY) transfers by block size, 2025 vs 2026 to date
const year = (r, y) => new Date(r.ts).getUTCFullYear() === y
const stats = y => {
const s = {}
for (const r of rows.filter(r => r.transferType === 'POLICY' && year(r, y)))
for (const b of r.blocks) {
const k = bucket(size(b)), o = (s[k] ??= { n: 0, ips: 0, temp: 0 })
o.n++; o.ips += size(b); if (r.transferStatus === 'TEMPORARY') o.temp++
}
return s
}
const s25 = stats(2025), s26 = stats(2026)
console.log('\nblock size | 2025 blocks | 2026 blocks (to ' + last + ') | 2026 addresses | temporary')
for (const k of ['/24', '/23-/22', '/21-/20', '/19-/17', '/16+'])
console.log(`${k.padEnd(10)} | ${String(s25[k]?.n ?? 0).padStart(11)} | ${String(s26[k]?.n ?? 0).padStart(24)} | ${
(s26[k]?.ips ?? 0).toLocaleString('en-US').padStart(14)} | ${String(s26[k]?.temp ?? 0).padStart(9)}`)
// 2. Holding period: the same block sold on again as a whole (permanent market transfers)
const seen = new Map(), holds = []
for (const r of rows.filter(r => r.transferType === 'POLICY' && r.transferStatus === 'PERMANENT').sort((a, b) => a.ts - b.ts))
for (const b of r.blocks) {
if (seen.has(b)) holds.push((r.ts - seen.get(b)) / 864e5)
seen.set(b, r.ts)
}
holds.sort((a, b) => a - b)
const med = holds[Math.floor(holds.length / 2)]
console.log(`\nblocks sold on again whole: ${holds.length} of ${seen.size} (${(100 * holds.length / seen.size).toFixed(1)}%)`)
console.log(`median time between the two sales: ${(med / 365.25).toFixed(1)} years; within 24 months: ${holds.filter(d => d < 730).length}`)
// 3. Net lease yield per year on the purchase price, by registry and occupancy
const usd = v => (v < 0 ? '-$' : '$') + Math.abs(Math.round(v)).toLocaleString('en-US')
console.log(`\nEUR 1 = $${usdPerEur} (ECB, ${ecbDate}); RIPE LIR fee EUR ${RIPE_LIR_EUR} = ${usd(RIPE_LIR_EUR * usdPerEur)}`)
console.log('block | price | lease/yr | held in | fee/yr | net yield 100% | 70% let')
for (const p of [24, 22]) {
const n = 2 ** (32 - p), cost = n * BUY[p], gross = n * LEASE[p] * 12
const fees = { 'a new RIPE LIR': RIPE_LIR_EUR * usdPerEur, 'ARIN (3X/2X-Small)': ARIN_RSP[p], 'an existing LIR': 0 }
const y = (f, occ) => ((100 * (gross * occ - f) / cost).toFixed(1) + '%').padStart(occ === 1 ? 14 : 7)
for (const [k, f] of Object.entries(fees))
console.log(`/${p} | ${usd(cost).padStart(7)} | ${usd(gross).padStart(8)} | ${k.padEnd(20)} | ${usd(f).padStart(6)} | ${y(f, 1)} | ${y(f, 0.7)}`)
}
console.log('fees per year; lease = list average, before the lessor\'s abuse handling and any broker or platform cut')
bun ipv4_asset.js
Результат запуску на хмарному сервері DCXV, Bun 1.4.4, 2026-11-06 (журнал RIPE до 2026-11-05):
RIPE NCC IPv4 transfer log: 43896 entries, newest 2026-11-05
block size | 2025 blocks | 2026 blocks (to 2026-11-05) | 2026 addresses | temporary
/24 | 1419 | 1010 | 258,560 | 43
/23-/22 | 1622 | 997 | 850,944 | 21
/21-/20 | 453 | 334 | 935,936 | 5
/19-/17 | 214 | 216 | 2,981,888 | 10
/16+ | 53 | 48 | 6,291,456 | 2
blocks sold on again whole: 5041 of 32361 (15.6%)
median time between the two sales: 3.6 years; within 24 months: 0
EUR 1 = $1.1224 (ECB, 2026-11-05); RIPE LIR fee EUR 1894 = $2,126
block | price | lease/yr | held in | fee/yr | net yield 100% | 70% let
/24 | $6,464 | $1,628 | a new RIPE LIR | $2,126 | -7.7% | -15.3%
/24 | $6,464 | $1,628 | ARIN (3X/2X-Small) | $289 | 20.7% | 13.2%
/24 | $6,464 | $1,628 | an existing LIR | $0 | 25.2% | 17.6%
/22 | $19,456 | $7,127 | a new RIPE LIR | $2,126 | 25.7% | 14.7%
/22 | $19,456 | $7,127 | ARIN (3X/2X-Small) | $578 | 33.7% | 22.7%
/22 | $19,456 | $7,127 | an existing LIR | $0 | 36.6% | 25.6%
fees per year; lease = list average, before the lessor's abuse handling and any broker or platform cut
Що кажуть цифри
- Збір реєстру вирішує долю малих блоків. /24 приносить $1,628 на рік за прейскурантними ставками. Новий LIR у RIPE коштує $2,126, тож блок збитковий навіть у повній оренді. Той самий /24 в ARIN зберігає 20.7%, а в LIR, який у вас уже є, усі 25.2%. Блок /22 сам утримує LIR у RIPE: 25.7% чистими в повній оренді.
- Заповненість є головним ризиком дохідності. При 70% в оренді /24 у наявному LIR падає з 25.2% до 17.6%, а /22 у новому LIR з 25.7% до 14.7%. Місяць між орендарями означає місяць зборів без оренди.
- Ліквідні саме малі блоки. З 1 січня по 5 листопада 2026 журнал RIPE показує 1,010 блоків /24 і 997 блоків /23 або /22, що змінили власника, проти 48 блоків /16 і більше. /24 перейшло менше, ніж за весь 2025 рік (1,419), а блоки від /19 до /17 уже перевищили показник 2025 року (216 проти 214). Один трансфер може містити кілька блоків; скрипт рахує кожен.
- Власники тримають блоки роками. Із 32,361 блоку, проданого цілим на ринку RIPE, 5,041 (15.6%) пізніше продали знову тим самим блоком, у медіані через 3.6 року після першого продажу, і жодного протягом 24 місяців: заборона RIPE на повторний трансфер видна в даних. Плануйте вихід щонайменше на два роки вперед.
- Реєстр не показує більшість оренд. Лише 81 з 2,605 блоків, що перейшли у 2026 році, були тимчасовими трансферами RIPE. У більшості оренд зареєстрованим власником лишається орендодавець, тож порахувати з реєстру, скільки блоків здано, неможливо.
Ризики, яких не видно в дохідності
| Ризик | Що він робить з активом | Що перевірити |
|---|---|---|
| Ціна | Корекція 2025 року найбільше вдарила по великих блоках | Купувати за датованою медіаною, а не за прайсом |
| IPv6 | Поступово знижує попит на оренду; dual stack тримає IPv4 | Хто ваші орендарі і навіщо їм IPv4 |
| Збори реєстру | Один внесок RIPE за LIR, незалежно від обсягу | Ваш збір на блок з 2027 року |
| Репутація | Один поганий орендар може внести блок у чорні списки | Історію до купівлі, умови щодо abuse в договорі |
| Вихід | 24 місяці заборони в RIPE, брокерська комісія при продажу | Розмір блоку на вихід і дату, коли можна продати |
Перед купівлею пройдіть перевірки з нашого посібника з чорних списків IPv4: блок, що в списках з першого дня, нічого не заробляє, доки його не очищено. Якщо ви хочете використовувати адреси самі, оренда чи купівля IPv4 робить той самий розрахунок з боку орендаря.
Вхід і вихід з DCXV
Актив вартий стільки, скільки його вихід. Брокерську комісію DCXV сплачує продавець: EUR 2.00 за IP для /24 або /23, EUR 1.00 для /22-/19 і EUR 0.50 для /18-/14; покупець оплачує ескроу. Для /24 вище це EUR 512, близько $575 або 8.9% його ціни листопада 2026 (курс ЄЦБ на 2026-11-05); для /22 це EUR 1,024, близько 5.9%. Ми супроводжуємо купівлю, оренду і продаж у регіонах RIPE, ARIN і APNIC і можемо здати ваш блок в оренду хостинговим і хмарним клієнтам. Надішліть розмір блоку і реєстр на IPv4-деск або на ipv4@dcxv.com.
