Herramienta de frase mnemónica BIP-39
Genera, valida y convierte frases mnemónicas BIP-39 (12–24 palabras) — entropía, checksum y derivación de seed, solo wordlist en inglés. En tu navegador, solo para aprender y probar.
Herramienta de frase mnemónica BIP-39
Generado y comprobado enteramente en tu navegador con crypto.getRandomValues — nada se envía a ningún lado. Solo wordlist en inglés.
What next?
FAQ
¿Puedo usar una frase generada aquí para una billetera con fondos reales?
No, bajo ningún concepto. Esto no es una advertencia de trámite — es lo más importante de toda esta página. Una frase semilla generada en cualquier pestaña de navegador, incluida esta, existe — aunque sea brevemente — en la memoria de esa pestaña, puede ser visible para una extensión maliciosa del navegador, y puede ser capturada por malware que vigila el portapapeles en el instante mismo en que la copias. La frase de una billetera real debe generarse en el propio dispositivo de hardware, o en un equipo air-gapped que nunca haya tocado internet — nunca en una computadora de uso general con el navegador abierto en otras docenas de sitios. Esta herramienta existe para que entiendas cómo funciona BIP-39 — ver fallar un checksum real, ver cómo la entropía se convierte en palabras — no para producir una frase a la que luego enviarle fondos. Trata todo lo que se genere aquí como comprometido desde el instante en que aparece en pantalla.
La entropía (aleatoriedad) de la frase generada, ¿de dónde sale?
De crypto.getRandomValues — la API de aleatoriedad criptográfica disponible en cualquier navegador moderno — a través de la función randomBytes de la biblioteca @noble/hashes. Un detalle relevante: esa función lanza un error si crypto.getRandomValues no está disponible, en lugar de recurrir en silencio a Math.random, una fuente de aleatoriedad que no es suficientemente fuerte para uso criptográfico. Dicho de otro modo, la herramienta prefiere fallar y detenerse antes que generar una frase que parezca aleatoria pero en realidad sea predecible. La biblioteca base @scure/bip39 se eligió en lugar del paquete bip39 más antiguo por un motivo relacionado: ese paquete anterior requiere un shim que simula un Buffer global que no existe en el navegador, mientras que @scure/bip39 está escrito directamente para el navegador con Uint8Array, sin ningún efecto secundario global.
¿Por qué solo hay wordlist en inglés, y una frase válida en francés o japonés se marca como inválida?
El estándar BIP-39 sí define wordlists para chino (simplificado y tradicional), checo, francés, italiano, japonés, coreano, portugués y español, cada una con sus propias 2048 palabras y sus propios problemas de normalización Unicode — por ejemplo, las frases en japonés unen las palabras con un espacio ideográfico, no con uno normal, un detalle que es fácil pasar por alto si no se maneja explícitamente. La versión actual de esta herramienta implementa solo la wordlist en inglés — soportar bien las demás implica probar los casos límite de normalización de cada alfabeto, un trabajo real que todavía no se hizo en esta versión. Si tienes una frase de otra wordlist, la validación de checksum y la conversión a entropía de aquí no la reconocerán como válida, aunque sea completamente correcta dentro de su propia lista.
¿Qué diferencia realmente a una frase de 12 palabras de una de 24?
El número de palabras es una función directa de cuántos bits de entropía entraron: BIP-39 añade un checksum igual a bits_de_entropía / 32 antes de dividir todo en bloques de 11 bits, uno por palabra. 128 bits de entropía (16 bytes) más su checksum de 4 bits dan 132 bits, exactamente 12 palabras de 11 bits cada una; 256 bits (32 bytes) más su checksum de 8 bits dan 264 bits, exactamente 24 palabras. No existe una opción de 13 o 20 palabras porque esos conteos de bits no se dividen de forma exacta entre 11 con una proporción de checksum válida — solo 12, 15, 18, 21 y 24 palabras corresponden a tamaños de entropía válidos (128, 160, 192, 224, 256 bits). Más palabras significa más entropía y más combinaciones a probar por fuerza bruta, aunque incluso 12 palabras (128 bits) ya está muy por encima de lo prácticamente buscable hoy.
¿Por qué al comprobar una frase con todas las palabras correctas del listado igual dice "inválida"?
Que cada palabra exista en la lista es necesario, pero no suficiente — la última palabra (o sus últimos bits, según la cantidad de palabras) codifica un checksum calculado a partir de un hash SHA-256 de la entropía anterior, y ese checksum tiene que coincidir exactamente. Esto es deliberado: detecta el error más común en la práctica, un error de tipeo o una palabra mal escuchada al copiar la frase a mano o dictarla en voz alta. Cambiar cualquier palabra por otra válida de la lista, o invertir el orden de dos palabras, casi con seguridad rompe el checksum — para eso existe. Si tu frase falla la validación aquí, la solución no es adivinar y probar palabras cercanas — vuelve al lugar donde la anotaste y confirma cada palabra y su orden exacto, idealmente leyéndolas de la lista numerada en lugar de confiar en la memoria.
¿En qué se diferencia la "seed" que deriva esta herramienta del propio mnemónico?
El mnemónico (las palabras en sí) es solo una codificación amigable de entropía cruda, pensada para escribirse y leerse de vuelta sin errores. La seed es un valor completamente distinto de 64 bytes, producido al pasar el mnemónico (más una passphrase opcional) por PBKDF2 con 2048 rondas de HMAC-SHA512, y es la seed — no las palabras — la que realmente alimenta BIP-32 para derivar todo un árbol jerárquico de claves privadas para cada dirección que maneja una billetera. Este diseño en dos pasos existe en parte para permitir una passphrase opcional, a la que BIP-39 llama la "palabra 25": las mismas 12 o 24 palabras con una passphrase distinta producen una seed completamente distinta, y por tanto un conjunto de direcciones completamente distinto — una función útil de "billetera oculta", pero también una causa común de tickets de soporte de "desaparecieron mis fondos" cuando alguien olvida que había puesto una. Esta herramienta llega solo hasta el paso de la seed y se detiene ahí; derivar claves y direcciones reales para una moneda específica es un paso BIP-32/BIP-44 aparte que esta herramienta no realiza.
More web3 tools
- Verificador de direcciones de wallet — Valida direcciones de Ethereum (EIP-55), Bitcoin (legacy/segwit/bech32) y Solana.
- Conversor ETH ↔ Wei ↔ Gwei — Convierte entre unidades de Ethereum (wei, gwei, ether, etc.