BitcoinDimensione in vByte per la tua fee rate, calcolata nel browser

Calcolatore di commissioni Bitcoin

Una commissione Bitcoin è la dimensione virtuale della transazione moltiplicata per la fee rate che paghi. Inserisci quanti input e output ha la transazione, scegli il tipo di indirizzo e imposta la rate in sat/vB. Il risultato si aggiorna mentre digiti.

Struttura della transazione
Gli input sono le monete che spendi, gli output sono le destinazioni, incluso il tuo indirizzo di resto.
Indirizzi che iniziano con bc1q… — applicato sia agli input sia agli output.
Dettaglio della dimensione
Overhead (versione, contatori, locktime)
10,5 vB
1 × 68 vB per input
68 vB
2 × 31 vB per output
62 vB
Commissione stimata
Dimensione × rate, arrotondata per eccesso a vByte interi.
SegWit (P2WPKH)
Dimensione stimata
141 vB
140,5 vB prima dell’arrotondamento
Commissione in satoshi
1410 sat
Commissione in BTC
0.00001410
Cosa determina il numero
Tre grandezze, e l'importo che invii non è una di queste.
vByte

La dimensione virtuale della transazione serializzata. I dati witness contano un quarto della loro lunghezza in byte, quindi un input SegWit è più piccolo in vByte che in byte grezzi.

sat/vB

Il prezzo che offri per vByte. I miner ordinano la mempool in base a questa rate, ed è per questo che è la rate, non il totale, a decidere quanto presto una transazione viene confermata.

Numero di UTXO

Ogni moneta che spendi aggiunge un input completo alla transazione. Un wallet con molti UTXO piccoli paga di più per lo stesso pagamento rispetto a uno con un unico UTXO grande.

Invia Bitcoin dal tuo codice

7 giorni di prova, senza carta di credito, senza KYC.

Inizia la prova gratuita

Come si calcola la commissione di una transazione Bitcoin

La commissione è il prodotto di due numeri: commissione = dimensione in vByte × fee rate in sat/vB. Questa è tutta la formula. Il resto di questa pagina spiega da dove viene la dimensione, perché il fee rate è qualcosa che scegli tu mentre la dimensione è qualcosa che la transazione ti impone.

Quello che non compare da nessuna parte nella formula è l'importo inviato. Una transazione che sposta 0,001 BTC e una che ne sposta 50 costano lo stesso se hanno la stessa forma. Bitcoin fa pagare lo spazio nel blocco, non il valore, ed è per questo che un circuito di pagamento costruito su di esso si comporta in modo del tutto diverso da uno basato su percentuale.

Un fee rate è un'offerta. I miner riempiono il blocco successivo con le transazioni a sat/vB più alto che hanno a disposizione, quindi il rate determina la tua posizione in coda e la dimensione determina quanto ti costa quella posizione. Alzare il rate su una transazione grande è costoso in termini assoluti; lo stesso rate su una piccola è economico. Entrambe si confermano nello stesso momento.

Perché i vByte e non i byte

Prima di SegWit, un blocco era limitato a 1 MB di dati di transazione serializzati e ogni byte contava allo stesso modo. SegWit ha sostituito quel limite con un tetto di 4 milioni di weight unit e ha assegnato pesi diversi alle due parti di una transazione: i dati di base (tutto tranne la witness) contano 4 weight unit per byte, i dati witness ne contano 1. La dimensione virtuale è il peso diviso per quattro, quindi vsize = (byte di base × 3 + byte totali) / 4.

L'effetto pratico: le firme si sono spostate nella witness, e le firme sono la parte più corposa di un input. Un input legacy P2PKH porta la firma e la chiave pubblica nello scriptSig, che è dato di base a peso pieno, e arriva a circa 148 vB. Un input P2WPKH porta lo stesso materiale nella witness a un quarto del peso e arriva a circa 68 vB. I byte sul filo sono cambiati poco. Quello che è cambiato è quanto spazio del blocco occupano.

