npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vanity-address

v0.7.1

Published

Fast, offline, multi-chain vanity address generator — CLI + WASM SDK, no telemetry

Readme

vanity-address

Generate custom crypto wallet addresses that start, end, or contain YOUR word — 44 wallet chains including Solana, Ethereum, Bitcoin SegWit/Taproot. Plus vanity contract addresses and Solana token mints.

npm downloads License: MIT GitHub

100% offline · keys never leave your machine · no telemetry · open source

No terminal handy? Try it in your browser — same engine, nothing to install.

Guides: all supported chains · difficulty calculator · Solana · Ethereum · Bitcoin


What is a vanity address?

A normal crypto wallet address is random gibberish:

7xKpN4qwRnLB2fGhy9uMcVTAeWDs38ZjQaU5vXrE6bYt

A vanity address is a real, fully working wallet address that contains a word you choose — at the start or the end:

7xKpN4qwRnLB2fGhy9uMcVTAeWDs38ZjQaU5vXrmoon   ← ends with "moon"
DeFiN4qwRnLB2fGhy9uMcVTAeWDs38ZjQaU5vXrE6bY   ← starts with "DeFi"
0xdead...cafe                                  ← Ethereum with dead / cafe

Why would I want one?

  • Branding — projects, DAOs and creators use recognizable deposit addresses (...pump, ...dao, ...shop)
  • Personal identity — your name or handle in your wallet address
  • Easy verification — you (and your users) can spot the right address at a glance and avoid copy-paste scams

How does this tool make one?

There is no shortcut in cryptography — the tool rapidly generates millions of random keypairs per second on your CPU and keeps the first one whose address matches your pattern. That keypair is 100% standard: import the private key into Phantom, MetaMask, or any normal wallet and use it like any other account.

Everything runs locally on your machine. Nothing is sent anywhere.


Quick start

# No install needed — runs instantly
npx vanity-address

This opens an interactive wizard: pick a chain → type your word → see the time estimate → grind → get your keys.

Or install globally:

npm install -g vanity-address
vanity-address

Requires Node.js 18+. Works on macOS (Intel & Apple Silicon), Linux x64, Windows x64.


Examples

# Solana address ending in "moon"
npx vanity-address --chain sol --suffix moon

# Ethereum address starting with 0xdead
npx vanity-address --chain evm --prefix dead

# Both prefix AND suffix
npx vanity-address --chain sol --prefix Cool --suffix xyz

# Save the keys to a file (vanity-results.txt)
npx vanity-address --chain sol --suffix moon --save

# JSON output for scripts / automation
npx vanity-address --chain sol --suffix ax --json --no-benchmark

# EVM contract starting with 0xcafe (deployer's first deploy, nonce 0)
npx vanity-address --chain evm-contract --prefix cafe

# Tron contract starting with TCafe…
npx vanity-address --chain trx-contract --prefix Cafe

# CREATE2 salt for a known factory
npx vanity-address --create2 --deployer 0x… --init-code-hash 0x… --prefix cafe

# Solana token mint ending in "pump" → spl-token create-token mint.json
npx vanity-address --chain sol-mint --suffix pump

Example output:

  Chain     Solana
  Target    ending with 'moon'
  Expected  ~656M attempts (average)

⠋ 12.4M keys | 2,198,421 keys/s | ~5 min remaining

 Match found!

  Address   7xKpN4qwRnLB2fGhy9uMcVTAeWDs38ZjQaU5vXrmoon
  Time      142.31s

 Private Keys
  Never share these with anyone.

⏱ Tip: short patterns (3–4 characters) take seconds-to-minutes. Every extra character multiplies the time by ~30–60×. The tool shows an honest estimate before starting, so you can decide.


Supported chains (44)

| Chain | --chain | Address style | Works with | | ----- | --------- | ------------- | ---------- | | Algorand | algo | base32 | Pera, Defly | | Aptos | aptos | 0x hex | Petra | | Bitcoin | btc | base58 (P2PKH) | Electrum, Sparrow | | Bitcoin Gold | btg | base58 (P2PKH G…) | — | | Bitcoin SegWit | btc-segwit | bc1q… | Sparrow, Electrum | | Bitcoin Taproot | btc-taproot | bc1p… | Sparrow | | Canada eCoin | cdn | base58 (P2PKH C…) | — | | Cardano | ada | addr1… enterprise | — | | Celestia | tia | bech32 (celestia1…) | Keplr | | Cosmos | cosmos | bech32 (cosmos1…) | Keplr | | Dash | dash | base58 (P2PKH X…) | Dash Core | | DigiByte | dgb | base58 (P2PKH D…) | — | | Dogecoin | doge | base58 | — | | dYdX | dydx | bech32 | — | | Einsteinium | emc2 | base58 (P2PKH E…) | — | | Ethereum + all EVM | evm | 0x hex | MetaMask, Rabby, Base, Hyperliquid, Sonic, Robinhood… | | Filecoin | fil | f1… | Lotus, Glif | | Hedera | hedera | ed25519 pubkey hex | HashPack (0.0.N on-chain) | | Injective | inj | bech32 (inj1…) | Keplr | | Internet Computer | icp | principal | dfx / NNS | | Kaspa | kaspa | kaspa:… | Kaspium | | Kusama | ksm | SS58 ed25519 | Polkadot.js | | Litecoin | ltc | base58 | — | | Monacoin | mona | base58 (P2PKH M…) | — | | MultiversX | erd | bech32 (erd1…) | xPortal | | NEAR | near | hex implicit | — | | Novacoin | nvc | base58 (P2PKH 4…) | — | | Osmosis | osmo | bech32 (osmo1…) | Keplr | | Peercoin | ppc | base58 (P2PKH P…) | — | | Polkadot | dot | SS58 ed25519 | Polkadot.js | | Primecoin | xpm | base58 (P2PKH A…) | — | | Qtum | qtum | base58 (P2PKH Q…) | — | | Ravencoin | rvn | base58 (P2PKH R…) | — | | Ripple | xrp | base58 (r…) | — | | Sei | sei | bech32 (sei1…) | Compass | | Solana | sol | base58 | Phantom, Solflare | | Stellar | xlm | strkey (G…) | — | | Sui | sui | 0x hex | Sui Wallet | | Syscoin | sys | base58 (P2PKH S…) | — | | Tezos | xtz | tz1… | Temple, Kukai | | TON | ton | UQ… V4R2 | Tonkeeper | | Tron | trx | base58 (T…) | TronLink | | Vertcoin | vtc | base58 (P2PKH V…) | — | | Viacoin | via | base58 (P2PKH V…) | — |

