Picaro 1829e1b273 Reorientar la guía a quien monta el aparato solo
Estaba escrita como apoyo de un taller y ahora la lee gente sin nadie al lado.

- Fuera las 11 referencias al taller y al guion del facilitador. Los consejos
  que solo tenían sentido con quince aparatos (SettingsQR, regtest, proyectar
  el simulador) reescritos para quien monta uno.
- Sección nueva "Cómo se reparte esto en el tiempo": esto no se hace en una
  tarde, y la espera del paquete es cuando conviene verificar el software y
  aprenderse el menú en el simulador. Con dos reglas: no generar la seed el
  mismo día del montaje, y verificar el software antes de tener el aparato.
- Cuatro puntos de control (montado / software verificado / el aparato
  funciona / el aparato calcula bien) con qué comprobar y qué hacer si falla.
  Quien monta solo no tiene quien le confirme que va por buen camino.
- Marcados los huecos de las fotos que faltan, con img/QUE-FOTOGRAFIAR.md
  explicando cuáles y por qué. La del cable de la cámara vale por todas.
2026-08-08 13:19:07 +02:00
2026-08-08 13:05:04 +02:00

SeedSigner — guía completa

Montar, verificar y usar un firmante de Bitcoin air-gapped —sin cable, WiFi ni Bluetooth— por menos de 50 €.


Qué es esto y qué no

SeedSigner es un firmante (signing device), no una wallet. No guarda tu seed: la mantiene en memoria mientras está enchufado y la olvida por completo al desconectarlo. Esa propiedad —ser stateless— es su rasgo definitorio y la razón de casi todo lo que hace raro.

Tres cosas que conviene tener claras antes de montar una:

  1. Tu backup en papel o metal ES el dispositivo. No hay copia en el aparato. Si pierdes el papel, no hay nada que recuperar de la SeedSigner. Esto asusta al principio y luego resulta liberador: el hardware es desechable y reemplazable por 40 €.
  2. No tiene WiFi ni Bluetooth (en la Pi Zero 1.3, que es la recomendada). Es lo que se llama air-gapped: sin ninguna conexión posible con otro ordenador. Solo puede recibir datos leyendo códigos QR con la cámara, y solo enviar mostrando QR en su pantalla. Aunque el software quisiera filtrar tu seed, no tendría por dónde.
  3. La montas tú. Eso es una ventaja de seguridad (no hay cadena de suministro que comprometer, no hay paquete que interceptar) y un coste de tiempo real.

Esta guía cubre el aparato, no el método. El porqué —por qué generar tu propia entropía, cómo verificarla, cómo diseñar una passphrase, cómo comprobar el backup— está en la guía de autocustodia verificable, es libre igual que esta, y aquí no se repite. Los pasos de este documento dan por supuesto ese porqué: si no lo tienes, empieza por ahí.

Cuatro palabras que van a salir mucho. El firmware es el programa que corre dentro del aparato: no es una app que instalas encima, es su software propio y se actualiza aparte. Air-gapped significa sin ninguna conexión posible con otro ordenador — ni cable, ni WiFi, ni Bluetooth. El xpub (o zpub, el mismo dato escrito de otra forma) es tu clave pública extendida: sirve para generar tus direcciones y ver tu saldo, pero no para gastar. Y GPG es la herramienta con la que compruebas que un fichero descargado lo firmó quien dice y nadie lo ha manipulado por el camino.

El fingerprint (o XFP) aparece a partir de la sección 9: son ocho caracteres que identifican tu wallet sin revelar nada de ella, y con los que compruebas que estás donde crees que estás.

Estado de la información: agosto de 2026, versión 0.8.7 ("The Summer of SeedSigner", 8 de julio de 2026). Contrasta siempre con el repositorio oficial antes de seguir cualquier paso técnico. Si algo aquí lo contradice, gana el repositorio.

⚠️ El README del repositorio va por detrás de las releases. Cuando escribimos esto, el texto del README seguía documentando la 0.8.6 mientras la 0.8.7 llevaba semanas publicada. Mira siempre la página de releases, no el README, y usa el número que ponga ahí. Es un caso pequeño del mismo principio de toda esta guía: la documentación envejece, la fuente primaria manda.


Cómo se reparte esto en el tiempo

Esto no se hace en una tarde, y saberlo de antemano evita el chasco de sentarte un sábado con las piezas sin pedir. Son cuatro momentos, y la espera del paquete es tu aliada: hay trabajo útil que hacer mientras tanto.

Cuándo Qué haces Rato
Día 1 Decidir el modelo, pedir las piezas (Sección 1) 30 min
Mientras esperas Descargar y verificar el software (Sección 4), grabar la MicroSD (5), y trastear el simulador para llegar con el menú aprendido 1 h, sin prisa
El día que llega Montar (3), arrancar y hacer el test de I/O (6), pasar el vector de prueba (9.1) 1 h
Cuando tengas la tarde Generar la seed real (9.2), passphrase (Sección 5 de la guía del método), wallet en Sparrow (11), backup y su verificación 2-3 h sin prisa
Unos días después Volver a verificar el backup en frío, y ensayar el ciclo de firma en red de pruebas 1 h

