How it works, including the parts that do not.

Short, because the product is small on purpose. Every limit below comes from the stack rather than from a roadmap.

What Quoin is

A launchpad on Solana built on Meteora’s Dynamic Bonding Curve. A creator sets the rules a launch runs under. Those rules live in a Token-2022 transfer hook, which Token-2022 calls on every single transfer of the token while it is on its curve. The hook can let the transfer through or refuse it, and that is the entire mechanism.

The program is one Anchor program with three instructions: publishing the rules for a mint, writing the list of accounts Token-2022 must hand the hook, and the hook itself.

The four rules

Trading start

start_slot, a u64. Before that slot, every transfer of the token is refused, from anyone, in any direction. Not throttled: refused.

Buy cap

max_buy_bps, a u16 between 1 and 10 000. A buy is a transfer out of the pool’s base vault. The cap is a share of what that vault held immediately before the transfer, so it scales down as the reserve empties rather than staying a fixed number of tokens. 10 000 means no cap at all.

Guard window

guard_slots, a u64, counted from start_slot. The cap applies inside the window and is gone after it. It lifts on its own and there is no instruction that puts it back.

Buy counter

buys, a u64. Incremented on every buy, in an account anyone can read. It is the only thing in the program that writes anything, and that has a cost worth knowing: the rules account is writable during a transfer, so two transfers of the same token cannot execute in parallel. For buys this costs nothing, because a swap already locks the pool. It does mean an ordinary wallet-to-wallet transfer queues behind swaps.

What a transfer hook cannot do

This is why the list above is four items rather than twenty. All three of these were established by reading Meteora’s and SPL’s source rather than their documentation.

  • It cannot move value. The source and destination token accounts arrive read-only, and a re-entrancy lock forbids calling Token-2022 from inside the hook. There is no fee to take, nothing to burn, nothing to pay out.
  • It cannot create accounts. A transfer carries no payer and no system program, so every account the hook touches has to exist already. That rules out per-wallet state: a first-time buyer’s account would not exist, their buy would fail, and the token would look broken anywhere except on a site that knew to create it first. So the rules are global.
  • It is revoked at graduation. Meteora’s process_swap.rs calls revoke_transfer_hook the moment the curve completes, which sets the mint’s hook to none and drops the authority.

What happens at graduation

The hook is removed, the rules stop applying, and the token becomes an ordinary Token-2022 in an ordinary pool. Nothing on this site governs it after that. This is not a limitation we are working around; it is the shape of the product, and it is the reason the front page says so in the largest type on it.

How a launch is put together

DBC creates the mint, not us. Its pool instruction makes the Token-2022 mint with the hook extension already attached, which means the rules have to be published after the pool exists and before the first swap.

That order leaves a gap, and the gap matters. The mint’s address is public the moment the pool transaction lands, the rules live at an address derived from it, and an address can only be initialised once. A stranger who published rules first, with a start slot far in the future, would leave the token permanently untradeable with no second chance.

So initialize_rules requires the mint itself to sign. In DBC’s pool instruction the base mint is a signer and not a derived address, which means its key belongs to whoever created the pool and to nobody else. The gap closes on the chain rather than by hoping the two instructions share a transaction, though they do share one.

Where this site gets its numbers

There is no database and no indexer. Every launch is one rules account owned by the program, so the list is one getProgramAccounts call filtered to that account type, and the account already carries the mint, the start slot, the cap, the guard length and the buy count. Names come off the mints themselves, where Token-2022 keeps them. Curve progress comes from the DBC pool account.

The honest cost: getProgramAccounts is a heavy call and public endpoints throttle or refuse it. When the table says the chain would not answer, that is usually what happened, and the page says so rather than showing you an empty table. Where an endpoint offers the paginated form of that call the site walks it instead, so that a day with more launches than fit in one response is a day with more requests rather than an empty page.

What has been proven, and what has not

Every rule is exercised by tests on a local validator, including the one that matters most: a transfer before the start slot is refused, which means the hook can read the clock. A second suite runs the same rules against Meteora’s bonding curve itself, copied from mainnet into the local ledger, so the pool, the mint and the swap are the real program rather than a stand-in for it. The launch opens, the rules go in beside it in one transaction, buys are capped and counted, sells are not, and when the curve completes Meteora takes the hook away.

  • There has been no audit. Tests are not an audit and should not be read as one.
  • Nothing has run on a public network. A local copy of a program behaves like the program; it does not prove anything about congestion, priority fees, or how other people’s software reacts to a token like this.

While it is on the curve, this is the only place it trades

Jupiter will not quote a token whose mint carries a transfer hook. We checked this against mainnet rather than guessing: of the ten hooked launches holding the most SOL, the largest with 56 SOL in it, every one comes back TOKEN_NOT_TRADABLE. Launches on the same curve without a hook are quoted, and Jupiter names the route “Dynamic Bonding Curve”, so it is the hook that is refused and not the curve.

That is the trade the rules cost, and it is worth knowing before you launch rather than after. No aggregator and no other interface will show your token while it is rising. This page and this site are the market.

It ends at graduation. Meteora revokes the hook the moment the curve completes, and from then on the token is quoted and routed like any other.

The program

Eq5JNHuwCp65aCCqLeHxF8i9G66NjxrSEYSkrptez6T4