trygarlic.fun
HomeExploreChangesLaunchDocumentation
@trygarlic
Ctrl K
Launch Coin
On this page0%
8 min read
Introduction
  • Overview
  • Why it exists
  • Terms
How it works
  • The coin
    • Mint and supply
    • Metadata account
    • Identity
    • Off-chain document
  • Changes
    • The transaction
    • What never changes
    • History
  • Modes
    • Creator mode
    • Holder vote
Security
  • Signed requests
  • Concurrency and safety
  • Trust model
Launch and market
  • Launch lifecycle
  • Market structure
Reference
  • Integrating
    • Detecting coins
    • Tracking changes
  • FAQ
  • Versioning
Docs/Overview

PvP, solved once and for all.

Garlic is the first anti-vamp launchpad. Coins launched here can change their name, ticker and image after launch. Same mint, same holders, same chart. If someone vamps your narrative with a better ticker, take it and keep your holders.

Live on mainnetUpdated October 26, 20268 min read
Launch a coinPick a name, ticker, image and mode. Live in one transaction.Creator modeThe launch wallet signs a message and the coin changes.Holder voteHolders propose and vote by balance. Top proposal wins.

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.

TermMeaning
CoinAn SPL token launched on Garlic. Its metadata account is mutable and controlled by the launchpad.
IdentityThe coin's name, symbol and URI, plus the image and description the URI points to.
ChangeOne transaction that replaces a coin's identity. Nothing else about the coin is touched.
Change countHow many times a coin's identity has changed. Zero at launch, plus one per change.
Update authorityThe key the Token Metadata program lets rewrite the metadata account. Here, the launchpad.
ModeWho decides the coin's identity: the creator (creator mode) or its holders (holder vote).
LeaseA short lock so only one change runs per coin at a time.

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.

Invariant
The launchpad never transfers the update authority and never sets is_mutable to false. If a coin's metadata is found immutable, or its authority isn't the launchpad, the coin is marked dormant and never changed again.

Identity

FieldRule
name1 to 32 characters.
symbol1 to 10 letters or digits. Case is kept.
uriAn IPFS document (https://ipfs.io/ipfs/…), at most 200 bytes, pinned by the launchpad.
imagePNG, JPEG, WEBP or GIF, up to 5 MB, pinned to IPFS. A change without an image keeps the current one.
descriptionOptional, up to 500 characters.

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.

metadata.jsonjson
{
  "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.

Change transaction layouttext
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:

Never changesWhy it matters
Mint addressWallets, pools, charts and integrations keep pointing at the same coin.
Supply and decimalsNo dilution. The mint authority is gone.
Balances and token accountsHolders do nothing. Nothing to migrate or claim.
Liquidity poolThe bonding curve, and after graduation the DAMM v2 pool, keep trading the same mint.
Update authority, mutabilityThe rules can't be changed quietly later.
Royalties, creators, collectionCarried over byte for byte.

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.

ModeWho decidesWhenSwitchable
Creator modeThe creatorAny time they sign a requestCan switch to holder vote
Holder voteHolders, weighted by balanceWhen each round closesCan switch to creator mode

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.

  1. 1
    Rebuild
    The server rebuilds the message from the request. Any difference in coin, values or time invalidates it.
  2. 2
    Freshness
    The issued timestamp MUST be within five minutes of the server clock, so a signature can't be saved and replayed.
  3. 3
    Signer
    Creator requests MUST verify against the wallet that paid for the launch. Votes and proposals MUST come from a holder.
  4. 4
    Execute
    Only 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.

SituationOutcome
Two requests for the same coin at onceOne gets the lease; the other is told a change is in progress.
Transaction fails on-chainThe lease is released, nothing is recorded, the coin keeps its identity.
Metadata found immutable or not oursThe coin is marked dormant and skipped from then on.

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.

The launchpad canThe launchpad cannot
Rewrite a coin's name, ticker, image and descriptionMint coins, change supply or decimals
Pay for and send change transactionsMove, freeze or touch anyone's balance
Stop changes for a coin (dormancy)Change the pool or move graduated liquidity
Caution
A coin's name and image can change. Judge it by its mint address, history and market, not the name it has today.

Launch lifecycle

  1. 1
    Set up
    The creator picks the launch name, ticker, image, socials and a mode.
  2. 2
    Pin
    The image and the launch metadata document are pinned to IPFS.
  3. 3
    Create
    One 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.
  4. 4
    Verify
    Before sending, the server checks the signed transaction is the one it built and simulates it.
  5. 5
    Live
    The coin trades on its curve right away, and its mode is active.
  6. 6
    Graduate
    When the curve fills, liquidity migrates to a Meteora DAMM v2 pool. Changes keep working after graduation.

Market structure

ParameterValue
CurveMeteora Dynamic Bonding Curve, quoted in SOL
Supply1,000,000,000, fixed
Starting market cap≈ 30 SOL
Graduation≈ 550 SOL market cap (≈ 104 SOL in the curve)
Trading fee2% on the curve, 2% on the graduated pool
Graduated liquidityMigrated to Meteora DAMM v2 and permanently locked

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

RevisionDateChanges
v12026-10-26Launch: creator mode and holder vote; signed requests; leases; dormancy.

Future revisions only add things. A coin keeps the guarantees of the revision it launched under.

Ready to launch?

Pick a mode and go live in one transaction. You can change the name, ticker and image later.

Launch a coinExplore coins
Last updated October 26, 2026Questions? @trygarlic on X