A conviction layer for Meteora DBC launches
Launches that reward the people who stay.
A holdfast is the root that keeps kelp fixed to the rock while the tide pulls. Holdfast scores every holder by how much × how long they hold, shuts snipers out of the first minutes, and pays the score out as a perpetual share of the launch’s fees.
- 30 transfers blocked by the hook
- snipers: 0 SOL of rewards
- holders: 35.9 mSOL per SOL
- flippers: 0 SOL of rewards
- bundler: 5 fresh wallets, 5 rejections
- whale: stopped at 3%, then allowed at minute 2
- hook cost: ~13k compute units per transfer
- fees still flowing after graduation
What is staying worth?
You and 19 others hold 100 tokens each. 1 SOL of fees is paid out by conviction: tokens × time held. Move the sliders.
Patience compounds: each extra minute adds the same points as the last, so the share climbs the longer you stay.
Three moves.
A normal Meteora DBC bonding-curve launch on a Token-2022 mint whose transfer hook is Holdfast. One extra instruction in the creation transaction.
Every transfer updates your conviction: balance × seconds. Sell 30% of your bag and you forfeit 30% of your points. Moving tokens between wallets forfeits too.
At graduation conviction is frozen. Trading fees from the bonding curve, then the DAMM v2 pool, flow to holders pro rata for as long as the token trades.
Provably not a honeypot.
A transfer hook can block sales, so Holdfast bounds that power in the program itself. Every rule is fixed at launch and has a hard cap.
Opening window. Only registered wallets receive tokens (no bundles), with an optional max-wallet cap. Buys are snipe-locked.
Locks expire. A lock only applies to tokens bought in the window and ends at most 30 minutes later.
After 40 minutes, worst case, the hook cannot reject any transfer. At graduation Meteora removes the hook entirely.
The Arena, on devnet.
27 bots, one real launch. Snipers, a bundler and flippers against ten patient holders. Who got paid?
Built deep into Meteora.
- Dynamic Bonding Curve: transfer-hook pools, the exponential anti-sniper fee scheduler, dynamic fees.
- DAMM v2: graduation into a Compounding pool, with the partner LP permanently locked so its fees flow to holders.
- Dynamic Fee Sharing: one vault splits fees between holders, creator and treasury. On devnet, where DFS lacks a needed whitelist entry, a keeper does the split instead.
- Token-2022 transfer hook: the Holdfast program scores every transfer, and DBC removes it at graduation.
Questions, answered honestly
What is conviction, and how is it calculated?
Conviction is how much you hold × how long you hold it. Every transfer settles your points first (tracked balance × seconds since the last update) and then applies the move, so your points grow every second you hold, with no action from you.
Your share of the rewards is your points divided by everyone’s points. Points are linear in balance, so splitting a bag across wallets gains nothing.
Can Holdfast block me from selling?
Only at the start, and only for a bounded time. The rules are fixed at launch, and the program caps them: an opening window of at most 10 minutes, then a snipe-lock of at most 30 minutes on tokens bought inside that window.
After launch + window + lock (40 minutes worst case) the hook cannot reject any transfer. Sells outside the window are never blocked, and tokens bought after the window are never locked. The hook can reject in exactly three ways: RecipientNotRegistered and MaxWalletExceeded (window only) and SnipeLocked (only until your lock ends, and the error tells you when).
What happens at graduation?
When the bonding curve completes, Meteora’s DBC program revokes the transfer hook, so the token becomes a plain Token-2022 token that trades anywhere. The liquidity moves to a DAMM v2 pool (Compounding mode, with the partner LP locked forever). Holdfast freezes everyone’s conviction at that moment; from then on it is the fixed basis for splitting fees.
Where do the rewards come from, and who gets them?
From the launch’s own trading fees: first the bonding-curve fees, then the DAMM v2 LP fees for as long as the token trades. The fee stream is split between holders, the creator and a treasury (the default is 60 / 30 / 10, set at launch).
The holders’ part is paid out pro rata by final conviction points, in SOL. You claim it yourself from the token page. Only wallets registered with Holdfast earn; registration happens automatically on your first buy through the app or SDK.
What does selling cost me?
You forfeit points in proportion to what you move out. Sell 30% of your tracked balance and you lose 30% of your points; sell everything and you are back to zero. Moving tokens to another wallet counts the same, so it is not a way to hide a bag. The token page shows a preview of the loss before you sell. Selling is never forbidden after the opening rules end: it only costs you your place in the fee stream.
Is it live on mainnet?
No. This is a devnet demo, and it is not audited. The program was reviewed by its builders only (see docs/SECURITY.md), and that review found and fixed a real bug. It is tested against the real Meteora programs on a local validator, and end to end in a browser on devnet.
Known limits: the program is still upgradeable by its deployer (it would be made immutable before any mainnet use), and devnet fee splitting trusts a keeper (see below). Do not put real money behind it.
Why can’t I trade it on Jupiter during the bonding phase?
A transfer hook needs extra accounts on every transfer: here, the sender’s and receiver’s Holdfast records. The stock Meteora DBC SDK fills those in with placeholder keys, and aggregators generally don’t route hook tokens, so a plain swap fails. Trade through this app or @holdfast/sdk (which patches the accounts).
After graduation the hook is gone and the token trades like any other, including on aggregators.
How does a launchpad integrate it?
Three calls from @holdfast/sdk: createLaunch (a normal DBC launch on a Token-2022 mint whose hook is Holdfast), buy (registers the buyer on first use and fixes the hook accounts), and claim after graduation. The code is at the top of this page. Your launchpad keeps its curve, UI and users.
What’s the difference between the devnet and mainnet fee split?
Devnet uses a keeper. The devnet build of Meteora’s Dynamic Fee Sharing lacks a whitelist entry that hook pools need, so there the creator’s wallet claims the fees and deposits the holders’ share. That means holders trust the keeper to deposit honestly. Everything you see on devnet, including the Arena, worked this way.
Mainnet uses Dynamic Fee Sharing. A Meteora vault is the fee claimer and splits fees on-chain between holders, creator and treasury, with no one in the middle. That path is tested end to end against the mainnet program binaries, but it has not been run on mainnet.