Calculadora de comisiones de transacciones Bitcoin
Una comisión de Bitcoin es el tamaño virtual de la transacción multiplicado por la tasa de comisión que paga por ella. Indique cuántos inputs y outputs tiene la transacción, elija el tipo de dirección y fije la tasa en sat/vB. El resultado se actualiza mientras escribe.
- Overhead (versión, contadores, locktime)
- 10,5 vB
- 1 × 68 vB por input
- 68 vB
- 2 × 31 vB por output
- 62 vB
El tamaño virtual de la transacción serializada. Los datos de witness cuentan como una cuarta parte de su longitud en bytes, así que un input SegWit es más pequeño en vBytes que en bytes brutos.
El precio que puja por vByte. Los mineros ordenan la mempool según esta tasa, por eso es la tasa, y no el total, la que decide cuándo se confirma una transacción.
Cada moneda que gasta añade un input completo a la transacción. Una wallet con muchos UTXO pequeños paga más por el mismo pago que una con un único UTXO grande.
Envíe Bitcoin desde su propio código
7 días de prueba, sin tarjeta de crédito, sin KYC.
Cómo se calcula la comisión de una transacción de Bitcoin
La comisión es el producto de dos números: comisión = tamaño en vBytes × tarifa en sat/vB. Esa es la fórmula completa. Todo lo demás en esta página trata de dónde sale el tamaño, porque la tarifa es algo que usted elige y el tamaño es algo que la transacción le impone.
Lo que no aparece en ningún sitio de la fórmula es el importe enviado. Una transacción que mueve 0,001 BTC y otra que mueve 50 BTC cuestan lo mismo si tienen la misma forma. Bitcoin cobra por espacio de bloque, no por valor, por eso un sistema de pagos construido sobre él no se comporta como uno basado en porcentajes.
Una tarifa es una puja. Los mineros llenan el siguiente bloque con las transacciones de mayor sat/vB que tienen, así que la tarifa decide su posición en la cola y el tamaño decide cuánto le cuesta esa posición. Subir la tarifa en una transacción grande es caro en términos absolutos; la misma tarifa en una pequeña es barata. Ambas se confirman al mismo tiempo.
Por qué vBytes y no bytes
Antes de SegWit, un bloque tenía un límite de 1 MB de datos de transacción serializados y cada byte contaba lo mismo. SegWit sustituyó ese límite por uno de 4 millones de unidades de peso y dio a las dos partes de una transacción pesos distintos: los datos base (todo excepto el witness) cuentan 4 unidades de peso por byte, los datos del witness cuentan 1. El tamaño virtual es el peso dividido entre cuatro, así que vsize = (bytes base × 3 + bytes totales) / 4.
El efecto práctico: las firmas se trasladaron al witness, y las firmas son la mayor parte de un input. Un input P2PKH heredado lleva su firma y clave pública en el scriptSig, que son datos base a peso completo, y ronda los 148 vB. Un input P2WPKH lleva el mismo material en el witness a un cuarto de peso y ronda los 68 vB. Los bytes en la red apenas cambiaron. Lo que cambió es cuánto del bloque consumen.
Como el descuento del witness divide entre cuatro, los tamaños virtuales suelen ser fraccionarios. El marcador y el flag de SegWit son dos bytes de witness, es decir, medio vByte. La calculadora redondea el total al siguiente vByte entero, que es lo que hace un nodo al informar el vsize.
Tamaños de input y output por tipo de dirección
Estas son las estimaciones de firma única que usa la calculadora. Los inputs difieren por un factor de casi tres entre el tipo más antiguo y el más nuevo; los outputs se mueven mucho menos, y los outputs Taproot son los más grandes de los tres.
| Tipo | Prefijo | Input | Output |
|---|---|---|---|
| Legacy (P2PKH) | 1… |
~148 vB | 34 vB |
| SegWit (P2WPKH) | bc1q… |
~68 vB | 31 vB |
| Taproot (P2TR) | bc1p… |
~57,5 vB | 43 vB |
Encima de los inputs y outputs hay una sobrecarga fija: versión, los contadores de inputs y outputs, y el locktime. Son 10 vB para una transacción legacy y unos 10,5 vB una vez incluidos el marcador y el flag de SegWit. La cifra del input Taproot es 57,5 vB en lugar de un número redondo porque una firma Schnorr son 64 bytes y cae en medio vByte tras la división entre cuatro.
Ejemplos resueltos
Tome la forma más habitual en la práctica: un input, dos outputs, donde el segundo output es su propia dirección de cambio.
Todo legacy: 10 + 148 + 2 × 34 = 226 vB. A 10 sat/vB la comisión es de 2.260 sat, o 0,00002260 BTC.
Todo SegWit: 10,5 + 68 + 2 × 31 = 140,5 vB, redondeado a 141. A la misma tarifa son 1.410 sat, una reducción de alrededor del 38 por ciento para el mismo pago. El ahorro viene casi por completo del input.
Todo Taproot: 10,5 + 57,5 + 2 × 43 = 154 vB, así que 1.540 sat. Taproot pierde frente a SegWit en esta forma, porque sus outputs cuestan 12 vB más cada uno mientras que su input solo ahorra 10,5 vB. Invierta la forma y el orden se invierte con ella: dos inputs y un output dan 169 vB para Taproot frente a 178 vB para SegWit. Taproot compensa cuando gasta muchas monedas, no cuando crea muchas.
Ahora una consolidación. Veinte inputs P2WPKH en un único output son 10,5 + 20 × 68 + 31 = 1.401,5 vB, redondeado a 1.402. A 3 sat/vB eso cuesta 4.206 sat. La misma wallet, haciendo un pago normal desde uno de esos inputs, pagaría unos 423 sat. Diez veces el tamaño a una décima parte de la tarifa es el intercambio que hace una consolidación, y solo tiene sentido mientras la mempool está tranquila.
Un patrón se repite en los cuatro casos: el número de inputs es el término dominante. Una wallet que ha recibido cien pagos pequeños tiene cien UTXO, y gastarlos cuesta cien inputs sin importar lo poco que valga cada uno. Por debajo de cierta tarifa, un UTXO cuesta más gastarlo de lo que contiene.
Lo que la estimación no cubre
Los tamaños de arriba asumen gastos de firma única y un tipo de dirección uniforme en todos los inputs y outputs. Tres cosas mueven la cifra real:
La longitud de la firma varía. Una firma ECDSA codificada en DER suele ser de 71 o 72 bytes, en ocasiones 70, así que cada input legacy o P2WPKH puede diferir de la estimación en un byte. Las firmas Schnorr son siempre 64 bytes, por lo que los gastos Taproot son los únicos cuyo tamaño se puede predecir con exactitud de antemano.
Mezclar tipos es normal. Las wallets a menudo gastan un input legacy y envían a una dirección bech32 con cambio bech32. Calcule cada parte con su propia fila de la tabla y sume la sobrecarga una vez; la calculadora aplica un solo tipo a todo, lo cual es el modelo correcto para una transacción de una sola wallet y una aproximación para cualquier otra cosa.
Los gastos multisig y de script son una categoría completamente distinta. Un input P2WSH 2-de-3 es varias veces el tamaño de uno de firma única, y un gasto Taproot por ruta de script lleva el script y el control block en el witness. Ninguno de los dos se cubre aquí.
Leer y pagar comisiones desde código
Una estimación de comisión solo es útil junto a una tarifa actual, y la tarifa viene de la mempool, no de una fórmula. Los endpoints de Bitcoin de Chaingateway le quitan de encima ese trabajo: POST /api/v2/bitcoin/transactions acepta un speed de fast, medium o slow y selecciona la comisión en consecuencia, además de un flag subtractfee que resta la comisión del importe enviado en lugar de añadirla encima. Ese flag importa más de lo que parece: es la diferencia entre que el destinatario reciba exactamente lo que decía su factura o reciba algo menos.
La lista completa de endpoints, incluyendo bloques, wallets y webhooks de transacciones, está en la página de la API de Bitcoin. Otras calculadoras y herramientas de referencia están reunidas en Herramientas.
Preguntas frecuentes
¿Cómo se calcula la comisión de una transacción de Bitcoin?
Tamaño en vBytes multiplicado por la tasa de comisión en satoshis por vByte. Una transacción de 141 vB a 10 sat/vB paga 1410 sat. El importe que envía nunca entra en el cálculo.
¿Qué es un vByte?
Un byte virtual, la unidad en la que se miden los bloques desde SegWit. El peso de una transacción cuenta los datos base a 4 unidades por byte y los datos de witness a 1, y el vsize es ese peso dividido entre cuatro. Los bytes de witness cuestan por tanto una cuarta parte de lo que cuestan los bytes base.
¿Qué tamaño tiene una transacción típica de Bitcoin?
Con un input y dos outputs: unos 226 vB toda en legacy, 141 vB toda en SegWit, 154 vB toda en Taproot. Cada input adicional añade 148, 68 o 57,5 vB según el tipo, por lo que el número de inputs determina la comisión más que ningún otro factor.
¿El importe que envío cambia la comisión?
No. Bitcoin cobra por el espacio en el bloque. Enviar 0,001 BTC o 50 BTC cuesta lo mismo si ambas transacciones tienen el mismo número de inputs y outputs y los mismos tipos de dirección.
¿Por qué más inputs hacen una transacción más cara?
Cada moneda que gasta es un input independiente que lleva su propia firma, y una firma es la mayor parte del tamaño de un input. Diez UTXO pequeños cuestan diez inputs de gastar. Por eso las wallets consolidan en los periodos de calma, cuando la tasa sat/vB es lo bastante baja para que una gran transacción puntual salga barata.
¿Qué significa sat/vB?
Satoshis por byte virtual, el precio que puja por espacio en el bloque. Un satoshi es 0,00000001 BTC, así que 100000000 sat forman un BTC. Los mineros ordenan la mempool por esta tasa, por eso es la tasa, y no la comisión total, la que decide con qué rapidez se confirma una transacción.
¿Es Taproot más barato que SegWit?
Solo cuando la transacción tiene muchos inputs. Un input P2TR pesa unos 57,5 vB frente a 68 vB de P2WPKH, pero un output P2TR pesa 43 vB frente a 31 vB. Un input y dos outputs suman 154 vB con Taproot y 141 vB con SegWit; dos inputs y un output invierten la relación, 169 vB frente a 178 vB.
¿Por qué mi wallet muestra una comisión ligeramente distinta?
Tres causas habituales. Las firmas ECDSA varían entre 70 y 72 bytes, así que cada input legacy o P2WPKH puede diferir de la estimación en un byte. Las wallets a menudo mezclan tipos de dirección entre los inputs, el output de pago y el output de cambio. Y una wallet elige su propia tasa de comisión a partir de su propia vista de la mempool, mientras que esta calculadora usa la tasa que usted introduce.