Deploy modes

| Mode | How to run | What you get | | ---- | ---------- | ------------ | | EVM contract (CREATE) | --chain evm-contract | Deployer key whose first deploy (nonce 0) lands on your vanity contract | | Tron contract (CREATE) | --chain trx-contract | Same idea, Tron T… contract address | | EVM CREATE2 | --create2 --deployer … --init-code-hash … | Salt for a factory deploy (not a private key) | | Solana token mint | --chain sol-mint | Mint keypair JSON for spl-token create-token mint.json |


All flags

| Flag | What it does | | ---- | ------------ | | --chain <ID> | Which blockchain or deploy mode (see tables above) | | --prefix <WORD> | Address must start with this (* OK) | | --suffix <WORD> | Address must end with this (* OK) | | --contains <WORD> | Address must contain this (* OK) | | --count <N> | Find N matches | | --exact | Match upper/lowercase exactly | | --save | Save keys to vanity-results.txt (owner-only on macOS/Linux) | | --output <PATH> | Custom file for saved keys | | --json | Machine-readable output | | --threads <N> | Limit CPU threads used | | --no-benchmark | Skip the 2s speed warm-up | | -q, --quiet | Minimal output |

Full guide with pattern rules per chain: docs/USAGE.md


Programmatic API

const {
  generateAddress,
  estimateDifficulty,
  listChains,
  listDeployModes,
} = require("vanity-address");

listDeployModes(); // evm-contract, trx-contract, sol-mint, create2
// Aliases: contract → evm-contract, mint → sol-mint, tron-contract → trx-contract

console.log(estimateDifficulty({ chain: "evm", prefix: "abc", workers: 4 }));

const wallet = await generateAddress({
  chain: "evm",
  prefix: "abc",
  workers: 4, // Node: multi-core by default
  onProgress: (attempts, { keysPerSec, etaSeconds }) => {
    /* ... */
  },
});
console.log(wallet.address, wallet.privateKey);

// CREATE2 — pass deployer + initCodeHash; privateKey is the salt
await generateAddress({
  chain: "create2",
  prefix: "cafe",
  deployer: "0xYourFactory…",
  initCodeHash: "0x…",
});

Also: generateAddresses({ count }), validatePattern(), isValidChain(), timeoutMs, AbortSignal.

Supports import (ESM) and require (CJS). Node uses a worker_threads pool by default; browsers stay single-threaded.

📖 Full guide: docs/SDK.md


Is it safe?

| Question | Answer | | -------- | ------ | | Does it send my keys anywhere? | No. The tool makes zero network connections. | | Are the wallets real? | Yes — standard keypairs, importable into Phantom / MetaMask / etc. | | Is it open source? | Yes, MIT licensed — read the code | | Telemetry / analytics? | None. | | Saved key files? | Created owner-only (0600) on macOS/Linux; secrets wiped from memory after use. |

⚠️ Golden rule: whoever has the private key controls the funds. Never share it, and protect vanity-results.txt if you use --save.


How the npm package works

This package doesn't compile anything on your machine. It ships a pre-built native binary (written in Rust) for your platform via optionalDependencies — the same approach used by esbuild and Biome:

| Platform package | For | | ---------------- | --- | | vanity-address-darwin-arm64 | macOS Apple Silicon (M1–M4) | | vanity-address-darwin-x64 | macOS Intel | | vanity-address-linux-x64 | Linux x86_64 | | vanity-address-win32-x64 | Windows x64 |

npm installs only the one matching your OS. No postinstall scripts. Binaries are built by GitHub Actions and are identical to the GitHub Release assets.

Speed: grinds on all CPU cores in parallel — millions of keys per second on modern hardware.


Prefer another install method?

| Method | Command | | ------ | ------- | | Homebrew (macOS/Linux) | brew tap yudizaxay/tap && brew trust yudizaxay/tap && brew install vanity-address | | Cargo (Rust) | cargo install vanity-address | | Direct download | GitHub Releases | | Desktop app (GUI) | .dmg / .exe downloads — same engine, point-and-click |


Links


MIT © yudizaxay

If this saved you time, star the repo ⭐