Dos cosas de ese reparto no son negociables:

No generes la seed real el mismo día que montas el aparato. El día del montaje estás resolviendo problemas —un cable, un arranque, una tarjeta— y ese no es el estado mental para un proceso donde un error de copia es irreversible. Monta, verifica que funciona, y deja la seed para un día que empieces tranquilo.

Verifica el software mientras esperas el paquete, no después. Es el paso que más gente se salta por prisa, y hacerlo cuando no tienes el aparato delante quita justamente esa prisa.


Índice

  1. Materiales
  2. La decisión que hay que tomar antes de comprar: soldar o no
  3. Montaje
  4. Descargar y verificar el software
  5. Grabar la MicroSD
  6. Primer arranque y test de entrada/salida
  7. Recorrido por la interfaz
  8. Configuración recomendada
  9. Generar tu seed con dados
  10. SeedQR: cargar la seed en segundos
  11. Crear la wallet en Sparrow y firmar una transacción
  12. Pruébalo antes de comprar: el simulador
  13. Resolución de problemas
  14. Limitaciones y qué NO hace
  15. Fuentes

1. Materiales

Pieza Especificación exacta Precio orientativo Trampa
Raspberry Pi Zero v1.3, sin WiFi/Bluetooth 10-20 € Ver abajo ⚠️
Pantalla Waveshare 1.3" LCD HAT, 240×240 px 15-20 € ⚠️ La trampa principal
Cámara Compatible Pi Zero, sensor OV5647 (Aokin / AuviPal 5MP 1080p) 8-12 € El cable es específico del Zero
MicroSD Cualquiera, ≥ 4 GB 5 € La imagen ocupa < 42 MB
Alimentación Cargador USB de red o batería externa ⚠️ Ver abajo
Carcasa Open Pill o Orange Pill (impresión 3D) 0-15 € Opcional para empezar

Total: 40-60 €.

⚠️ Las tres trampas de la compra

1. La pantalla. Waveshare fabrica varias placas de 1,3 pulgadas que se parecen muchísimo y no son compatibles. La que necesitas es la de 240×240 píxeles. Si compras la de otra resolución, no funciona y no hay forma de arreglarlo por software. Comprueba la resolución en la descripción antes de pagar, no el aspecto de la foto.

2. El modelo de Pi. La recomendada es la Pi Zero 1.3, precisamente porque no lleva WiFi ni Bluetooth: la propiedad air-gapped es física, no una opción que puedas desactivar por descuido.

Las "W" y "2W" son más fáciles de encontrar y funcionan, pero llevan radio. Si acabas con una:

  • Sigue siendo utilizable — el software de SeedSigner no usa la radio.
  • Puedes desactivar el WiFi/BT por hardware. Hay un procedimiento documentado por DesobedienteTecnologico (proyecto en español, por cierto).
  • Importante: cada modelo usa una imagen distinta y no son intercambiables. Ver la tabla del punto 4.

3. La alimentación. Es la causa nº 1 de "no me funciona la cámara" y "se reinicia solo". Una pila de 9V no da suficiente corriente. Usa un cargador de red decente o una batería externa (power bank) de las normales. Y usa un cable USB de datos-y-carga en buen estado: los cables de carga baratos tienen conductores finos y provocan caídas de tensión que se manifiestan como fallos aleatorios.

Dónde comprar

Cualquier distribuidor de electrónica sirve; no hay una cadena de suministro que proteger porque las piezas son genéricas y el software lo verificas tú. Comprar en tres sitios distintos es incluso mejor: nadie sabe que estás montando un firmante de Bitcoin.

Las carcasas impresas se pueden comprar hechas en BTC Hardware Solutions, o imprimirlas: los ficheros están en el repositorio. La Open Pill se imprime en ~2 h sin soportes y no necesita tornillería. La Orange Pill queda más acabada pero pide 4 separadores M2,5 de 10 mm y tornillos M2,5 de 6 y 12 mm.


2. La decisión que hay que tomar antes de comprar: soldar o no

La Pi Zero viene, por defecto, sin los pines GPIO soldados. La pantalla se conecta a esos 40 pines (2 filas de 20). Tienes tres caminos:

Opción Qué implica Para quién
Comprar "Pi Zero WH" Viene con los pines ya soldados de fábrica Si dudas, esta. Cuesta 3-5 € más y te ahorra el único paso que puede arruinar la placa. Ojo: la WH lleva radio (ver trampa 2)
Soldar tú 40 puntos de soldadura. No es difícil, pero es la primera vez de mucha gente Si quieres aprender, o ya tienes soldador
Cabezal sin soldadura Existen cabezales a presión (hammer header). Funcionan, pero son menos fiables a largo plazo Solución de compromiso

Si sueldas, dos consejos que evitan el 90% de los problemas:

  • Suelda antes de montar nada más. Placa desnuda, buena luz, sin prisa.
  • Una soldadura fría no se ve, se nota. Si la pantalla no enciende, los botones no responden o el aparato se reinicia, revisa las soldaduras antes que ninguna otra cosa. Es la causa más frecuente. Una soldadura correcta es brillante y con forma de volcán; una fría es mate y abultada.

