Documents

Comment ça marche

Scroll down
Une visite complète de Vanitas : comment fonctionne le vanity mining, ce que produit chaque forge, comment les ouvriers recherchent en parallèle et comment vérifier que rien ne quitte votre machine.

01 — Aperçu

Qu'est-ce que Vanitas

Vanitas est une forge d'adresses personnalisées multi-chaînes côté client. Vous choisissez un préfixe et/ou un suffixe ; l'application recherche une paire de clés dont l'adresse publique correspond à ce modèle. La génération s'exécute dans Web Workers sur votre processeur. Les clés privées sont créées en mémoire sur votre appareil et ne sont jamais téléchargées.

Une adresse personnalisée est toujours une adresse cryptographique normale. La clé privée est aléatoire ; seul l'encodage public est filtré jusqu'à ce qu'il ressemble à ce que vous souhaitez – utile pour l'image de marque, les dons, les monnaies et les portefeuilles publics mémorables.

Votre navigateur · votre CPU

Hébergement statique uniquement ; le minage ne fait aucun appel réseau

Forges

9 chaînes + borne CLI

Solana · EVM · Bitcoin · Tron · Aptos · Sui · TON · Cardano · XRP

Sortir

Adresse + clé privée

Les formats d’export dépendent de la forge (JSON, hex, WIF, …)

02 — Pipeline

La boucle de recherche

Chaque forge suit la même boucle de haut niveau, répétée des millions de fois :

Vanitas search loopMISS → AGAIN01RNG02DERIVE03ENCODE04MATCH05DONE

Secure random

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

Fig. — Search loop · click a stage
  1. Dessinez une clé privée aléatoire cryptographiquement sécurisée (crypto.getRandomValues).
  2. Dérivez la clé publique avec la courbe de la chaîne (Ed25519 ou secp256k1).
  3. Encodez l'adresse comme prévu par la chaîne (Base58, hex, bech32, …).
  4. Comparez avec votre préfixe/suffixe (et vos règles de mode).
  5. Sur match : arrêter les ouvriers, afficher le résultat, son/preuve/export en option.

Les travailleurs exécutent cette boucle en parallèle sur les cœurs du processeur. Le fil de discussion de l'interface utilisateur reste réactif ; la progression (tentatives, taux, ETA) est agrégée à partir des messages du travailleur. Lorsqu'un travailleur trouve un résultat positif, le pool est terminé.

Pourquoi c'est sécurisé

La recherche d'une adresse personnalisée n'affaiblit pas la clé privée. Vous rejetez des candidats jusqu'à ce que l'adresse publique semble correcte – le même processus que pour générer des clés aléatoires et conserver la plus chanceuse.

03 — Modèles

Difficulté, alphabets, avertissements

Échelles de temps attendues avec la longueur du motif et la taille de l'alphabet. Chaque caractère supplémentaire multiplie l'espace de recherche. L'interface utilisateur de Forge affiche une estimation de la difficulté en direct basée sur votre modèle et un taux de hachage mesuré ou supposé.

Pattern length4 chars

~65,536

expected attempts · EVM · Aptos · Sui · 16n

Fig. — Difficulty explorer · drag length · pick alphabet

Base58

~58 symboles

Solana, Tron, XRP (alphabet XRPL), héritage Bitcoin

Hex

16 symboles (0–9, a–f)

EVM, Aptos, Sui – insensible à la casse pour la correspondance

Bech32

bc1q / bc1p / adresse1…

Bitcoin SegWit/Taproot, Cardano – correction du HRP, puis du jeu de caractères

TON

URL de base64

UQ… / EQ… – sensible à la casse

Pièges alphabétiques

  • Solana / Bitcoin Base58 — pas de 0, O, I ou l (rejet de sosie).
  • EVM — uniquement hexadécimal après 0x. Les lettres au-delà de a–f ne sont pas valides.
  • Tron — les adresses commencent par T ; le caractère suivant est généralement en majuscule. Les préfixes minuscules sensibles à la casse ne correspondent souvent jamais.
  • Préfixe + suffixe — les deux contraintes multiplient la difficulté. Commencez court ; développez le modèle une fois que vous connaissez votre taux.

04 — Chaînes

Chaque forge expliquée

Neuf forges partagent le même modèle UX – choisissez un mode, définissez un modèle, démarrez les travailleurs – mais chaque chaîne utilise des courbes, des hachages et des encodages d'adresse différents.

Solana

Paires de clés Ed25519 codées en Base58 (clé publique de 32 octets). Native Web Crypto Ed25519 est utilisé lorsque le navigateur le prend en charge ; sinon un repli WASM (watsign). Modes : wallet et mint — mêmes calculs clés ; Le cadrage menthe est destiné aux flux menthe personnalisés du tableau de bord. Exporter : tableau d'octets Solana CLI JSON.

EVM

secp256k1 → clé publique non compressée → keccak-256 → 20 derniers octets → adresse 0x…. Une clé privée donne la même adresse sur Ethereum, Base, Arbitrum, Optimism, BSC, Polygon et tous les autres réseaux EVM. Modes : portefeuille (EOA), CREATE à occasionnel 0, CREATE2 (grind salt ou grind déployer). Voir Modes ci-dessous.

Bitcoin

secp256k1. Trois types d'adresses : P2PKH hérité (1…), SegWit P2WPKH natif (bc1q…), Taproot P2TR (bc1p…). L'exportation inclut WIF (compressé) pour l'importation de portefeuille. L'octet HRP/version de tête est géré pour vous lors de la saisie des préfixes.