Poiché lo sconto witness divide per quattro, le dimensioni virtuali sono spesso frazionarie. Il marker e il flag SegWit sono due byte witness, cioè mezzo vByte. Il calcolatore arrotonda il totale al vByte intero successivo, esattamente come fa un nodo quando riporta il vsize.

Dimensioni di input e output per tipo di indirizzo

Queste sono le stime a firma singola che usa il calcolatore. Gli input differiscono di quasi un fattore tre tra il tipo più vecchio e quello più recente; gli output variano molto meno, e gli output Taproot sono i più grandi dei tre.

Tipo Prefisso Input Output
Legacy (P2PKH) 1… ~148 vB 34 vB
SegWit (P2WPKH) bc1q… ~68 vB 31 vB
Taproot (P2TR) bc1p… ~57,5 vB 43 vB

Sopra a input e output si aggiunge un overhead fisso: versione, i contatori di input e output, e il locktime. Sono 10 vB per una transazione legacy e circa 10,5 vB una volta inclusi il marker e il flag SegWit. La cifra dell'input Taproot è 57,5 vB anziché un numero tondo perché una firma Schnorr è di 64 byte e cade su un mezzo vByte dopo la divisione per quattro.

Esempi pratici

Prendiamo la forma più comune nella pratica: un input, due output, dove il secondo output è il tuo stesso indirizzo di resto.

Tutto legacy, cioè 10 + 148 + 2 × 34 = 226 vB. A 10 sat/vB la commissione è 2.260 sat, cioè 0,00002260 BTC.

Tutto SegWit, 10,5 + 68 + 2 × 31 = 140,5 vB, arrotondato a 141. Allo stesso rate sono 1.410 sat, una riduzione di circa il 38 percento per lo stesso identico pagamento. Il risparmio arriva quasi interamente dall'input.

Tutto Taproot, 10,5 + 57,5 + 2 × 43 = 154 vB, quindi 1.540 sat. Con questa forma Taproot perde rispetto a SegWit, perché i suoi output costano 12 vB in più ciascuno mentre il suo input fa risparmiare solo 10,5 vB. Capovolgi la forma e la classifica si ribalta: due input e un output danno 169 vB per Taproot contro 178 vB per SegWit. Taproot conviene quando spendi molte monete, non quando ne crei molte.

Ora una consolidation. Venti input P2WPKH in un unico output sono 10,5 + 20 × 68 + 31 = 1.401,5 vB, arrotondati a 1.402. A 3 sat/vB costa 4.206 sat. Lo stesso wallet, facendo un pagamento ordinario da uno solo di quegli input, pagherebbe circa 423 sat. Dieci volte la dimensione a un decimo del rate è lo scambio che fa una consolidation, e ha senso solo finché la mempool è tranquilla.

Uno schema attraversa tutti e quattro i casi: il numero di input è il termine dominante. Un wallet che ha ricevuto cento piccoli pagamenti detiene cento UTXO, e spenderli costa cento input indipendentemente da quanto vale ciascuno. Sotto una certa soglia di fee rate, uno UTXO costa più a spenderlo di quanto contenga.

Cosa non copre la stima

Le dimensioni sopra presuppongono spese a firma singola e un tipo di indirizzo uniforme su tutti gli input e output. Tre cose muovono il numero reale:

La lunghezza della firma varia. Una firma ECDSA con codifica DER è di solito 71 o 72 byte, occasionalmente 70, quindi ogni input legacy o P2WPKH può differire di un byte dalla stima. Le firme Schnorr sono fisse a 64 byte, ed è per questo che le spese Taproot sono le uniche la cui dimensione è esattamente prevedibile in anticipo.

I tipi misti sono normali. I wallet spesso spendono un input legacy e inviano a un indirizzo bech32 con resto bech32. Calcola ogni parte con la riga corrispondente della tabella e aggiungi l'overhead una sola volta; il calcolatore applica un unico tipo a tutto, che è il modello corretto per una transazione a wallet singolo e un'approssimazione per qualsiasi altro caso.