Si nunca has soldado, no empieces aquí. Soldar 40 pines son 45-60 minutos y hay que hacerlo bien: un puente entre dos pines contiguos puede arruinar la placa. Comprar la versión con los pines puestos cuesta 3-5 € más y te quita de encima el único paso irreversible de todo el montaje. Aprende a soldar con otra cosa, no con el aparato que va a custodiar tu dinero.


3. Montaje

Regla de oro: prueba antes de meterlo en la carcasa. Desmontar un conjunto ya encajado para arreglar un problema es la forma más habitual de romper la pantalla o la carcasa. El orden correcto es: montar sin carcasa → grabar la SD → arrancar → test de I/O → entonces encajarlo todo.

3.1 La cámara

Es la pieza más delicada del montaje y donde más gente se equivoca.

  1. En la Pi Zero, localiza el conector de cámara (el conector plano estrecho, en el borde).
  2. Tira suavemente de las pestañas hacia fuera. Cuando están hundidas, sujetan el cable; hay que levantarlas para poder insertarlo.
  3. Inserta el cable plano con los contactos dorados mirando hacia la cara inferior de la placa (la cara sin componentes). Esto es lo que más gente pone al revés.

[Falta foto: el cable bien puesto, contactos dorados a la vista. Si has montado uno, mándanosla.] 4. Vuelve a presionar las pestañas para fijar el cable. 5. Comprueba que el cable entra recto y hasta el fondo, sin quedar torcido.

El cable de la Pi Zero es más estrecho que el de las Raspberry Pi grandes. Si compraste una cámara "para Raspberry Pi" genérica, puede venir con el cable ancho y necesitarás un adaptador. Compruébalo el día que llegue el paquete, no cuando te sientes a montarlo: si falta el adaptador, es otra semana de espera.

3.2 La pantalla

Encaja el HAT de Waveshare sobre los 40 pines GPIO. Va en una única orientación posible: la pantalla queda sobre la Pi, y los pines entran todos a la vez. No fuerces. Si no entra, algo está desalineado — retíralo y mira los pines.

Punto de control 1 — montado

Antes de seguir, mira: el cable de la cámara entra recto y hasta el fondo, con los contactos dorados hacia la cara de abajo de la placa; la pantalla está encajada sobre los 40 pines sin ninguno doblado ni al aire; y no has metido nada en la carcasa todavía.

Si algo de eso no cuadra, arréglalo ahora. Después de este punto, cada problema cuesta el triple de encontrar.

3.3 La carcasa (después de probar)

Una vez que hayas confirmado que arranca, la pantalla pinta, los botones responden y la cámara ve, ya puedes encajarlo en la Open Pill o atornillar la Orange Pill.


4. Descargar y verificar el software

⚠️ Ejecuta la verificación antes de abrir o montar el archivo .img. Algunos sistemas operativos modifican el archivo al montarlo y la verificación fallaría.

4.1 Descarga la imagen de TU modelo

Desde las releases oficiales. Versión actual: 0.8.7. Comprueba en esa página que no ha salido una más nueva.

Tu placa Imagen
Raspberry Pi Zero 1.3 seedsigner_os.0.8.7.pi0.img
Raspberry Pi Zero W seedsigner_os.0.8.7.pi0.img
Raspberry Pi Zero 2 W seedsigner_os.0.8.7.pi02w.img
Raspberry Pi 1 B/B+ seedsigner_os.0.8.7.pi0.img
Raspberry Pi 2 B seedsigner_os.0.8.7.pi2.img
Raspberry Pi 3 B seedsigner_os.0.8.7.pi02w.img
Raspberry Pi 4 B / 400 seedsigner_os.0.8.7.pi4.img

La imagen ocupa menos de 42 MB desde la v0.6.0. Si te parece que ha descargado demasiado rápido, es normal.

Elegir mal no rompe nada: es software, no firmware. Simplemente no arrancará y volverás a grabar la SD. Si no sabes qué placa tienes, prueba pi0.

Si le quitaste físicamente el chip de WiFi a tu placa, sigues usando la imagen del hardware original: las imágenes se compilan por arquitectura de procesador.

Descarga también, de la misma release, estos dos archivos:

  • seedsigner.0.8.7.sha256.txt — el manifiesto de hashes
  • seedsigner.0.8.7.sha256.txt.sig — su firma

Los tres archivos, en la misma carpeta.

4.2 Verificar la firma

(El porqué de cada paso está en la Sección 4 / Paso 0b de la guía de autocustodia. Aquí van los comandos concretos.)

1. Importar la clave pública del proyecto:

gpg --fetch-keys https://keybase.io/seedsigner/pgp_keys.asc

Debe confirmar que se importó o actualizó 1 clave. Ignora el ID y el correo que muestre.

2. Verificar la firma del manifiesto:

gpg --verify seedsigner.0.8.7.sha256.txt.sig

Debe decir "Good signature". Si dice "Bad signature", para aquí.

El aviso WARNING: This key is not certified with a trusted signature es normal y se resuelve en el paso siguiente. No es un error.

3. El paso crítico — ¿de quién es esa clave?

En la última línea de la salida, toma los 16 caracteres de la derecha (4 bloques de 4) y compáralos con la huella publicada en keybase.io/seedsigner.

