Concepto y filosofía
Bitcoin Tools se basa en tres principios: autocustodia, local-first y transparencia de las fuentes.
1. Auto-custodia no negociable
Ninguna clave privada, frase semilla o contraseña de la cartera pasa por Bitcoin Tools. Bitcoin Tools construye una PSBT sin firmar; el botón «Firmar» solo entrega esa PSBT a tu cartera (Xverse), que te pide una aprobación explícita. Una vez que apruebas, Bitcoin Tools recibe la transacción finalizada y tu navegador la difunde directamente a mempool.space (Blockstream.info como respaldo). La garantía es por tanto precisa: Bitcoin Tools no puede crear una transacción gastable sin la aprobación de firma de tu cartera, pero una vez firmada, la difusión puede realizarse automáticamente.
2. Primero local: tu IndexedDB es la fuente de la verdad
Los escaneos de cartera, los enriquecimientos de UTXO, las selecciones y las preferencias se guardan en tu navegador en varios almacenes locales especializados, en su mayoría bases de datos IndexedDB. Esto permite:
- navegación instantánea entre herramientas sin volver a cargar,
- análisis offline (PSBT Inspector),
- persistencia local de tus resultados: se almacenan en tu dispositivo y no se suben en bloque.
La persistencia local no equivale a un aislamiento total. Para obtener UTXO, enriquecimientos o estados de transacción —y para el análisis con IA opcional— se transmiten direcciones de Bitcoin, outpoints, identificadores de transacción y datos de transacción decodificados a los proveedores de datos y proxies necesarios. Ese tráfico es procesamiento de red temporal; lo que se almacena de forma duradera permanece en tu dispositivo.
Principales almacenes locales (lista no exhaustiva)
| Caché | Contenido | TTL |
|---|---|---|
scanCache | Resultado completo del escaneo de billetera (UTXOs ordinales + de pago + grupos de sats raros) | 7 días |
ordinalsEnrichmentCache | Enriquecimiento de Ordiscan por txid:vout (rangos de sats, inscripciones, runes, satributos) | ~permanente |
addressUtxosCache | UTXOs brutos de mempool.space por dirección + huella digital de red | invalidado al cambiar la huella digital |
psbtCache | Enriquecimiento de PSBT indexado por hash SHA-256 de la carga útil | ~permanente |
addressEnrichmentCache | Enriquecimiento de Ordiscan a nivel de dirección (inscripciones, saldos BRC-20) | 120 s (anti-ráfaga) |
paymentRiskScans | Resultado del escaneo de riesgo para la dirección de pago | 7 días |
Esta tabla enumera los almacenes principales; deliberadamente no es un inventario exhaustivo de cada caché interna. Ten en cuenta que el historial detallado de transacciones que muestra Bitcoin Tools no se guarda en IndexedDB: reside en localStorage, indexado por red y dirección.
3. Qué toca el servidor (y qué no)
Qué permanece local
- Tus claves privadas y semilla (siempre dentro de Xverse).
- Todos los escaneos de billetera, enriquecimientos y selecciones de UTXO.
- PSBTs en construcción.
- El historial funcional completo de transacciones que muestra Bitcoin Tools (pendientes y confirmadas), almacenado en el localStorage de tu navegador e indexado por red y dirección.
Leer y actualizar estos elementos sigue requiriendo llamadas de red: las direcciones, los outpoints y los identificadores de transacción se envían a los proveedores de datos descritos a continuación para obtener UTXO, enriquecimientos y estados de confirmación.
Qué pasa por el servidor
- Llamadas a Ordiscan: tu clave personal (BYOK) se cifra en el servidor con AES-256-GCM; solo se descifra en memoria durante la llamada y nunca se devuelve al cliente.
- Proxy de mempool.space: retransmisión sin clave usada para el tráfico de lectura/consulta (tarifas, precios, punta de cadena, consultas de direcciones y UTXO) con una caché ligera en el servidor. La difusión de una transacción firmada no usa este proxy: tu navegador envía la transacción finalizada directamente a mempool.space, con Blockstream.info como respaldo.
- Analítica sin datos personales: al iniciar sesión se registran tu
userIdde Supabase, país/región (cabeceras de Cloudflare) y un hash SHA-256 de tu IP. La IP en bruto nunca se almacena. - Telemetría operativa de uso: al difundir una transacción, la implementación de analítica de la aplicación puede registrar en el servidor un rastro de la operación (identificadores y cifras resumidas como el txid, la herramienta utilizada, la comisión y el número de entradas). Esto es telemetría, no el historial detallado que ves en la interfaz, que sigue siendo local.
- Auditoría de IA opcional en el inspector de PSBT (botón explícito): envía el JSON descodificado a una función de Supabase, nunca tu clave ni información personal.
4. Modo demo
El modo demo carga una instantánea de cartera (UTXOs, runes, inscripciones, BRC-20) capturada previamente por un administrador. Todas las herramientas se comportan como si estuvieras conectado, con una excepción:
El BRC-20 en vivo y la consulta de transacciones pendientes también están deshabilitados en la demostración para evitar consumir tu clave de Ordiscan.
5. BYOK: Trae tu propia clave (Ordiscan)
Ordiscan es nuestra fuente principal para rangos de satoshis, inscripciones, saldos BRC-20 y metadatos de runas. Una clave gratuita te da 1,000 solicitudes al mes, suficiente para un uso personal normal.
Puedes guardar hasta 5 claves. Cuando una alcanza su cuota, se usa la siguiente automáticamente. Consulta los requisitos previos para el procedimiento.
6. Roles de monedero y distintivos ORD / PAY / CHANGE
En el Historial, los detalles de transacción y las vistas previas de cada herramienta, las entradas y salidas llevan un pequeño distintivo que describe la familia de dirección del script, deducida decodificando el script para la red activa, no comparando cadenas con tus direcciones conectadas.
- ORD (naranja) — script Taproot (P2TR), la familia que usa el monedero de Ordinals.
- PAY (azul) — familia de pago validada: SegWit nativo, o una forma de SegWit anidado validada y soportada.
- CHANGE (azul) — la salida que devuelve el resto de la transacción a tu monedero de pago. Sustituye al distintivo PAY en esa salida; las entradas nunca se etiquetan como CHANGE.
