splitkey

Solana: vanity token mints

Many Solana tokens are launched at a vanity mint address, like …pump. The mint address is a key pair like any other, and whoever ground it knows its private key. For a mint, that knowledge stops mattering the moment the mint is created.

Why

A mint is created by two instructions, signed by the payer and by the mint key:

ix 1  SystemProgram.createAccount   new account: the mint address
                                    owner: SPL Token or Token-2022
ix 2  InitializeMint2               mint authority: your wallet

The mint key is needed only in the first one, because a new account must sign its own creation. Afterwards:

So a copy of the mint key, the seller's or anyone's, can do nothing. This is why a pre-generated vanity mint key can be sold without long-term trust. It is not true for wallet addresses, whose key keeps full control forever; for those, see split-key.

Caveats

Check it yourself

  1. Paste the mint address on the verify page, or open it in an explorer.
  2. The owner must be the SPL Token or Token-2022 program, not the System program.
  3. The mint authority (and freeze authority, if any) must be your keys.
  4. For Token-2022, no close authority should be set.

Status

The reasoning above follows from how the System and token programs check ownership and signers. We are publishing a devnet demonstration: it creates mints at vanity addresses and tries every move a holder of the mint key could make, and each must fail. Its results will be added here when it has run.