⚠️ El nombre y el correo que muestra GPG no verifican nada. Cualquiera puede poner el texto que quiera al crear una clave. Solo la huella cuenta.

Para no depender de una sola fuente, el proyecto publica la misma huella en tres sitios independientes:

Si las cuatro coinciden (Keybase + esas tres), un atacante tendría que haber comprometido todas a la vez. Si no coinciden, para aquí.

4. Verificar la imagen:

Linux o macOS:

shasum -a 256 --ignore-missing --check seedsigner.0.8.7.sha256.txt

(macOS anterior a v11 Big Sur no soporta --ignore-missing; omítelo e ignora los avisos de archivos ausentes.)

Windows (PowerShell):

CertUtil -hashfile seedsigner_os.0.8.7.pi0.img SHA256

y compara manualmente con el valor del .sha256.txt.

Debe salir OK para tu archivo .img. Si sale FAILED, para aquí.

4.3 Alternativa sin terminal

Sparrow Wallet incluye ToolsVerify Download, con interfaz gráfica. Le das la firma, el manifiesto y el .img.

⚠️ Pero Sparrow te mostrará el nombre y correo de la clave, y eso no verifica nada. El paso 3 (contrastar la huella) sigue siendo imprescindible hagas la comprobación como la hagas.

4.4 Si quieres eliminar incluso esa confianza

Desde la v0.7.0, las imágenes son reproducibles: puedes compilarlas desde el código fuente y comprobar que el resultado es byte a byte idéntico al publicado. Eso elimina la confianza en quien firma las releases. Instrucciones en el repo de seedsigner-os.

Es también una forma útil de contribuir al proyecto: compilar y publicar el hash que te sale.


Punto de control 2 — software verificado

Tienes tres archivos de la misma release, gpg --verify dijo "Good signature", la huella de la clave coincide con la publicada en más de una fuente, y shasum te devolvió OK.

Si cualquiera de esos cuatro falla, para aquí. No es un paso opcional que puedas dejar para luego: es la diferencia entre instalar el software del proyecto e instalar el de quien te haya interceptado la descarga. Y no hay ningún mensaje de error más adelante que te avise de haberlo saltado.


5. Grabar la MicroSD

Tres opciones: Raspberry Pi Imager, balenaEtcher o dd. Las dos primeras son las recomendadas; ambas verifican la escritura por defecto, y conviene esperar a que esa verificación termine — te ahorra horas de depuración si luego el aparato no arranca.

  • No hace falta formatear la tarjeta antes.
  • Comprueba que el adaptador de MicroSD no tiene el interruptor de bloqueo activado.
  • Borra todo lo que hubiera en la tarjeta.

En macOS: al terminar, el sistema dirá que el disco es ilegible y ofrecerá inicializarlo. Pulsa "Expulsar", nunca "Inicializar". Es normal: macOS no sabe leer el sistema de archivos de Linux.

En Windows: usa Pi Imager como primera opción. Si la escritura falla, se cuelga o no empieza, prueba a ejecutar la aplicación como administrador (clic derecho). Si tienes activado Acceso controlado a carpetas (no viene activo por defecto), desactívalo temporalmente.

Si una de las dos aplicaciones te falla, prueba la otra: hay máquinas donde una funciona mejor que la otra.


6. Primer arranque y test de entrada/salida

  1. Inserta la MicroSD.
  2. Conecta la alimentación por el puerto USB correcto — la Pi Zero tiene dos micro-USB y solo uno es de alimentación (viene marcado PWR).
  3. Espera unos 45 segundos a que aparezca el logo. La primera vez parece que no pasa nada. Ten paciencia antes de concluir que algo falla.

El test de I/O: hazlo siempre

SettingsInput/Output Tests.

Comprueba, uno por uno:

  • Cada botón y cada dirección del joystick. Si alguno no responde → soldadura.
  • La cámara. Debe mostrar imagen en vivo. Si no → cable del revés, mal insertado, o alimentación insuficiente.

Este test tarda dos minutos y es el que decide si puedes montar la carcasa o tienes que volver al soldador. No lo saltes.

La SD se puede quitar después de arrancar. Es una propiedad de seguridad deliberada: una vez cargado el sistema en memoria, puedes extraer la tarjeta y así garantizar que ningún dato secreto pueda escribirse en ella. Para uso normal no hace falta, pero es una opción disponible.


Punto de control 3 — el aparato funciona

Arrancó y salió el logo. Cada botón y cada dirección del joystick responden en el test de I/O. La cámara muestra imagen en vivo.

Este es el momento de meterlo en la carcasa, y no antes. Si has llegado aquí, el hardware está bien y todo lo que venga después es software y procedimiento — lo cual, dicho de otra forma, significa que ya no vas a tener que volver a desmontar nada.


7. Recorrido por la interfaz

Los controles: un joystick de 5 posiciones (arriba, abajo, izquierda, derecha, pulsar) y tres botones (KEY1, KEY2, KEY3) cuya función cambia según la pantalla y se indica en el margen.

El menú principal:

