Documentos

Como funciona

Scroll down
Um tour completo pela Vanitas: como funciona a mineração personalizada, o que cada forja produz, como os trabalhadores pesquisam em paralelo e como verificar se nada sai da sua máquina.

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:

Vanitas search loopMISS → AGAIN01RNG02DERIVE03ENCODE04MATCH05DONE

Secure random

crypto.getRandomValues draws a fresh private key — full entropy, every attempt.

Fig. — Search loop · click a stage
  1. Desenhe uma chave privada aleatória criptograficamente segura (crypto.getRandomValues).
  2. Derive a chave pública com a curva da cadeia (Ed25519 ou secp256k1).
  3. Codifique o endereço da maneira que a cadeia espera (Base58, hex, bech32,…).
  4. Compare com seu prefixo/sufixo (e regras de modo).
  5. 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.

Pattern length4 chars

~65,536

expected attempts · EVM · Aptos · Sui · 16n

Fig. — Difficulty explorer · drag length · pick alphabet

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, I ou l (rejeição semelhante).
  • EVM — somente hexadecimal após 0x. Letras além de a–f sã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 0x41T…. 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 addraddr1….

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.

Parallel workers4
Web Worker poolMAIN THREADUI · progress · stopW1GRINDW2GRINDW3GRINDW4GRINDFIRST HIT → TERMINATE POOL
Fig. — Worker pool · adjust threads

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
Fig. — Proof of find · shareable vs private

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

  1. Abra DevTools → Rede, limpe o log, inicie uma forja — você deverá ver nenhuma solicitação durante a mineração.
  2. Carregue a página, fique offline, gere novamente – ainda funciona.
  3. Execute o live audit e compare os hashes de trabalho com worker-hash.json.
  4. 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.