O IPv4 ainda é um investimento em 2026? Rendimento líquido

O IPv4 ainda é um investimento em 2026? Rendimento líquido

O IPv4 ainda é um investimento em 2026? Rendimento líquido

Resposta curta (verificado em 2026-11-06): sim, como ativo de rendimento, não como aposta no preço. Um /24 comprado à mediana de 90 dias da ip4.market, $25.25 por IP (índice atualizado em 2026-11-02), custa cerca de $6,464. Arrendado à média da IPv4Center, $0.53 por IP por mês, rende cerca de $1,628 por ano: 25.2% brutos. O resto decide o registo. Num LIR que já paga, este é também o rendimento líquido; na ARIN ficam 20.7% depois da taxa de 2027; num LIR novo no RIPE aberto só para este bloco, a quota de EUR 1,894 transforma-o numa perda de 7.7% ao ano. Um /22 rende o suficiente para sustentar o seu próprio LIR. Todos os valores são observações datadas; para uma cotação veja preços de IPv4.

O que mudou desde a queda de 2025

O prémio especulativo desapareceu. As nossas notas de mercado de julho de 2026 punham um /24 em cerca de $30 por IP e o arrendamento perto de $0.40 por mês: 16% brutos. Até novembro de 2026 o preço de compra caiu mais do que a renda, por isso a mesma conta dá 25.2%. Os blocos grandes continuam os mais baratos por endereço: o índice da ip4.market mostra medianas de 90 dias de $19.00 para um /22, $15.97 para um /20 e $12.62 para um /16 (apenas duas vendas). Quem compra em 2026 paga por rendimento, não por um preço que só sobe.

Os custos fixos foram no sentido contrário. A partir de 2027 o RIPE NCC cobra EUR 1,894 por conta LIR segundo o RIPE-867, sem taxa por IP nem por transferência, e EUR 1,000 de adesão (veja o que muda no esquema de quotas de 2027). Desde 29 de setembro de 2026 o RIPE NCC também impede, temporariamente, que membros existentes abram contas LIR adicionais (página de pagamentos do RIPE, lida em 2026-11-06), por isso um membro não pode estacionar um bloco num LIR novo. A tabela da ARIN para 2027, aprovada a 19 de abril de 2026, cobra $288.75 por ano por um /24 (3X-Small) e $577.50 até um /22 (2X-Small), mais uma taxa única de $187.50 ao recetor pela transferência de um /24.

Meça você mesmo: ipv4_asset.js

O script lê o registo público de transferências IPv4 do RIPE NCC para ver a liquidez de cada tamanho de bloco e quanto tempo os blocos ficam com o mesmo titular. Depois calcula o rendimento líquido anual de um /24 e de um /22 conforme o registo, com a taxa de câmbio do BCE. Os preços são constantes datadas no topo: altere-as quando tiver uma cotação. Guarde-o como 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

