Overview
A coin's name, ticker and image on Solana live in its Metaplex metadata account. Most launchpads lock that account at creation. Garlic keeps the update authority, so it can rewrite the metadata on-chain whenever the coin's creator or its holders ask.
Only the metadata changes. The mint, supply, balances, holders, chart and liquidity stay exactly as they are. Nobody migrates, claims or swaps anything.
Why it exists
A vamp is a coin that copies your narrative with a better name or ticker and pulls your holders over to it. On a normal launchpad you either launch again and ask everyone to move, or watch your chart bleed.
On Garlic you switch your coin to the better name, ticker and image, and your holders stay put. The vamp has nothing left to offer.
Terms
MUST, MUST NOT, SHOULD and MAY mean what they mean in RFC 2119.
The coin
Mint and supply
Every coin is a standard SPL Token mint with 6 decimals and a fixed supply of 1,000,000,000. The mint authority is revoked at creation, so supply can never change. The mint address is the coin's permanent ID and MUST stay the same for its whole life.
Metadata account
The coin's Metaplex metadata account MUST be created with is_mutable = true and the launchpad as update authority. This comes from the launchpad's Meteora Dynamic Bonding Curve config (tokenUpdateAuthority = PartnerUpdateAuthority), so every coin launched from it gets the same authority.
Identity
Off-chain document
Each identity points at a JSON document in the format wallets already read, plus two attributes: how many times the coin has changed and which mode it runs in.
{
"name": "Shapeshifter",
"symbol": "Shift",
"image": "https://ipfs.io/ipfs/bafy…",
"description": "What it is today.",
"showName": true,
"createdOn": "https://trygarlic.fun",
"twitter": "https://x.com/…",
"website": "https://…",
"attributes": [
{ "trait_type": "Changes", "value": 3 },
{ "trait_type": "Mode", "value": "vote" }
]
}Changes
The transaction
A change is one Solana transaction, signed and paid for by the update authority, with two instructions: the metadata rewrite and a memo marking it.
UpdateMetadataAccountV2 (Token Metadata, discriminator 15)
accounts
[w] metadata PDA("metadata", METAPLEX, mint)
[s] update_authority the launchpad
data
Some(DataV2 {
name, symbol, uri ← the new identity
seller_fee_basis_points ← carried over
creators, collection, uses ← carried over
})
update_authority None ← unchanged
primary_sale_happened None ← unchanged
is_mutable None ← unchanged
Memo <change number>The new image (if any) and metadata document are pinned to IPFS first. Every field the change doesn't touch is read from the current account and written back as is.
What never changes
A change MUST NOT touch any of these:
History
Each change bumps the coin's change count by one and is recorded with the old identity, the new one, who caused it and the transaction signature. The history is append-only and public on every coin page and on the changes page.
Modes
Every coin picks a mode at launch. The mode decides who gets to change the coin.
Creator mode
The creator changes the coin from its page: new name, ticker and optionally an image, then sign a message with the wallet that launched it. Signing is free. The launchpad pays for and sends the transaction. Only the launch wallet can request a change, and each request expires after five minutes.
Holder vote
Holders pick the coin's next identity. Each round, any holder can propose one name, ticker and image and cast one vote. Votes are weighted by each voter's balance when the round closes, so moving coins to a second wallet to vote twice doesn't help. When the round ends, the top proposal becomes the coin's new identity. No proposals, no change.
Signed requests
Creator changes, proposals and votes are authorized by an Ed25519 signature over a plain-text message, not a transaction. The wallet proves who it is; the launchpad's update authority does the write. The message is readable in the wallet prompt and lists the coin, the action, the exact values and when it was issued.
- 1RebuildThe server rebuilds the message from the request. Any difference in coin, values or time invalidates it.
- 2FreshnessThe
issuedtimestamp MUST be within five minutes of the server clock, so a signature can't be saved and replayed. - 3SignerCreator requests MUST verify against the wallet that paid for the launch. Votes and proposals MUST come from a holder.
- 4ExecuteOnly then is the change leased, pinned, signed by the update authority and sent.
Concurrency and safety
Creator changes and vote results go through one code path. Before anything runs it takes a lease: a conditional write that only succeeds if the coin is still at the expected change count and nothing else holds it. Leases expire after three minutes, so a crash can't lock a coin.
Trust model
The launchpad holds the update authority for every coin. That's what lets coins change without holders signing anything, and it means holders trust the launchpad to follow these rules.
Launch lifecycle
- 1Set upThe creator picks the launch name, ticker, image, socials and a mode.
- 2PinThe image and the launch metadata document are pinned to IPFS.
- 3CreateOne transaction creates the mint, metadata and bonding-curve pool from the launchpad's DBC config, with an optional first buy and a launch memo. The browser generates the mint keypair; it never leaves the creator's device.
- 4VerifyBefore sending, the server checks the signed transaction is the one it built and simulates it.
- 5LiveThe coin trades on its curve right away, and its mode is active.
- 6GraduateWhen the curve fills, liquidity migrates to a Meteora DAMM v2 pool. Changes keep working after graduation.
Market structure
Integrating
Detecting coins
A coin is from Garlic if its metadata account is mutable, its update authority is the launchpad's key, and its creation transaction carries the launch memo. Its metadata document lists a change count and a Mode attribute.
Tracking changes
Wallets and explorers SHOULD re-read a coin's metadata account when they see a transaction from its update authority carrying a change memo, and SHOULD NOT cache a coin's identity forever. The memo carries the change number, so an indexer can order changes without diffing accounts.
FAQ
Do I need to do anything when a coin I hold changes?
No. Same coin, same balance, same address. Your wallet shows the new name and image next time it refreshes.
Can a creator rug through a change?
A change only affects the name, ticker, image and description. It can't mint, move balances or touch liquidity; the update authority doesn't control those.
Someone vamped my coin. What do I do?
In creator mode, switch to their name, ticker and image from your coin's page. In holder vote, propose it and let holders vote it in.
Does a change break charts and screeners?
Charts follow the mint address, so price history carries across every name.
What if nobody proposes anything in a vote round?
Nothing happens. The coin keeps its current identity and a new round starts.
Versioning
Future revisions only add things. A coin keeps the guarantees of the revision it launched under.