01 — Visão geral
O que é Vanitas
Vanitas é uma forja de endereços personalizados de múltiplas cadeias do lado do cliente. Você escolhe um prefixo e/ou sufixo; o aplicativo procura um par de chaves cujo endereço público corresponda a esse padrão. A geração é executada em Web Workers na sua CPU. As chaves privadas são criadas na memória do seu dispositivo e nunca são carregadas.
Um endereço personalizado ainda é um endereço criptográfico normal. A chave privada é aleatória; apenas a codificação pública é filtrada até ficar do jeito que você deseja – útil para marcas, doações, moedas e carteiras públicas memoráveis.
Onde
Seu navegador · sua CPU
Somente hospedagem estática; mineração não faz chamadas de rede
Forjas
9 cadeias + terminal CLI
Solana · EVM · Bitcoin · Tron · Aptos · Sui · TON · Cardano · XRP
Saída
Endereço + chave privada
Os formatos de exportação dependem da forja (JSON, hex, WIF,…)
02 – Pipeline
O ciclo de pesquisa
Cada forja segue o mesmo ciclo de alto nível, repetido milhões de vezes:
Secure random
crypto.getRandomValues draws a fresh private key — full entropy, every attempt.
- Desenhe uma chave privada aleatória criptograficamente segura (
crypto.getRandomValues). - Derive a chave pública com a curva da cadeia (Ed25519 ou secp256k1).
- Codifique o endereço da maneira que a cadeia espera (Base58, hex, bech32,…).
- Compare com seu prefixo/sufixo (e regras de modo).
- Na partida: pare os trabalhadores, mostre o resultado, som/prova/exportação opcional.
Os trabalhadores executam esse loop em paralelo nos núcleos da CPU. O thread da UI permanece responsivo; o progresso (tentativas, taxa, ETA) é agregado das mensagens do trabalhador. Quando um trabalhador encontra uma ocorrência, o pool é encerrado.
Por que isso é seguro
Procurar um endereço personalizado não enfraquece a chave privada. Você está rejeitando candidatos até que o endereço público pareça correto – o mesmo processo de gerar chaves aleatórias e manter a sortuda.
03 – Padrões
Dificuldade, alfabetos, avisos
Escalas de tempo esperadas com comprimento do padrão e tamanho do alfabeto. Cada caractere extra multiplica o espaço de pesquisa. A IU do forge mostra uma estimativa de dificuldade ao vivo com base em seu padrão e uma taxa de hash medida ou presumida.
~65,536
expected attempts · EVM · Aptos · Sui · 16n
Base58
~58 símbolos
Solana, Tron, XRP (alfabeto XRPL), legado Bitcoin
Feitiço
16 símbolos (0–9, a–f)
EVM, Aptos, Sui — sem distinção entre maiúsculas e minúsculas para correspondência
Bech32
bc1q / bc1p / endereço1…
Bitcoin SegWit/Taproot, Cardano – HRP corrigido e depois conjunto de caracteres
TON
Base64url
UQ… / EQ… — diferencia maiúsculas de minúsculas
Armadilhas do alfabeto
- Solana / Bitcoin Base58 — sem
0,O,Ioul(rejeição semelhante). - EVM — somente hexadecimal após
0x. Letras além dea–fsão inválidas. - Tron — endereços começam com
T; o próximo caractere geralmente é maiúsculo. Os prefixos minúsculos que diferenciam maiúsculas de minúsculas geralmente nunca correspondem. - Prefixo + sufixo — ambas as restrições multiplicam a dificuldade. Comece curto; aumente o padrão depois de saber sua taxa.
04 – Correntes
Cada forja, explicou
Nove forjas compartilham o mesmo padrão UX – escolha um modo, defina um padrão, inicie trabalhadores – mas cada cadeia usa diferentes curvas, hashes e codificações de endereço.
Solana
Pares de chaves Ed25519 codificados como Base58 (chave pública de 32 bytes). Native Web Crypto Ed25519 é usado quando o navegador oferece suporte; caso contrário, um substituto WASM (watsign). Modos: wallet e mint — mesma chave matemática; O enquadramento mint é para fluxos mint personalizados da barra de lançamento. Exportar: matriz de bytes JSON Solana CLI.
EVM
secp256k1 → pubkey descompactado → keccak-256 → últimos 20 bytes → endereço 0x…. Uma chave privada produz o mesmo endereço em Ethereum, Base, Arbitrum, Optimism, BSC, Polygon e todas as outras redes EVM. Modos: carteira (EOA), CREATE no nonce 0, CREATE2 (grind salt ou grind implantador). Veja Modos abaixo.
Bitcoin
secp256k1. Três tipos de endereço: P2PKH legado (1…), SegWit P2WPKH nativo (bc1q…), Taproot P2TR (bc1p…). A exportação inclui WIF (compactado) para importação de carteira. O byte HRP / versão inicial é tratado para você ao digitar prefixos.
Tron
O mesmo caminho secp256k1 + keccak que EVM para o ID da conta de 20 bytes e, em seguida, Base58Check com byte de versão 0x41 → T…. Modos: wallet e CREATE (nonce 0), usando o mesmo layout RLP que EVM e depois codificação Tron.
Aptos
Ed25519. Endereço = sha3-256(pubkey ‖ 0x00) como hexadecimal. Compatível com Petra, Martian e outras carteiras Aptos que importam segredos hexadecimais.
Sui
Ed25519. Endereço = blake2b-256(0x00 ‖ pubkey) como hexadecimal (o byte do sinalizador marca o esquema). Importe para Sui Wallet / Suiet com a chave privada hexadecimal.
TON
Ed25519 + Contrato de carteira v4R2. Os endereços são formulários Base64url fáceis de usar: UQ… (não devolvível) e EQ… (devolvível). A correspondência diferencia maiúsculas de minúsculas. Importe para Tonkeeper/MyTonWallet.
Cardano
Endereço corporativo Ed25519 (CIP-19 tipo 6, somente chave de pagamento): cabeçalho 0x61 + hash de pagamento Blake2b-224, bech32 com HRP addr → addr1….
XRP
secp256k1 pubkey compactado → ID da conta RIPEMD160 (SHA256) → Verificação XRPL clássica Base58 → r…. Nota: XRPL usa um alfabeto Base58 diferente do Bitcoin.
05 — Modos
Carteira, hortelã, CREATE, CREATE2
Hortelã
Criptograficamente idêntico a um par de chaves de carteira. Os Launchpads solicitam um par de chaves / chave privada mint personalizado; Vanitas rotula o resultado como mint para que a exportação corresponda a esse fluxo de trabalho. Abra /sol?mode=mint, encontre um padrão, cole a chave em pump.fun, Raydium, Meteora, etc.
CREATE
O primeiro contrato implantado a partir de um EOA com nonce 0 possui endereço determinístico: keccak256(RLP([sender, 0]))[12:]. A Vanitas tritura EOAs até que o endereço do contrato derivado corresponda ao seu padrão. Você recebe a chave privada do implementador – implemente uma vez a partir de uma nova conta nonce-0.
CREATE2
Endereço = keccak256(0xff ‖ deployer ‖ salt ‖ initCodeHash)[12:]. Duas estratégias de moagem:
- create2-salt — corrige a chave do implantador + hash do código de inicialização; procure um sal que produza o endereço personalizado.
- create2-deployer — corrige salt + hash do código de inicialização; procure uma chave do implementador cujo endereço CREATE2 corresponda.
Você deve fornecer um initCodeHash correto (keccak do bytecode de implantação). Hash errado → endereço na cadeia errado.
06 — Trabalhadores
Arquitetura de desempenho
As fontes de trabalho residem em src/workers/*.worker.source.ts e são agrupadas com esbuild em public/*-worker.js. Cada compilação grava resumos SHA-256 em public/worker-hash.json para live audit.
Paralelismo
Núcleos de CPU - 1 (padrão)
Ajuste os threads se a máquina esquentar ou a interface do usuário travar
Velocidade Solana
Ed25519 nativo quando disponível
Chrome 113+ · Firefox 129+ · Safari 17+; senão WASM
Bibliotecas
@noble · tweetnacl · watsign · @ton/*
Criptografia JS/WASM pura auditada no navegador
Após uma descoberta, verificações de segurança de chave opcionais investigam a entropia, a disponibilidade do CSPRNG e um teste de uniformidade qui-quadrado em bytes aleatórios — confirmando que o caminho RNG do navegador parece íntegro.
07 – Prova
Prova de descoberta
Compartilhar prova cria um link público para /proof apenas com cadeia, endereço e padrão — nunca a chave privada. Qualquer pessoa pode abrir o link e verificar se o endereço corresponde ao prefixo/sufixo reivindicado no lado do 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
Descobertas recentes na IU usam sessionStorage apenas para metadados de endereço + padrão. Fechar a guia limpa esse histórico; as chaves não são armazenadas lá.
08 – CLI
Forja terminal
A mesma ideia fora do navegador: npx vanitas abre um assistente ou passa sinalizadores para parâmetros de cadeia, modo, prefixo, threads e CREATE2. Os resultados gravam um arquivo JSON com modo 0600 quando o sistema operacional oferece suporte. Pacote: npmjs.com/package/vanitas.
npx vanitas evm --mode contrato --prefix café --threads 8
09 – Verifique
Confirme você mesmo
- Abra DevTools → Rede, limpe o log, inicie uma forja — você deverá ver nenhuma solicitação durante a mineração.
- Carregue a página, fique offline, gere novamente – ainda funciona.
- Execute o live audit e compare os hashes de trabalho com
worker-hash.json. - Leia a fonte em GitHub — especialmente
src/workers/.
Lembrete
Salve sua chave privada antes de fechar a guia. As chaves perdidas não podem ser recuperadas. Para saldos grandes: teste primeiro com uma pequena transferência, prefira carteiras de hardware para custódia de longo prazo e nunca cole chaves em sites não confiáveis.