Tron

Même chemin secp256k1 + keccak que EVM pour l'ID de compte de 20 octets, puis Base58Check avec l'octet de version 0x41T…. Modes : wallet et CREATE (nonce 0), utilisant la même disposition RLP que l'encodage EVM puis Tron.

Aptos

Ed25519. Adresse = sha3-256(pubkey ‖ 0x00) en hexadécimal. Compatible avec les portefeuilles Petra, Martian et autres Aptos qui importent des secrets hexadécimaux.

Sui

Ed25519. Adresse = blake2b-256(0x00 ‖ pubkey) en hexadécimal (l'octet d'indicateur marque le schéma). Importez dans Sui Wallet / Suiet avec la clé privée hexadécimale.

TON

Ed25519 + Contrat de portefeuille v4R2. Les adresses sont des formulaires Base64url conviviaux : UQ… (non rebondissant) et EQ… (rebondissant). La correspondance est sensible à la casse. Importez dans Tonkeeper / MyTonWallet.

Cardano

Adresse d'entreprise Ed25519 (CIP-19 type 6, clé de paiement uniquement) : en-tête 0x61 + hachage de paiement Blake2b-224, bech32 avec HRP addraddr1….

XRP

Clé publique compressée secp256k1 → ID de compte RIPEMD160 (SHA256) → Contrôle XRPL classique Base58 → r…. Remarque : XRPL utilise un alphabet Base58 différent de celui de Bitcoin.

05 — Modes

Portefeuille, menthe, CREATE, CREATE2

Menthe

Cryptographiquement identique à une paire de clés de portefeuille. Les Launchpads demandent une paire de clés Mint/clé privée personnalisée ; Vanitas qualifie le résultat de menthe afin que l'exportation corresponde à ce flux de travail. Ouvrez /sol?mode=mint, trouvez un motif, collez la clé dans pump.fun, Raydium, Meteora, etc.

CREATE

Le premier contrat déployé à partir d'un EOA avec un nonce 0 a une adresse déterministe : keccak256(RLP([sender, 0]))[12:]. Vanitas broie les EOA jusqu'à ce que cette adresse de contrat dérivée corresponde à votre modèle. Vous recevez la clé privée du déployeur : déployez une fois à partir d'un nouveau compte nonce-0.

CREATE2

Adresse = keccak256(0xff ‖ deployer ‖ salt ‖ initCodeHash)[12:]. Deux stratégies de mouture :

  • create2-salt — correction de la clé du déployeur + hachage du code d'initialisation ; recherchez un sel qui donne l'adresse personnalisée.
  • create2-deployer — correction du hachage du code salt + init ; recherchez une clé de déploiement dont l'adresse CREATE2 correspond.

Vous devez fournir un initCodeHash correct (keccak du bytecode de déploiement). Mauvais hachage → mauvaise adresse en chaîne.

06 — Travailleurs

Architecture performante

Les sources de travail vivent sous src/workers/*.worker.source.ts et sont regroupées avec esbuild dans public/*-worker.js. Chaque build écrit les résumés SHA-256 dans public/worker-hash.json pour le live audit.

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

Parallélisme

Cœurs de processeur - 1 (par défaut)

Ajustez les fils si la machine chauffe ou si l'interface utilisateur bégaie

Vitesse Solana

Natif Ed25519 lorsque disponible

Chrome 113+ · Firefox 129+ · Safari 17+ ; sinon WASM

Bibliothèques

@noble · tweetnacl · watsign · @ton/*

Crypto pur-JS / WASM audité dans le navigateur

Après une recherche, des vérifications de sécurité clés facultatives sondent l'entropie, la disponibilité de CSPRNG et un test d'uniformité du chi carré sur des octets aléatoires — confirmant que le chemin RNG du navigateur semble sain.

07 — Preuve

Preuve de découverte

Share proof crée un lien public vers /proof avec une chaîne, une adresse et un modèle uniquement — jamais la clé privée. N'importe qui peut ouvrir le lien et vérifier que l'adresse correspond au préfixe/suffixe revendiqué côté client.

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

Les découvertes récentes dans l'interface utilisateur utilisent sessionStorage uniquement pour les métadonnées d'adresse et de modèle. La fermeture de l'onglet efface cet historique ; les clés n’y sont pas stockées.

08 — CLI

Forge terminale

Même idée en dehors du navigateur : npx vanitas ouvre un assistant ou transmet des indicateurs pour les paramètres chaîne, mode, préfixe, threads et CREATE2. Les résultats écrivent un fichier JSON avec le mode 0600 lorsque le système d'exploitation le prend en charge. Forfait : npmjs.com/package/vanitas.

npx vanitas evm --mode contrat --prefix café --threads 8

09 — Vérifier

Confirmez-le vous-même

  1. Ouvrez DevTools → Réseau, effacez le journal, démarrez une forge — vous ne devriez voir aucune demande pendant l'exploitation minière.
  2. Chargez la page, déconnectez-vous, générez à nouveau – cela fonctionne toujours.
  3. Exécutez le live audit et comparez les hachages des travailleurs à worker-hash.json.
  4. Lisez la source sur GitHub – en particulier src/workers/.

Rappel

Enregistrez votre clé privée avant de fermer l'onglet. Les clés perdues ne peuvent pas être récupérées. Pour les soldes importants : testez d'abord avec un petit transfert, préférez les portefeuilles matériels pour une conservation à long terme et ne collez jamais de clés sur des sites non fiables.