Platform › Project launches › Referrals and KOLs

Project launches

Referrals and KOLs

How a referrer is bound to a launch and paid for life, and how KOLs share a launch's fee window.

Version
1.0
Updated
2026-10-14
Source
Launchpad contract sources · Launchpad contracts — design reference, parts 1 and 2

Status#

How a referrer is bound#

Binding a launch's referrer
RuleHow it holds
Whose referrerThe creator’s own, as the platform recorded it when the creator signed up
Carried byA LaunchAttestor signature over factory, creator, referrer, expiry and nonce. Any other referrer fails the signature check.
Unsigned launchNo referrer; naming one reverts
Self-referralRefused
WrittenReferralLedger.setReferrer(curve, referrer) in the launch transaction
At graduationCopied to the launch’s locker, so pool fees keep paying the same referrer
ChangeableNever — referrerOf is write-once

What a referrer earns#

A referrer takes a rate of the protocol’s share of every fee the launch pays, for the life of the launch: on the curve, and after graduation from the pool.

Referral rate
TermValue
Default rate10% of the protocol share (production)
Per-referrer overrideSet by the owner, up to the ceiling
Ceiling30% (MAX_RATE_BPS, a constant)
AppliedThe rate in force when each fee arrives; credited balances are never rewritten
What the referrer is paid from
SourcePaid in
The protocol leg of every trade fee (curve and pool)The launch’s raise currency: ETH or the listed ERC-20
The platform half of a lapsed KOL windowThe launch’s raise currency
The launch feeNot shared — it goes from the fee desk to the protocol

Referrers pull their own balances: claim() / claimTo(recipient) for ETH, claimToken(token) / claimTokenTo for an ERC-20. The rest of the protocol share goes on to the fee meter; the referrer’s cut never counts there.

KOL fee windows#

The KOL leg — 40% of every trade fee on production terms — accrues to KolSplitter under the launch. Once a day it is opened as a window the creator can hand out.

One KOL window
StepWhoRule
openWindowThe keeperSweeps the launch’s pending KOL fees into a window. One per day, on a 24-hour grid anchored at the launch time. The keeper supplies no amounts or recipients.
allocateThe creatorWhole percentages of the window to eligible KOLs, at least 1% per line, within each KOL’s rank cap, up to 100% in total. Open for 6 hours.
closeWindowAnyone, after 6 hoursWhat was not allocated lapses: 50% to the creator’s crew splitter, 50% to ReferralLedger naming the launch, where the referrer takes their rate
claim / claimTokenThe KOLPays the KOL’s credited balance, in the launch’s raise currency

Allocating less keeps more for the creator, through the lapse. After graduation the locker’s KOL fees run on their own grid, starting at graduation.

Who can be allocated#

Who a creator may allocate to (KolRegistry, checked by KolAllocationRules)
ConditionRequired
EnrolledA platform account with a connected X account, attested on chain
SubscriptionA live X subscription, unless the KOL’s rank is Platinum or above
StandingNot banned, and attested within the last 30 days
If the registry cannot answerNo allocation succeeds; the window lapses 50/50

KOL ranks and caps#

A rank sets the largest share of one window a KOL may take. Rank is the higher of what the KOL’s lifetime fees earned justify and any rank won by peer vote.

Rank caps and fee thresholds (deployment defaults; read allocationCapBpsOf for the live cap)
RankShare of a windowLifetime KOL fees
Unranked10%0
Bronze12%0.10 ETH
Silver15%0.25 ETH
Gold20%5 ETH
Platinum25%30 ETH
Diamond30%100 ETH
KolVoting — promotion by peer vote
RuleValue
PromotionExactly one rank; never to Bronze, never to Diamond
OpenerA KOL in good standing ranked at least one above the destination; never the subject
Voting period7 days
Quorum · majority70% of active, eligible KOLs at open · 51% of ballots cast
Platform minimum1,000 eligible KOLs before any vote can open
CooldownOne vote per subject per 30 days
Open for proposalsOnly while proposalsOpen() reads true; the contract ships closed