Entrada Qué hace
Scan Activa la cámara para leer un QR (una PSBT a firmar, una SeedQR, un QR de ajustes, una dirección a verificar)
Seeds Gestiona las seeds cargadas en memoria en esta sesión
Tools Crear seed nueva (dados, imagen, elegir palabras), explorador de direcciones, generación BIP85
Settings Configuración, tests de I/O, idioma, red

Lo que hay que interiorizar: todo lo que hay en Seeds desaparece al desconectar. No es un fallo ni un modo temporal — es el diseño. La seed vive en tu papel; la SeedSigner solo la sostiene mientras hace un cálculo.


8. Configuración recomendada

Settings:

  • Idioma: desde la 0.8.7, el español es idioma totalmente soportado (y el catalán también). Cámbialo nada más arrancar: los menús de esta guía los verás igual, y te quita la barrera del inglés de golpe.
  • Red: Mainnet para uso real; Testnet o Regtest para practicar (ver la nota de abajo).
  • Densidad de QR: si tu ordenador no lee bien los QR animados que muestra la SeedSigner, baja la densidad aquí.
  • Tipos de script: por defecto Native Segwit. También soporta Taproot, Nested Segwit y Legacy.
  • Modo persistente de ajustes: los ajustes sí se pueden guardar en la SD (no las seeds).

SettingsQR: configurar varios aparatos en segundos

El proyecto mantiene un generador de ajustes que produce un código QR con toda una configuración. Escaneas el QR con la SeedSigner y queda configurada de golpe: idioma, red, tipos de script, nivel de usuario.

Con un solo aparato no te ahorra apenas tiempo, pero sí te ahorra errores: dejas la configuración decidida con calma delante del ordenador en vez de a ciegas con un joystick, y si algún día tienes que reinstalar, la recuperas escaneando el mismo QR.

⚠️ Nota sobre la red de pruebas

La guía de autocustodia recomienda signet para practicar, porque testnet3 lleva años deteriorada. Pero el README de SeedSigner 0.8.7 lista mainnet, testnet y regtest — no menciona signet.

[VERIFICAR] antes de ponerte: mira en los ajustes de tu aparato qué redes ofrece tu versión concreta. Si no hay signet, te quedan dos:

  • Testnet — la práctica para casi todo el mundo. Arrastra problemas conocidos (faucets que van y vienen), pero para ensayar el ciclo de firma sirve.
  • Regtest — tu propia red privada. Es la opción limpia, sin depender de faucets ni de la salud de una red pública, pero necesitas un nodo Bitcoin corriendo. Si ya lo tienes, ve por aquí.

9. Generar tu seed con dados

Lee antes las secciones 2, 3 y 5 de la guía de autocustodia: por qué la entropía propia importa, por qué 99 tiradas, cómo diseñar la passphrase y por qué no debes inventártela. Aquí solo va el manejo del aparato.

9.1 El vector de prueba (hazlo primero, siempre)

ToolsNew Seed → dados → 24 palabras. Introduce:

655152231316521321611331544441236164664431121534415633526456254462245546236542364246312613322234612

Debe producir exactamente:

eyebrow obvious such suggest poet seven breeze blame virtual frown dynamic donor
harsh pigeon express broccoli easy apology scatter force recipe shadow claim radio

Vector corto (50 tiradas → 12 palabras):

65515223131652132161133154444123616466443112153441
hole luggage safe present express tragic orbit shed switch metal identify path

Fingerprint 8d9cced8, zpub zpub6qf9ziL759pzyhKMWaPfNSiCETkoA6oq3fbCDvXqcURiMtPnkEg3nH93W5mrSkvGPoJC9xTYZheYDsYoiYc5AkSk9iY3DkCJHkFgHMdijW6.

Son seeds públicas, publicadas en la documentación del proyecto. Riesgo cero, diez minutos, y verifica tu unidad concreta con tu firmware concreto antes de que custodie nada.

Si coincide: tu aparato convierte la entropía correctamente. Si no coincide: para y revisa qué versión tienes instalada.

Punto de control 4 — el aparato calcula bien

El vector de prueba te devolvió exactamente las palabras esperadas.

Eso te dice algo concreto y valioso: el código que va a convertir tus tiradas en tu seed funciona correctamente en tu unidad y con tu versión de firmware. No es una promesa del fabricante, es una comprobación tuya. Muy poca gente que tiene una hardware wallet ha hecho esto nunca.

Si las palabras no coinciden: no sigas. Revisa que la imagen que grabaste corresponde a tu modelo de Pi, y que el vector que estás usando es el de tu versión.

9.2 Generar la tuya

  1. ToolsNew Seed → dados → 24 palabras (99 tiradas).
  2. Tira el dado 99 veces, introduciendo cada resultado.
  3. Anota cada tirada en papel según la introduces. Sin la secuencia no podrás hacer la verificación cruzada, y no hay forma de recuperarla.
  4. Al terminar, la SeedSigner calcula el checksum y muestra las 24 palabras en 6 pantallas de 4.
  5. Si dudas de una tirada a mitad: reinicia el proceso entero. No "arregles" una tirada suelta.

⚠️ La secuencia de tiradas es material de clave. Nunca la fotografíes ni la guardes en digital.

9.3 Verificación cruzada [avanzado]

