Czy IPv4 to nadal inwestycja w 2026? Zysk po opłatach
W skrócie (sprawdzone 2026-11-06): tak, jako aktywo dochodowe, a nie zakład na cenę. Pula /24 kupiona po 90-dniowej medianie ip4.market, $25.25 za IP (indeks z 2026-11-02), kosztuje około $6,464. Wydzierżawiona po średniej IPv4Center, $0.53 za IP miesięcznie, przynosi około $1,628 rocznie: 25.2% brutto. Resztę rozstrzyga rejestr. W LIR, za który już płacisz, to także zysk netto; w ARIN po opłacie na 2027 zostaje 20.7%; w nowym LIR w RIPE otwartym tylko dla tej puli składka EUR 1,894 zamienia go w stratę 7.7% rocznie. Pula /22 zarabia dość, by utrzymać własny LIR. Wszystkie liczby to datowane obserwacje; po wycenę zajrzyj do cen IPv4.
Co zmieniło się od krachu 2025
Premia spekulacyjna zniknęła. Nasze notatki rynkowe z lipca 2026 podawały /24 po około $30 za IP i dzierżawę blisko $0.40 miesięcznie: 16% brutto. Do listopada 2026 cena zakupu spadła mocniej niż czynsz, więc ten sam rachunek daje 25.2%. Duże pule wciąż są najtańsze w przeliczeniu na adres: indeks ip4.market pokazuje 90-dniowe mediany $19.00 dla /22, $15.97 dla /20 i $12.62 dla /16 (tylko dwie sprzedaże). Kupujący w 2026 płaci za dochód, a nie za cenę, która tylko rośnie.
Koszty stałe poszły w drugą stronę. Od 2027 RIPE NCC pobiera EUR 1,894 za konto LIR według RIPE-867, bez opłaty za IP ani za transfer, wpisowe EUR 1,000 (zob. co zmienia się w schemacie opłat 2027). Od 29 września 2026 RIPE NCC tymczasowo nie pozwala też obecnym członkom otwierać dodatkowych kont LIR (strona płatności RIPE, odczyt 2026-11-06), więc członek i tak nie "zaparkuje" puli w nowym LIR. Taryfa ARIN na 2027, przyjęta 19 kwietnia 2026, to $288.75 rocznie za /24 (3X-Small) i $577.50 do /22 (2X-Small), plus jednorazowa opłata odbiorcy $187.50 za transfer /24.
Zmierz sam: ipv4_asset.js
Skrypt czyta publiczny rejestr transferów IPv4 RIPE NCC, by sprawdzić płynność każdego rozmiaru puli i jak długo pule zostają u jednego właściciela. Potem liczy roczny zysk netto dla /24 i /22 w zależności od rejestru, po kursie euro z EBC. Ceny to datowane stałe na początku pliku: zmień je, gdy masz wycenę. Zapisz jako 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
Wynik, uruchomiony na serwerze chmurowym DCXV z Bun 1.4.4 dnia 2026-11-06 (rejestr RIPE do 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
Co mówią liczby
- Opłata rejestru przesądza o małych pulach. /24 przynosi $1,628 rocznie po stawkach cennikowych. Nowy LIR w RIPE kosztuje $2,126, więc pula traci nawet przy pełnej dzierżawie. Ta sama /24 w ARIN zachowuje 20.7%, a w LIR, który już prowadzisz, pełne 25.2%. Pula /22 sama utrzyma LIR w RIPE: 25.7% netto przy pełnej dzierżawie.
- Obłożenie to prawdziwe ryzyko. Przy 70% wydzierżawienia /24 w istniejącym LIR spada z 25.2% do 17.6%, a /22 w nowym LIR z 25.7% do 14.7%. Miesiąc między najemcami to miesiąc opłat bez czynszu.
- Płynne są małe pule. Od 1 stycznia do 5 listopada 2026 rejestr RIPE pokazuje 1,010 pul /24 i 997 pul /23 lub /22, które zmieniły właściciela, wobec 48 pul /16 i większych. Przeszło mniej /24 niż w całym 2025 (1,419), a pule od /19 do /17 już przekroczyły wynik z 2025 (216 wobec 214). Jeden transfer może obejmować kilka pul; skrypt liczy każdą.
- Właściciele trzymają pule latami. Z 32,361 pul sprzedanych w całości na rynku RIPE 5,041 (15.6%) sprzedano później ponownie jako tę samą pulę, w medianie 3.6 roku po pierwszej sprzedaży, i żadnej w ciągu 24 miesięcy: blokada RIPE po transferze widać w danych. Planuj wyjście co najmniej dwa lata naprzód.
- Rejestr nie pokazuje większości dzierżaw. Tylko 81 z 2,605 pul przeniesionych w 2026 to tymczasowe transfery RIPE. Przy większości dzierżaw wydzierżawiający pozostaje zarejestrowanym posiadaczem, więc z rejestru nie da się policzyć, ile pul jest wydzierżawionych.
Ryzyka, których nie widać w zysku
| Ryzyko | Co robi z aktywem | Co sprawdzić |
|---|---|---|
| Cena | Korekta 2025 uderzyła najmocniej w duże pule | Kupuj po datowanej medianie, nie po cenie z cennika |
| IPv6 | Powoli obniża popyt na dzierżawę; dual stack trzyma IPv4 | Kim są twoi najemcy i po co im IPv4 |
| Opłaty rejestru | Jedna składka RIPE za LIR, niezależnie od zasobów | Twoja opłata na pulę od 2027 |
| Reputacja | Jeden zły najemca może wpisać pulę na czarne listy | Historię przed zakupem, zasady abuse w umowie |
| Wyjście | 24 miesiące blokady w RIPE, prowizja brokera przy sprzedaży | Rozmiar wyjścia i datę, od której możesz sprzedać |
Przed zakupem wykonaj sprawdzenia z naszego poradnika o czarnych listach IPv4: pula wpisana na listę pierwszego dnia nie zarabia, dopóki nie zostanie oczyszczona. Jeśli wolisz używać adresów sam, dzierżawa czy zakup IPv4 liczy to samo z perspektywy najemcy.
Wejście i wyjście z DCXV
Aktywo jest warte tyle, ile jego wyjście. Prowizję brokerską DCXV płaci sprzedający: EUR 2.00 za IP dla /24 lub /23, EUR 1.00 dla /22 do /19 i EUR 0.50 dla /18 do /14; kupujący płaci za escrow. Dla /24 powyżej to EUR 512, około $575 czyli 8.9% jej ceny z listopada 2026 (kurs EBC z 2026-11-05); dla /22 EUR 1,024, około 5.9%. Pośredniczymy w zakupie, dzierżawie i sprzedaży w regionach RIPE, ARIN i APNIC i możemy wydzierżawić twoją pulę klientom hostingowym i chmurowym. Wyślij rozmiar puli i rejestr do działu IPv4 lub na ipv4@dcxv.com.
