The Ranks.fun Competition Playbook

How a ranks.fun category URL becomes a live Solana volume competition — what the import resolves, how pools stay current, and what you are actually paying for.

By VoltradePublished August 31, 20265 min read

Most token competitions track one token. A ranks.fun category tracks a set of them — a curated list of coins with a shared theme — and the whole list can be turned into a single competition from one URL. That changes what the campaign is for, so it is worth understanding exactly what the import does before you fund one.

The entry point

The flow starts at the ranks.fun launcher. You paste a category URL, connect a wallet, sign once, and you are dropped into the full competition setup with Solana tracking and the imported pools already prepared.

The URL check is strict and deliberate: only https://ranks.fun/c/<slug> or the www. variant is accepted, with nothing after the slug. A coin page, a search result, or a link carrying a trailing path will be rejected at the input rather than half-importing and producing a competition that tracks nothing.

What the import actually resolves

Pasting the category and importing runs a three-stage resolution:

  1. Category lookup. The slug is parsed out of /c/<slug> and used to fetch the category record — its name, slug, image and item count — plus the list of things in it.
  2. Mints. Every item's mint address is collected and deduplicated. That set is the definition of the category at import time.
  3. Pools. For each mint, DexScreener's Solana token endpoint is queried for pair addresses. Anything it returns is collected. On top of that, each item's own pool_pubkey is added as a fallback, so a coin DexScreener has not indexed yet still contributes a tracked pool. The union is deduplicated.

If the union comes back empty, the import fails with an explicit error rather than creating a competition with nothing to count. That is the single most important guard in the flow: a campaign with zero pools would run its whole window, pay out, and have measured nothing.

What you get back is the category's display metadata, the pool address list, and the mint list. The pool list is the contract of the competition. Volume that touches those pools counts. Everything else does not.

What gets stored on the competition

A ranks.fun competition is not a single-token competition, and the stored record says so:

FieldValue
Tracking chainsolana, fixed
Exchange linkthe canonical category URL
Tracked token nameRanks.fun
Tracked token symbolRANKS
Tracked token addressdeliberately null — a category has no one mint
Pool addressesthe resolved union from the import

The tracked-token fields being placeholders is not sloppiness. It is the honest representation of a basket: there is no single contract address to display, so none is claimed.

Pools do not stay frozen

This is the part that separates a category competition from a token competition. A ranks.fun category is editable at the source — coins can be added or removed while your competition is running.

The Solana leaderboard sync handles that directly. On each tick it re-imports the category from the campaign's stored URL, compares the resolved pool list against the stored one, and writes the new list when it has changed — refreshing the category name at the same time. If the re-import fails for any reason, it logs and keeps the existing tracking configuration rather than blanking the pool set.

The practical consequence for a campaign designer: you are buying volume on a list you do not control. If the category owner adds five coins on day three, your prize pool starts paying for volume on those too. That is fine when the category is the thing you are promoting — a theme, a launchpad cohort, a KOL basket — and it is the wrong tool when you want spend concentrated on one contract. For that, run a single-token competition instead.

Scoring, funding and publishing

Everything downstream is the standard on-chain path:

  • Market and type. Permissionless launches are spot volume competitions. Traders accrue 1 VXP per $1 of spot volume alongside your prize pool.
  • Day buckets. Days are anchored to the competition's start time, not to midnight UTC. A comp starting at 14:00 rolls its day at 14:00 — which is the boundary a daily cap or a raffle draw uses.
  • Funding. The payment rail follows the tracked chain, so a Solana competition funds its pool in USDC on Solana. The transfer is the pool plus the platform fee (10% by default), quoted as one total.
  • Status. The competition sits in a pending-payment state until the funding transfer is verified. It is not visible to traders as a live competition before that; the escrow is the credibility.
  • Publishing. Ranks.fun competitions are recognised server-side by the pattern of the stored category URL together with the Solana tracking chain, and clear the validation gate without an admin in the loop.

How to shape one

Three design notes specific to baskets:

Pro rata beats a tight podium. A category spreads attention across many tokens, so the field tends to be broader and less concentrated than a single-token launch. Fixed top-three tiers pay the same three cheques whether four wallets or four hundred showed up; pro rata makes a wider field work harder for the same pool.

Ask for a daily counted-volume cap. With many pools in scope, the cheapest way to farm a basket competition is size, not breadth. A per-trader per-day cap on counted volume is what stops one wallet ending the contest on day one — raw volume is still displayed, but only counted volume moves rank. It is not a field you will find in the launch wizard, though: the wizard does not send one, so a self-serve competition starts uncapped and the cap has to be set on the campaign by Voltrade. Raise it when you brief the campaign rather than expecting it on the create screen.

Say what the basket is. The competition page will show Ranks.fun and RANKS rather than a ticker. Put the actual theme in the name and description, because that is the only place a trader can read what they are being asked to trade.

Where to go next

Paste a category at the ranks.fun launcher, or compare the single-token path in how to run a competition for your pump.fun coin. For pool sizing by budget, read what a prize pool actually buys, and for the payout shape, choosing a payout structure for your campaign.

ranks-funsolanahow-to

Keep reading

Every trade is a competition

Join a live volume competition or PnL challenge across top venues — or launch your own in minutes.