01 — Descripción general
¿Qué es Vanitas?
Vanitas es una falsificación de direcciones personalizadas de múltiples cadenas del lado del cliente. Eliges un prefijo y/o sufijo; la aplicación busca un par de claves cuya dirección pública coincida con ese patrón. La generación se ejecuta en Web Workers en tu CPU. Las claves privadas se crean en la memoria de su dispositivo y nunca se cargan.
Una dirección personalizada sigue siendo una dirección criptográfica normal. La clave privada es aleatoria; solo se filtra la codificación pública hasta que tenga el aspecto deseado, lo que resulta útil para marcas, donaciones, mentas y billeteras públicas memorables.
Dónde
Tu navegador · tu CPU
Solo alojamiento estático; la minería no hace llamadas a la red
Forjas
9 cadenas + terminal CLI
Solana · EVM · Bitcoin · Tron · Aptos · Sui · TON · Cardano · XRP
Producción
Dirección + clave privada
Los formatos de exportación dependen de la forja (JSON, hexadecimal, WIF,…)
02 — Tubería
El bucle de búsqueda
Cada forja sigue el mismo bucle de alto nivel, repetido millones de veces:
Secure random
crypto.getRandomValues draws a fresh private key — full entropy, every attempt.
- Extraiga una clave privada aleatoria criptográficamente segura (
crypto.getRandomValues). - Derive la clave pública con la curva de la cadena (Ed25519 o secp256k1).
- Codifique la dirección de la forma esperada por la cadena (Base58, hexadecimal, bech32,…).
- Compare con su prefijo/sufijo (y reglas de modo).
- En el partido: detener a los trabajadores, mostrar el resultado, sonido / prueba / exportación opcional.
Los trabajadores ejecutan este bucle en paralelo en los núcleos de la CPU. El hilo de la interfaz de usuario sigue respondiendo; El progreso (intentos, tasa, ETA) se agrega a partir de los mensajes de los trabajadores. Cuando un trabajador encuentra un resultado, el grupo finaliza.
¿Por qué esto es seguro?
La búsqueda de una dirección personalizada no debilita la clave privada. Está rechazando candidatos hasta que la dirección pública parezca correcta: el mismo proceso que generar claves aleatorias y quedarse con el afortunado.
03 — Patrones
Dificultad, alfabetos, advertencias.
Escalas de tiempo esperadas con duración del patrón y tamaño del alfabeto. Cada carácter extra multiplica el espacio de búsqueda. La interfaz de usuario de Forge muestra una estimación de la dificultad en vivo basada en su patrón y una tasa de hash medida o supuesta.
~65,536
expected attempts · EVM · Aptos · Sui · 16n
base58
~58 símbolos
Solana, Tron, XRP (alfabeto XRPL), legado de Bitcoin
Maleficio
16 símbolos (0–9, a–f)
EVM, Aptos, Sui: no distinguen entre mayúsculas y minúsculas para realizar coincidencias
bech32
bc1q / bc1p / dirección1…
Bitcoin SegWit/Taproot, Cardano: HRP fijo, luego conjunto de caracteres
TON
base64url
UQ… / EQ… — distingue entre mayúsculas y minúsculas
trampas del alfabeto
- Solana / Bitcoin Base58: no
0,O,Iol(rechazo de apariencia similar). - EVM: solo hexadecimal después de
0x. Las letras posteriores aa–fno son válidas. - Tron — las direcciones comienzan con
T; el siguiente carácter suele estar en mayúscula. Los prefijos en minúsculas que distinguen entre mayúsculas y minúsculas a menudo nunca coinciden. - Prefijo + sufijo: ambas restricciones multiplican la dificultad. Empiece breve; Haga crecer el patrón una vez que conozca su tasa.
04 — Cadenas
Cada fragua, explicada.
Nueve forjas comparten el mismo patrón de UX (elija un modo, establezca un patrón, inicie trabajadores), pero cada cadena utiliza diferentes curvas, hashes y codificaciones de direcciones.
Solana
Pares de claves Ed25519 codificados como Base58 (clave pública de 32 bytes). Native Web Crypto Ed25519 se utiliza cuando el navegador lo admite; de lo contrario, un respaldo WASM (watsign). Modos: billetera y mint: las mismas matemáticas clave; El marco mint es para flujos mint personalizados de la plataforma de lanzamiento. Exportar: matriz de bytes JSON de Solana CLI.
EVM
secp256k1 → clave pública sin comprimir → keccak-256 → últimos 20 bytes → dirección 0x…. Una clave privada produce la misma dirección en Ethereum, Base, Arbitrum, Optimism, BSC, Polygon y cualquier otra red EVM. Modos: billetera (EOA), CREAR en nonce 0, CREATE2 (moler sal o moler implementador). Consulte Modos a continuación.
Bitcoin
secp256k1. Tres tipos de direcciones: P2PKH heredado (1…), SegWit P2WPKH nativo (bc1q…), Taproot P2TR (bc1p…). La exportación incluye WIF (comprimido) para la importación de billetera. El byte inicial de HRP/versión se maneja automáticamente al escribir prefijos.
Tron
La misma ruta secp256k1 + keccak que EVM para el ID de cuenta de 20 bytes, luego Base58Check con el byte de versión 0x41 → T…. Modos: billetera y CREATE (nonce 0), usando el mismo diseño RLP que EVM y luego la codificación Tron.
Aptos
Ed25519. Dirección = sha3-256(pubkey ‖ 0x00) como hexadecimal. Compatible con Petra, Martian y otras carteras Aptos que importan secretos hexadecimales.
Sui
Ed25519. Dirección = blake2b-256(0x00 ‖ pubkey) como hexadecimal (el byte de bandera marca el esquema). Importe a Sui Wallet / Suiet con la clave privada hexadecimal.
TON
Ed25519 + Contrato de billetera v4R2. Las direcciones son formularios Base64url fáciles de usar: UQ… (no rebotable) y EQ… (rebotable). La coincidencia distingue entre mayúsculas y minúsculas. Importar a Tonkeeper / MyTonWallet.
Cardano
Dirección empresarial Ed25519 (CIP-19 tipo 6, solo clave de pago): encabezado 0x61 + hash de pago Blake2b-224, bech32 con HRP addr → addr1….
XRP
clave pública comprimida secp256k1 → ID de cuenta RIPEMD160 (SHA256) → XRPL classic Base58 Check → r…. Nota: XRPL utiliza un alfabeto Base58 diferente al de Bitcoin.
05 — Modos
Cartera, nueva, CREATE, CREATE2
Menta
Criptográficamente idéntico a un par de claves de billetera. Las plataformas de lanzamiento solicitan un par de claves mint personalizado/clave privada; Vanitas etiqueta el resultado como perfecto para que la exportación coincida con ese flujo de trabajo. Abra /sol?mode=mint, busque un patrón, pegue la clave en pump.fun, Raydium, Meteora, etc.
CREATE
El primer contrato implementado desde un EOA con nonce 0 tiene una dirección determinista: keccak256(RLP([sender, 0]))[12:]. Vanitas muele los EOA hasta que la dirección del contrato derivada coincida con su patrón. Recibirá la clave privada del implementador: implemente una vez desde una cuenta nueva nonce-0.
CREATE2
Dirección = keccak256(0xff ‖ deployer ‖ salt ‖ initCodeHash)[12:]. Dos estrategias de rutina:
- create2-salt — fix deployer key + init code hash; busque una sal que produzca la dirección personalizada.
- create2-deployer — corrige salt + hash del código de inicio; busque una clave de implementación cuya dirección CREATE2 coincida.
Debe proporcionar un initCodeHash correcto (keccak del código de bytes de implementación). Hash incorrecto → dirección en cadena incorrecta.
06 — Trabajadores
Arquitectura de rendimiento
Las fuentes de trabajadores viven bajo src/workers/*.worker.source.ts y están agrupadas con esbuild en public/*-worker.js. Cada compilación escribe resúmenes SHA-256 en public/worker-hash.json para live audit.
Paralelismo
Núcleos de CPU − 1 (predeterminado)
Ajuste los hilos si la máquina se calienta o la interfaz de usuario tartamudea
velocidad solana
Ed25519 nativo cuando esté disponible
Cromo 113+ · Firefox 129+ · Safari 17+; más WASM
Bibliotecas
@noble · tweetnacl · watsign · @ton/*
Cripto JS / WASM puro auditado en el navegador
Después de un hallazgo, comprobaciones de seguridad clave opcionales sondean la entropía, la disponibilidad de CSPRNG y una prueba de uniformidad de chi-cuadrado en bytes aleatorios, lo que confirma que la ruta RNG del navegador parece estar en buen estado.
07 — Prueba
prueba de hallazgo
Compartir prueba crea un enlace público a /proof solo con cadena, dirección y patrón, nunca la clave privada. Cualquiera puede abrir el enlace y verificar que la dirección coincida con el prefijo/sufijo reclamado en el lado del cliente.
In the proof
- Public address
- Prefix / suffix pattern
- Chain · mode · timestamp
Never in the link
- Private key / seed
- Worker memory dumps
- Clipboard or exports
Los hallazgos recientes en la interfaz de usuario usan sessionStorage solo para metadatos de dirección + patrón. Al cerrar la pestaña se borra ese historial; Las claves no se almacenan allí.
08-CLI
Forja terminal
La misma idea fuera del navegador: npx vanitas abre un asistente o pasa indicadores para cadena, modo, prefijo, subprocesos y parámetros CREATE2. Los resultados escriben un archivo JSON con el modo 0600 cuando el sistema operativo lo admite. Paquete: npmjs.com/package/vanitas.
npx vanitas evm --modo contrato --prefix cafe --threads 8
09 — Verificar
Confírmalo tú mismo
- Abra DevTools → Red, borre el registro, inicie una falsificación; debería ver sin solicitudes mientras extrae.
- Cargue la página, desconéctese, genere nuevamente; todavía funciona.
- Ejecute live audit y compare los hashes de trabajo con
worker-hash.json. - Lea la fuente sobre GitHub, especialmente
src/workers/.
Recordatorio
Guarde su clave privada antes de cerrar la pestaña. Las llaves perdidas no se pueden recuperar. Para saldos grandes: pruebe primero con una transferencia pequeña, prefiera billeteras de hardware para la custodia a largo plazo y nunca pegue claves en sitios que no sean de confianza.