El repositorio incluye tools/mnemonic.py, que ejecuta exactamente el mismo código de conversión que corre en el dispositivo:

git clone https://github.com/SeedSigner/seedsigner.git
cd seedsigner && python3 -m venv venv && source venv/bin/activate
pip install embit && pip install -e . && cd tools
python3 mnemonic.py dice <tus_99_tiradas>

También acepta coins para secuencias binarias y --zero-indexed-dice si anotaste los dados como 0-5.

Contrasta el resultado con iancoleman.io/bip39 y bitcoiner.guide/seed.

⚠️ En iancoleman: marca "Show entropy details", selecciona "Base 10" o "Hex"nunca la opción "Dice [1-6]", porque ahí el 6 se convierte en 0 y obtendrás un resultado distinto — y fija "Mnemonic Length" a 24 palabras.

🔴 Con una seed de ENSAYO, nunca con la tuya

Haz esta verificación antes de generar la seed que vas a usar: tira 99 veces, genera una seed desechable con el mismo dado y el mismo método, verifica esa contra las tres herramientas, descártala, y solo entonces genera la real.

La seed de ensayo no va a tener fondos jamás, así que puedes teclearla en tu ordenador de siempre sin ningún riesgo. Y cubre el ataque que el vector público no cubre: un aparato manipulado podría reconocer el vector conocido y portarse bien solo con él, pero no puede distinguir tus tiradas de ensayo de las de verdad.

La seed que vayas a usar no se teclea en un ordenador nunca. Ni air-gapped, ni en una sesión efímera que destruyas después. La documentación de SeedSigner sugiere esa vía para verificar seeds reales; aquí somos más estrictos a propósito, y la Sección 3.2 de la guía de autocustodia explica por qué.

9.4 La opción de la cámara: qué es y cuándo vale

En Tools vas a ver, junto a los dados, la opción de generar la seed con una foto. La vas a ver, alguien va a preguntar, y merece una respuesta mejor que "no la uses".

Cómo funciona. SeedSigner encadena cuatro entradas en un SHA-256: el número de serie del Pi, el tiempo desde el arranque, hasta 50 fotogramas de la previsualización en vivo y la foto final. Las dos primeras aportan casi nada —el aparato no tiene reloj y el número de serie no es secreto—, así que todo descansa en la cámara.

Y la cámara aporta de sobra. Una escena iluminada mide del orden de millones de bits frente a los 256 que hacen falta. El dato que más sorprende: una pared blanca vale prácticamente igual que una estantería llena de libros —menos del 10% de diferencia—. La entropía no está en lo que fotografías, está en el ruido del sensor, que cambia en cada lectura. Dos fotos seguidas del mismo sitio, con el aparato quieto en la mesa, difieren en el 80% de sus valores de color. Y en 320 capturas medidas no se repitió ninguna.

O sea: el método no es débil. Con luz, produce una seed sólida.

Por qué esta guía usa dados igualmente

Por una sola razón, y no es la cantidad de entropía. Lo dice el desarrollador principal de SeedSigner en su propio análisis:

Con la imagen solo puedes verificar el proceso, no los resultados individuales. Los dados se diferencian exactamente en eso: las tiradas caben en un papel.

Son unos 12 MB de fotogramas. No caben en un QR, y escribirlos a la tarjeta sería guardar tu seed en disco —justo lo que un aparato stateless no hace nunca—. Con tus 99 tiradas puedes ir a tres herramientas distintas y comprobar que dan lo mismo. Con una foto, nadie podrá comprobar nunca nada sobre esa seed concreta, ni tú.

Y eso pesa doble en una guía sobre verificar: los dados son el único método donde puedes comprobar tu resultado con tus propias manos, hoy y dentro de diez años.

Si la usas, cuatro reglas que nadie te va a decir

Salen de mediciones sobre cuatro aparatos físicos, y ninguna es evidente:

1. Con luz Es lo único que importa de verdad. Cualquier escena vale
2. Nunca a oscuras Boca abajo en la mesa, la lente tapada, dentro de una bolsa
3. Pulsa, no mantengas Mantener el botón se salta la capa de previsualización entera
4. Ignora la pantalla Lo que ves no indica cuánta entropía recogiste

La regla 2 no es exageración: con el sensor sin luz se midieron fotos finales de 113, 177, 190 y 221 bits, por debajo de los 256 que necesita una seed de 24 palabras. Y la capa de previsualización, que debería cubrir eso, se cae al mismo tiempo: a oscuras casi todos sus fotogramas son un negro constante que un atacante puede calcular sin haber visto nada. Los dos fallos tienen la misma causa —falta de luz— así que no son dos capas, es una.

La regla 3 viene de un tic introducido en la v0.7.0: si mantienes el botón pulsado atraviesas previsualización, captura y aceptación de un gesto, y no se encadena ni un fotograma.

La regla 4 es la que más incomoda: una pantalla de revisión completamente negra vino de capturas con cien veces lo necesario, y una con ruido bien visible de capturas muy por debajo del mínimo. Mirar la pantalla para quedarte tranquilo es mirar algo que no correlaciona.