Multisig e script spend sono una categoria completamente diversa. Un input 2-di-3 P2WSH è più volte grande quanto uno a firma singola, e uno script-path spend Taproot porta lo script e il control block nella witness. Nessuno dei due è coperto qui.

Leggere e pagare le commissioni da codice

Una stima della commissione è utile solo accanto a un rate attuale, e il rate viene dalla mempool, non da una formula. Gli endpoint Bitcoin di Chaingateway ti tolgono il problema del rate: POST /api/v2/bitcoin/transactions accetta uno speed pari a fast, medium o slow e seleziona la commissione di conseguenza, più un flag subtractfee che sottrae la commissione dall'importo inviato invece di aggiungerla sopra. Quel flag conta più di quanto sembri: è la differenza tra un destinatario che riceve esattamente quanto indicato dalla tua fattura e uno che riceve leggermente meno.

L'elenco completo degli endpoint, inclusi blocchi, wallet e webhook di transazione, è nella pagina API Bitcoin. Altri calcolatori e strumenti di riferimento sono raccolti in Strumenti.

Domande frequenti

Come si calcola una commissione di transazione Bitcoin?

Dimensione in vByte moltiplicata per la fee rate in satoshi per vByte. Una transazione di 141 vB a 10 sat/vB paga 1.410 sat. L'importo che stai inviando non entra mai nel calcolo.

Cos'è un vByte?

Un byte virtuale, l'unità in cui si misurano i blocchi da quando esiste SegWit. Il peso di una transazione conta i dati base a 4 unità per byte e i dati witness a 1, e il vsize è quel peso diviso per quattro. I byte witness costano quindi un quarto rispetto ai byte base.

Quanto è grande una tipica transazione Bitcoin?

Per un input e due output: circa 226 vB tutta-legacy, 141 vB tutta-SegWit, 154 vB tutta-Taproot. Ogni input aggiuntivo aggiunge 148, 68 o 57,5 vB a seconda del tipo, ed è per questo che il numero di input incide sulla commissione più di ogni altro fattore.

L'importo che invio cambia la commissione?

No. Bitcoin fa pagare lo spazio nel blocco. Inviare 0,001 BTC o 50 BTC costa lo stesso se entrambe le transazioni hanno lo stesso numero di input e output e gli stessi tipi di indirizzo.

Perché più input rendono una transazione più costosa?

Ogni moneta che spendi è un input separato che porta la propria firma, e una firma costituisce la maggior parte della dimensione di un input. Dieci piccoli UTXO costano dieci input da spendere. Questo è il motivo per cui i wallet consolidano nei periodi di calma, quando la rate sat/vB è abbastanza bassa da rendere economica una grande transazione una tantum.

Cosa significa sat/vB?

Satoshi per byte virtuale, il prezzo che offri per lo spazio nel blocco. Un satoshi è 0,00000001 BTC, quindi 100.000.000 sat fanno un BTC. I miner ordinano la mempool in base a questa rate, ed è per questo che è la rate, e non la commissione totale, a decidere quanto rapidamente una transazione viene confermata.

Taproot è più economico di SegWit?

Solo quando la transazione ha molti input. Un input P2TR è di circa 57,5 vB contro 68 vB per P2WPKH, ma un output P2TR è di 43 vB contro 31 vB. Un input e due output arrivano a 154 vB con Taproot e 141 vB con SegWit; due input e un output invertono la situazione, 169 vB contro 178 vB.

Perché il mio wallet mostra una commissione leggermente diversa?

Tre cause abituali. Le firme ECDSA variano tra 70 e 72 byte, quindi ogni input legacy o P2WPKH può discostarsi di un byte dalla stima. I wallet spesso mescolano tipi di indirizzo tra gli input, l'output di pagamento e l'output di resto. E un wallet sceglie la propria fee rate dalla propria vista della mempool, mentre questo calcolatore usa la rate che digiti tu.