Saída, executado num servidor cloud da DCXV com Bun 1.4.4 em 2026-11-06 (registo do RIPE até 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

O que os números dizem

  1. A quota do registo decide nos blocos pequenos. Um /24 rende $1,628 por ano a preços de tabela. Um LIR novo no RIPE custa $2,126, por isso o bloco perde dinheiro mesmo totalmente arrendado. O mesmo /24 na ARIN mantém 20.7%, e num LIR que já tem, os 25.2% inteiros. Um /22 sustenta sozinho um LIR no RIPE: 25.7% líquidos totalmente arrendado.
  2. A ocupação é o verdadeiro risco. Com 70% arrendado, o /24 num LIR existente cai de 25.2% para 17.6%, e o /22 num LIR novo de 25.7% para 14.7%. Um mês entre inquilinos é um mês de taxas sem renda.
  3. Os blocos pequenos são os líquidos. De 1 de janeiro a 5 de novembro de 2026 o registo do RIPE mostra 1,010 blocos /24 e 997 blocos /23 ou /22 que mudaram de mãos, contra 48 blocos de /16 ou maiores. Mudaram de mãos menos /24 do que em todo o ano de 2025 (1,419), enquanto os blocos de /19 a /17 já ultrapassaram o número de 2025 (216 contra 214). Uma transferência pode levar vários blocos; o script conta cada um.
  4. Os titulares ficam com os blocos durante anos. De 32,361 blocos vendidos inteiros no mercado do RIPE, 5,041 (15.6%) foram depois revendidos como o mesmo bloco, com uma mediana de 3.6 anos após a primeira venda, e nenhum antes de 24 meses: o bloqueio do RIPE após uma transferência vê-se nos dados. Planeie a saída com pelo menos dois anos de antecedência.
  5. O registo não mostra a maioria dos arrendamentos. Só 81 dos 2,605 blocos transferidos em 2026 foram transferências temporárias do RIPE. Na maioria dos arrendamentos o senhorio continua como titular registado, por isso o registo não permite contar quantos blocos estão arrendados.

Os riscos que o rendimento não mostra

Risco O que faz ao ativo O que verificar
Preço A correção de 2025 atingiu mais os blocos grandes Comprar a uma mediana datada, não a preço de tabela
IPv6 Reduz devagar a procura de arrendamento; o dual stack mantém o IPv4 Quem são os seus inquilinos e porque precisam de IPv4
Quotas do registo Uma quota do RIPE por LIR, seja qual for o conteúdo A sua quota por bloco a partir de 2027
Reputação Um mau inquilino pode pôr o bloco em listas negras Histórico antes de comprar, cláusulas de abuso no contrato
Saída 24 meses de bloqueio no RIPE, comissão de broker na venda O tamanho de saída e a data em que pode vender

Antes de comprar, faça as verificações do nosso guia de listas negras IPv4: um bloco listado no primeiro dia não rende nada até estar limpo. Se preferir usar os endereços, arrendar ou comprar IPv4 faz a mesma conta do lado do inquilino.

Entrada e saída com a DCXV

Um ativo vale o que vale a sua saída. A comissão de broker da DCXV é paga pelo vendedor: EUR 2.00 por IP para um /24 ou /23, EUR 1.00 de /22 a /19 e EUR 0.50 de /18 a /14; o comprador paga o escrow. Para o /24 acima são EUR 512, cerca de $575 ou 8.9% do seu preço de novembro de 2026 (taxa do BCE de 2026-11-05); para o /22, EUR 1,024, cerca de 5.9%. Intermediamos compras, arrendamentos e vendas nas regiões do RIPE, da ARIN e da APNIC e podemos arrendar um bloco seu a clientes de hosting e cloud. Envie o tamanho do bloco e o registo para o IPv4 desk ou para ipv4@dcxv.com.

O IPv4 ainda é um investimento em 2026? Rendimento líquido
ipv4pricingripe-ncc

O IPv4 ainda é um investimento em 2026? Rendimento líquido

Um /24 rende 25% brutos ao ano aos preços de novembro de 2026, mas a taxa de um LIR novo no RIPE torna-o prejuízo. Rendimento líquido, liquidez e saída.

AWS BYOIP em 2026: $43.80 por IPv4 ou o seu próprio /24
ipv4pricingcloud

AWS BYOIP em 2026: $43.80 por IPv4 ou o seu próprio /24

A AWS cobra $0.005 por hora por IPv4 público, $43.80 por ano. O BYOIP não paga isso: quando um /24 comprado ou alugado compensa, com um script de ROA.

Suporte e faturação AWS: guia verificado para equipas da UE
cloudpricingcompare

Suporte e faturação AWS: guia verificado para equipas da UE

Planos de suporte AWS e preços, atrasos na faturação, egress de Frankfurt, um script de verificação de custos e quando um fornecedor UE de preço fixo compensa.

Altman quer a sua DRAM no data center: RAM de servidor 2026
cloudaipricinginfrastructure

Altman quer a sua DRAM no data center: RAM de servidor 2026

Sam Altman diz que a memória dos PC fica ociosa e deve ir para o data center. O que a escassez de DRAM de 2026 muda para servidores e um script para a medir.

IPv4 para empresas ucranianas: LIR RIPE, PI ou aluguer
ipv4ripe-ncctransferbroker

IPv4 para empresas ucranianas: LIR RIPE, PI ou aluguer

Três vias para IPv4 RIPE numa empresa ucraniana: LIR próprio, PI ou aluguer. Taxas 2026-2027, dados do registo e o que muda para um requerente ucraniano.