De dónde salen estas cifras. Del análisis de entropía por imagen del propio proyecto, con los 340 MB de capturas en bruto publicados para que cualquiera lo contradiga. Ellos mismos avisan de que es un análisis asistido por IA de su desarrollador principal, no una auditoría independiente, y de que nadie ha reproducido las cifras todavía.

El tercer método: elegir las palabras a mano

SeedSigner también deja elegir tú las palabras de la lista BIP-39 y calcula la última. Es válido si eliges esas palabras con una fuente aleatoria de verdad —dados y una tabla— y es un desastre si las eliges "al azar" de tu cabeza, que es lo que hace casi todo el mundo. Si vas por ahí, usa una tabla y un dado, no tu intuición.


10. SeedQR: cargar la seed en segundos

Escribir 24 palabras a mano en un joystick cada vez que quieras firmar es tedioso, y el tedio hace que la gente deje de verificar cosas. La respuesta del proyecto es la SeedQR: transcribes tu seed a un código QR a mano, en papel, y luego la SeedSigner la lee en un segundo con su cámara.

  • La SeedSigner tiene un modo guiado para transcribirla, casilla a casilla.
  • El proyecto publica plantillas imprimibles en varios formatos: rejilla, puntos, y formato "cromo" de tamaño tarjeta.
  • Estándar (25×25 para 12 palabras, 29×29 para 24) o Compact (21×21 y 25×25), que ocupa menos casillas.

⚠️ Una SeedQR es tu seed en texto plano. No es cifrado ni ofuscación: cualquiera con un móvil la lee. Guárdala con exactamente el mismo cuidado que las palabras escritas, y nunca la fotografíes.

Muy práctica. Y es donde más gente confunde "difícil de leer para un humano" con "seguro".


11. Crear la wallet en Sparrow y firmar una transacción

11.1 Crear la wallet

  1. Sparrow → FileNew Wallet. Ponle nombre.
  2. Airgapped Hardware Wallet → en la fila de SeedSigner, pulsa Scan. Se abre la cámara del ordenador.
  3. En la SeedSigner, con la seed cargada: Export XpubSingle SigNative SegwitSparrow.
  4. La SeedSigner muestra un QR animado. Ponlo delante de la cámara del ordenador hasta que Sparrow lo capte entero.
  5. Apply.
  6. Compara el fingerprint de Sparrow con el que muestra la SeedSigner. Deben coincidir.

Si el QR animado no se lee: baja la densidad de QR en los ajustes de la SeedSigner, o ajusta el brillo con el joystick (arriba/abajo).

11.2 Firmar una transacción (PSBT)

Este es el ciclo de trabajo normal, y la parte que la guía de autocustodia no cubre porque es específica del modelo air-gapped:

  1. En Sparrow, compón la transacción normalmente y pulsa firmar. Sparrow muestra un QR animado con la PSBT (la transacción sin firmar).
  2. En la SeedSigner: carga tu seed (tecleando las palabras, o escaneando tu SeedQR) → Scan → apunta a la pantalla del ordenador.
  3. La SeedSigner muestra un repaso detallado de la transacción: a dónde va, cuánto, la comisión, y —esto es lo importante— verifica las salidas de cambio. Léelo. Es tu única defensa contra un ordenador comprometido que te enseñe una cosa y firme otra.
  4. Confirma. La SeedSigner muestra la PSBT firmada como QR animado.
  5. En Sparrow: escanea ese QR. Sparrow reconstruye la transacción firmada y ya puedes difundirla.

En ningún momento se conectan. Todo pasa por códigos QR y tus ojos.

11.3 Verificar direcciones de recepción

Scan sobre la dirección que te muestra tu wallet de software: la SeedSigner confirma si esa dirección pertenece de verdad a tu wallet. Es la defensa contra malware que sustituye direcciones al copiar y pegar. Hazlo siempre antes de recibir una cantidad significativa.


12. Pruébalo antes de comprar: el simulador

Existe un simulador que corre el firmware real de SeedSigner en una pestaña del navegador: bitsaga.be/seedsigner-simulator (código, MIT).

No es un vídeo ni una imitación rehecha para parecerse: es el mismo Python que corre en el aparato, con la pantalla dibujada en un canvas, los botones en tu teclado y la cámara en tu webcam. Puedes recorrer el menú entero, cargar una seed, meter tiradas de dado, poner passphrase, exportar el xpub y firmar una PSBT.

Para qué sirve, y aquí está lo bueno: puedes recorrer el menú entero, meter tiradas de dado y poner una passphrase mientras esperas a que lleguen las piezas. Cuando montes el aparato ya no será la primera vez que ves esas pantallas. También sirve para decidir si el flujo te convence antes de gastar nada, y para enseñárselo a alguien: una pantalla de 1,3 pulgadas no se comparte, una pestaña del navegador sí.

Por qué este sí y no cualquier simulador

Esta guía repite que no te fíes de software que no puedes comprobar, así que toca aplicárselo. Lo que ofrece: está anclado a un tag de release y no a una rama (una rama se reescribe, un tag publicado no), su compilación es reproducible con el sha256 publicado para que lo rehagas y compares byte a byte, una máquina limpia lo reconstruye en cada cambio, y corre la batería de tests de los propios autores de SeedSigner. MIT, con el origen y la licencia de cada dependencia listados.

