01 — 概要
ヴァニタスとは
Vanitas は、クライアント側のマルチチェーン バニティ アドレス フォージです。プレフィックスやサフィックスを選択します。アプリは、パブリック アドレスがそのパターンに一致するキーペアを検索します。生成は、CPU 上の Web ワーカー で実行されます。秘密キーはデバイスのメモリ内に作成され、アップロードされることはありません。
バニティ アドレスは通常の暗号化アドレスのままです。秘密キーはランダムです。パブリック エンコーディングのみが希望どおりになるまでフィルタリングされます。これは、ブランド化、寄付、造幣局、記憶に残るパブリック ウォレットに役立ちます。
どこ
あなたのブラウザ · あなたの CPU
静的ホスティングのみ。マイニングではネットワーク呼び出しは行われません
鍛造品
9 チェーン + ターミナル CLI
ソラナ・EVM・ビットコイン・トロン・アプトス・スイ・TON・カルダノ・XRP
出力
アドレス + 秘密鍵
エクスポート形式はフォージによって異なります (JSON、16 進数、WIF など)。
02 — パイプライン
検索ループ
すべてのフォージは同じ高レベルのループに従い、何百万回も繰り返されます。
Secure random
crypto.getRandomValues draws a fresh private key — full entropy, every attempt.
- 暗号的に安全なランダム秘密キー (
crypto.getRandomValues) を描画します。 - チェーンのカーブ (Ed25519 または secp256k1) を使用して公開キーを導出します。
- チェーンが予期する方法 (Base58、hex、bech32 など) でアドレスをエンコードします。
- プレフィックス/サフィックス (およびモード ルール) と比較してください。
- 一致時: ワーカーを停止し、結果を表示します。オプションのサウンド/プルーフ/エクスポート。
ワーカーはこのループを CPU コア間で並行して実行します。 UI スレッドは応答性を維持します。進捗状況 (試行回数、レート、ETA) はワーカー メッセージから集計されます。 1 つのワーカーがヒットを見つけると、プールは終了します。
これが安全な理由
バニティ アドレスを検索しても、秘密キーは弱くなりません。公開アドレスが適切であると思われるまで、候補者を拒否することになります。これは、ランダムなキーを生成し、幸運なキーを保持するのと同じプロセスです。
03 — パターン
難易度、アルファベット、注意事項
予想される時間はパターンの長さとアルファベットのサイズに応じて変化します。余分な文字ごとに検索スペースが増加します。 Forge UI には、パターンと測定または想定されたハッシュ レートに基づいたライブ難易度の推定値が表示されます。
~65,536
expected attempts · EVM · Aptos · Sui · 16n
Base58
~58 シンボル
ソラナ、トロン、XRP (XRPL アルファベット)、ビットコインレガシー
16進数
16 個の記号 (0 ~ 9、a ~ f)
EVM、Aptos、Sui — マッチングでは大文字と小文字を区別しない
ベック32
bc1q / bc1p / addr1…
ビットコイン SegWit/Taproot、Cardano — 固定 HRP、次に文字セット
TON
Base64url
UQ… / EQ… — 大文字と小文字が区別されます
アルファベットの罠
- Solana / Bitcoin Base58 —
0、O、I、またはl(類似拒否) はありません。 - EVM —
0x以降の 16 進数のみ。a–fを超える文字は無効です。 - Tron — アドレスは
Tで始まります。次の文字は通常大文字です。大文字と小文字が区別される小文字の接頭辞は一致しないことがよくあります。 - プレフィックス + サフィックス — 両方の制約により難易度が倍増します。短く始めてください。自分のレートがわかったら、パターンを拡大してください。
04 — チェーン
すべての鍛冶の説明
9 つのフォージは同じ UX パターン (モードの選択、パターンの設定、ワーカーの開始) を共有しますが、各チェーンは異なるカーブ、ハッシュ、アドレス エンコーディングを使用します。
Solana
Ed25519 キーペアは Base58 (32 バイトの公開キー) としてエンコードされます。 Native Web Crypto Ed25519 は、ブラウザがサポートしている場合に使用されます。それ以外の場合は、WASM フォールバック (watsign)。モード: wallet と mint — 同じキー計算。 mint フレーミングは Launchpad のカスタム mint フロー用です。エクスポート: Solana CLI JSON バイト配列。
EVM
secp256k1 → 非圧縮公開鍵 → keccak-256 → 最後の 20 バイト → 0x… アドレス。 1 つの秘密キーは、Ethereum、Base、Arbitrum、Optimism、BSC、Polygon、およびその他すべての EVM ネットワーク上で同じアドレスを生成します。モード: ウォレット (EOA)、ノンス 0 での作成、CREATE2 (グラインド ソルトまたはグラインド デプロイヤ)。以下のモードを参照してください。
Bitcoin
secp256k1。 3 つのアドレス タイプ: レガシー P2PKH (1…)、ネイティブ SegWit P2WPKH (bc1q…)、Taproot P2TR (bc1p…)。エクスポートには、ウォレットのインポート用の WIF (圧縮) が含まれます。先頭の HRP / バージョン バイトは、プレフィックスを入力するときに処理されます。
Tron
20 バイトのアカウント ID の EVM と同じ secp256k1 + keccak パス、その後、バージョン バイト 0x41 → T… で Base58Check します。モード: ウォレットおよび CREATE (nonce 0)。EVM と同じ RLP レイアウトを使用し、次に Tron エンコーディングを使用します。
Aptos
Ed25519。アドレス = sha3-256(pubkey ‖ 0x00) (16 進数)。 Petra、Martian、および 16 進シークレットをインポートするその他の Aptos ウォレットと互換性があります。
Sui
Ed25519。アドレス = blake2b-256(0x00 ‖ pubkey) (16 進数) (フラグ バイトはスキームをマークします)。 16 進秘密キーを使用して、Sui Wallet / Suitet にインポートします。
TON
Ed25519 + ウォレット コントラクト v4R2。アドレスはユーザーフレンドリーな Base64url 形式です: UQ… (バウンス不可) および EQ… (バウンス可能)。一致では大文字と小文字が区別されます。 Tonkeeper / MyTonWallet にインポートします。
Cardano
Ed25519 エンタープライズ アドレス (CIP-19 タイプ 6、支払いキーのみ): ヘッダー 0x61 + Blake2b-224 支払いハッシュ、HRP addr → addr1… の bech32。
XRP
secp256k1 圧縮公開鍵 → RIPEMD160(SHA256) アカウント ID → XRPL クラシック Base58 チェック → r…。注: XRPL は、ビットコインとは異なる Base58 アルファベットを使用します。
05 — モード
ウォレット、ミント、CREATE、CREATE2
ミント
暗号的にはウォレットのキーペアと同一です。 Launchpad はカスタムのミント キーペア/秘密キーを要求します。 Vanitas は、エクスポートがそのワークフローと一致するように、結果に「ミント」というラベルを付けます。 /sol?mode=mint を開いてパターンを見つけ、そのキーを Pump.fun、Raydium、Meteora などに貼り付けます。
CREATE
nonce 0 の EOA からデプロイされた最初のコントラクトには、決定的なアドレス keccak256(RLP([sender, 0]))[12:] があります。 Vanitas は、派生したコントラクト アドレスがパターンと一致するまで EOA を粉砕します。デプロイヤーの秘密キーを受け取ります。新しい nonce-0 アカウントから 1 回デプロイします。
CREATE2
アドレス = keccak256(0xff ‖ deployer ‖ salt ‖ initCodeHash)[12:]。 2 つのグラインド戦略:
- create2-salt — デプロイヤ キー + 初期化コード ハッシュを修正します。バニティ アドレスを生成するソルトを検索します。
- create2-deployer — ソルト + 初期化コード ハッシュを修正します。 CREATE2 アドレスが一致するデプロイヤ キーを検索します。
正しい initCodeHash (展開バイトコードの keccak) を指定する必要があります。間違ったハッシュ→間違ったオンチェーンアドレス。
06 — 労働者
パフォーマンスアーキテクチャ
ワーカー ソースは src/workers/*.worker.source.ts の下に存在し、esbuild とともに public/*-worker.js にバンドルされます。各ビルドは、live audit の public/worker-hash.json に SHA-256 ダイジェストを書き込みます。
平行度
CPU コア - 1 (デフォルト)
マシンが熱くなったり、UI が途切れたりする場合はスレッドを調整します。
ソラナのスピード
ネイティブ Ed25519 (利用可能な場合)
Chrome 113 以降、Firefox 129 以降、Safari 17 以降。それ以外の場合は WASM
図書館
@noble · tweetnacl · watsign · @ton/*
ブラウザーで監査された pure-JS / WASM 暗号
検索後、オプションの 重要なセキュリティ チェック により、エントロピー、CSPRNG の可用性、およびランダム バイトのカイ 2 乗均一性テストが検査され、ブラウザーの RNG パスが正常であることが確認されます。
07 — 証明
発見の証拠
証明の共有は、チェーン、アドレス、パターンのみを使用して /proof へのパブリック リンクを構築します。秘密キーは構築しません。誰でもリンクを開いて、アドレスがクライアント側で要求されたプレフィックス/サフィックスと一致することを確認できます。
In the proof
- Public address
- Prefix / suffix pattern
- Chain · mode · timestamp
Never in the link
- Private key / seed
- Worker memory dumps
- Clipboard or exports
UI で最近見つかったものでは、アドレスとパターンのメタデータのみに sessionStorage が使用されています。タブを閉じるとその履歴は消去されます。キーはそこに保存されません。
08 — CLI
端子鍛造
ブラウザの外でも同じ考え方です。npx vanitas はウィザードを開くか、チェーン、モード、プレフィックス、スレッド、および CREATE2 パラメーターのフラグを渡します。 OS がサポートしている場合、結果はモード 0600 で JSON ファイルを書き込みます。パッケージ: npmjs.com/package/vanitas。
npx vanitas evm --mode Contract --prefix Cafe --threads 8
09 — 確認する
自分で確認してください
- DevTools → Network を開き、ログをクリアし、Forge を開始します。マイニング中は リクエストがない ことが表示されます。
- ページをロードし、オフラインにして、再度生成しても、引き続き機能します。
- live audit を実行し、ワーカー ハッシュを
worker-hash.jsonと比較します。 - GitHub、特に
src/workers/のソースを読んでください。










