Vanity Grindersolana

Launch your coin at your CA.

Pump.fun's website always picks the contract address for you. To launch at a vanity address you ground yourself, you create the coin through pump.fun's API instead. It's about ten minutes the first time, and you never hand your keys to anyone.

Before you start

You'll need

  • A vanity mint keypair. On the grinder, pick Token CA (mint), grind your pattern and press Download .json. Rename the file to mint.json.
  • A wallet with SOL. Enough for your dev buy plus about 0.03 SOL for fees. A fresh wallet just for launching is the safer choice, since you'll be pasting its private key into your terminal.
  • A computer with Node.js 18 or newer. Install the LTS version if you don't have it.

Launch on pump.fun

This uses PumpPortal's local transaction API. PumpPortal builds the "create coin" transaction, and the script signs it on your machine with your wallet and your vanity mint. Neither key leaves your computer.

  1. Make a launch folder

    Put three things in one folder: your mint.json, your coin image (say logo.png), and the launch script.

    Download launch-pump.mjs

  2. Install the two libraries it uses

    Open a terminal in that folder and run:

    npm install @solana/web3.js bs58
  3. Get a free Pinata key

    Your image and coin info need to live on IPFS. Make a free account at pinata.cloud, go to API Keys → New Key, give it admin access and copy the JWT.

  4. Fill in your coin

    Open launch-pump.mjs in any text editor and change the block at the top:

    const COIN = {
      name: 'My Coin',
      symbol: 'MYCOIN',
      description: 'Launched with a vanity CA.',
      image: './logo.png',
      twitter: '', telegram: '', website: '',
    };
    const DEV_BUY_SOL = 0.1;   // SOL you buy at launch, 0 for none
  5. Give it your keys for this session

    Export the launch wallet's private key (in Phantom: Settings → Manage Accounts → your account → Show Private Key). Set it and the Pinata key in the terminal so they're never saved in a file.

    Mac or Linux:

    export PRIVATE_KEY="your-wallet-private-key"
    export PINATA_JWT="your-pinata-jwt"

    Windows PowerShell:

    $env:PRIVATE_KEY="your-wallet-private-key"
    $env:PINATA_JWT="your-pinata-jwt"
  6. Do a dry run
    node launch-pump.mjs

    This sends nothing. It shows your vanity CA, checks the wallet has enough SOL, and checks nobody has already used that address.

  7. Launch
    node launch-pump.mjs --go

    It uploads your image, builds the transaction, signs it and sends it. When it finishes it prints your pump.fun link. Your coin is live at the address you ground.

If the public RPC is slow or rate-limits you, get a free RPC URL from Helius or QuickNode and set it with export RPC_URL="…" before launching.

Plain SPL token

For a token outside pump.fun, the Solana CLI takes your vanity keypair directly. This makes a Token-2022 token with built-in name, symbol and image.

  1. Create the token at your vanity address
    spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
      create-token --enable-metadata --decimals 6 mint.json
  2. Add name, ticker and metadata link

    The link points to a JSON file with name, symbol, description and image, hosted on IPFS (Pinata works).

    spl-token initialize-metadata YOUR_CA "My Coin" "MYCOIN" https://ipfs.io/ipfs/YOUR_METADATA_CID
  3. Mint the supply, then lock it
    spl-token create-account YOUR_CA
    spl-token mint YOUR_CA 1000000000
    spl-token authorize YOUR_CA mint --disable

    Disabling the mint authority means nobody can ever print more. Buyers check for this.

  4. Add liquidity

    Create a pool on Raydium or Meteora with your tokens and SOL. Until you do, nobody can buy it.

Keeping it safe

  • Treat mint.json like a private key, because it is one. Anyone who has it can create a token at your address before you do. Don't post it, don't send it to "helpers", and launch soon after grinding.
  • Never grind on someone else's server. This site generates keys inside your browser tab. Any site that sends you a key over the internet could have kept a copy.
  • Use a fresh launch wallet. You're pasting its key into a terminal. Keep only what you need for the launch in it, and move the coins and fees out afterwards.
  • Read the script before you run it. It's under 150 lines. The only places it talks to are Pinata, PumpPortal and your Solana RPC.

Questions

Does it have to end in "pump"?

No. Through the API you can use any address you ground. Ending in pump makes it look like a normal pump.fun coin. A custom word like your ticker makes the CA itself part of the meme.

Why can't I just use pump.fun's website?

The website creates the mint for you from its own pre-ground pool, and there's no upload slot for your own keypair. The API is the only way to bring your own.

Do I still get creator fees?

Yes. The wallet that signs the launch is the creator, same as launching on the site. As of October 2026 that's 0.30% of volume on the bonding curve, and more after graduation at lower market caps. Rates change, so check pump.fun's fee page.

The dry run says something already exists at my address.

That keypair has been used or leaked. Grind a new one. The grinder never reuses keys.

Should I tell people the CA before launch?

Sharing the address is safe, since only the keypair file can create the token. But it lets snipers set up in advance, so most people reveal it at launch.