Vale la pena mirarlo aunque no lo uses, como ejemplo de qué aspecto tiene un proyecto que se deja verificar.

Tres trampas prácticas

1. Arranca en el fork de smartcard, no en SeedSigner a secas. La página abre por defecto el fork de 3rdIteration, que añade menús de tarjetas SeedKeeper y Satochip que tu aparato no va a tener. Para ver lo mismo que tendrás en la mano, usa el control de Firmware o entra directamente por ?firmware=stock.

2. Mainnet funciona de verdad. Arranca en testnet a propósito, pero mainnet está disponible en los ajustes y deriva claves reales y firma transacciones reales. Una clave derivada en una pestaña del navegador es una clave real.

⚠️ No metas ahí ninguna seed tuya. Ninguna. Nunca. Ni "solo para ver". Una pestaña del navegador no es un air gap y el sistema de ficheros de Pyodide no es un elemento seguro — lo dicen ellos mismos. Usa una seed de prueba pública, como la del vector de la Sección 9.1, que existe justo para esto.

3. Si lo quieres alojar tú —para tenerlo offline, o por no depender de una web ajena— necesita dos cabeceras (Cross-Origin-Opener-Policy y Cross-Origin-Embedder-Policy) o no arranca, y la cámara exige https o localhost: por http en una IP de la red local no hay API de cámara que valer. Lo tienen documentado en docs/SELF-HOSTING.md. Una vez cargada, la página funciona sin conexión.

Qué no simula

Sin microSD, sin nada que dependa de hilos, sin comportamientos por tiempo. Y sobre todo, ninguna propiedad de seguridad real. Es un proyecto independiente, sin relación con SeedSigner, y —palabras suyas— ejecutarlo no demuestra nada sobre un dispositivo real.


13. Resolución de problemas

Síntoma Causas, en orden de probabilidad
No enciende el LED de la Pi Esperar un minuto · Cable USB en el puerto equivocado (usa el marcado PWR) · Volver a grabar la SD · Fuente insuficiente
La pantalla no muestra nada Esperar (el arranque tarda ~45 s) · Alimentación insuficiente (una pila de 9V no basta: usa red o power bank) · Soldaduras · Pantalla del modelo equivocado (¿240×240?)
Un botón o el joystick no responde Test de I/O para identificar cuál · Soldadura fría en ese pin
La cámara se reinicia o se cuelga Alimentación insuficiente · Conexión del cable a la placa verde de la cámara · Test de I/O
La cámara ve pero no detecta el QR Ajustar el brillo con el joystick (arriba/abajo) · Bajar la densidad de QR en ajustes · Bajar la densidad en el ordenador · Alejar/acercar · Evitar reflejos en la pantalla
Arranca pero se reinicia solo Alimentación · Cable USB de mala calidad · Escritura de la SD no verificada
No arranca tras grabar la SD Imagen del modelo equivocado (ver tabla del punto 4) · Escritura fallida: regrabar esperando a que termine la verificación · Probar la otra aplicación de grabado
El QR animado de Sparrow no entra Bajar la densidad · Pantalla del ordenador más brillante · Mover despacio

El diagnóstico que resuelve la mitad de los casos: si algo raro pasa, cambia la fuente de alimentación antes de tocar nada más. Y si no, revisa soldaduras.


14. Limitaciones y qué NO hace

Ser honesto sobre esto es parte de la guía:

  • No guarda tu seed. Si pierdes el papel, se acabó. No hay recuperación posible desde el aparato.
  • No es un producto con soporte. Es un proyecto de voluntarios, sin empresa detrás y sin ánimo de lucro (licencia MIT). Eso es una virtud —no hay incentivo comercial que corrompa el diseño— y significa que si algo falla, la ayuda es una comunidad de Telegram, no un servicio técnico.
  • No tiene elemento seguro ni protección antimanipulación física. Si alguien accede al aparato mientras está encendido con tu seed cargada, la ve. Su seguridad viene de ser stateless y air-gapped, no de resistir un ataque físico.
  • La pantalla es pequeña y los controles, básicos. Escribir 24 palabras a mano es lento. Por eso existen las SeedQR.
  • No sustituye a entender lo que haces. Es la herramienta que menos confianza pide y la que más atención exige.

Y lo que hace muy bien: private key generation trustless, multisig barato (bajar el coste de un quorum de varios cientos de euros a menos de 50 por firmante es su razón de existir), y un modelo de firma donde tú ves cada dato que entra y sale.


15. Fuentes


Sin garantías. Material educativo elaborado por usuarios, no un producto oficial de SeedSigner. Verifica cada paso contra la documentación oficial. Practica en una red de pruebas antes de usar fondos reales.

Última actualización: agosto de 2026 · software v0.8.7. Escrita por Pícaro para Bitcoin Txoko.

S
Description
Monta y usa tu propio firmante de Bitcoin air-gapped con poco dinero: materiales, montaje, verificación del software, generar la seed con dados y firmar una transacción. Guía en castellano, libre y verificable. CC BY-SA.
Readme
194 KiB
Languages
Markdown 100%