This entry covers an upcoming LaunchLab program update. It was verified against the local release branch before deployment. Confirm the deployed program before creating or updating a platform above the old ceilings.
PlatformConfig.fee_rate is validated in two places — once when CreatePlatformConfig builds the account, and once on every UpdatePlatformConfig variant that writes the field — and both now accept up to 50000. In the program’s 1/1_000_000 rate denominator that is 5% of trade volume on every pre-graduation buy and sell.
Before this release the two checks disagreed: create allowed 100 bps and update allowed 250 bps. They now hold the same value, so the rate a platform can be created at is exactly the rate it can be updated to.
Nothing else changed. No account grew or shrank, no instruction gained or lost an account, and no error code moved.
TL;DR for integrators
- The platform fee ceiling is 500 bps on both paths.
CreatePlatformConfigandUpdatePlatformConfigboth acceptfee_rateup to50000. - Create moved from 100 bps.
PlatformParams::check()had been<= 10000since the program’s first release. - Update moved from 250 bps.
update_platform_fee_ratewas<= 25000, itself raised from 100 bps on 2026-01-27. - The create/update mismatch is gone. A config created above 250 bps could not previously survive an
UpdatePlatformConfigcall, becauseAllInfore-validatesfee_ratewhile rewriting every other field. Both checks now agree, so that edit path works at any permitted rate. creator_fee_rateis unchanged atMAX_CREATOR_FEE_RATE = 5000(50 bps) on both paths.GlobalConfig.max_share_fee_rateis unchanged at10_000(100 bps), and never bounded the platform fee. It bounds the per-transactionshare_fee_ratereferral argument. Earlier versions of this documentation said otherwise; this release corrects that.- Nothing existing repriced. These constants gate writes to
fee_rate, not reads. EveryPlatformConfigalready on-chain keeps its current rate, and every launch bound to one keeps its current fee. - No IDL refresh is required. No layouts, accounts, arguments, or error codes changed.
What changed
1/1_000_000 (RATE_DENOMINATOR_VALUE), so:
Where the two checks live
The ceiling is enforced by two separaterequire! calls in two files. They now hold the same value, but they still raise different errors, so error handling needs to recognize both:
AllInfo is the bulk-update variant: it rewrites the wallets, the branding strings, the vesting scale, the NFT split, the transfer-fee authority, the creator fee rate, and fee_rate in one call, running the same check on fee_rate that the single-field variant does. Under the old constants that made AllInfo unusable for a platform created in the 250–500 bps band, even for an edit that only touched an image URL. Aligning the two constants removes that trap.
What did not change
- Fee accounting and distribution.
platform_fee = amount_in × platform_config.fee_rate / 1_000_000is the same formula, accruing to the same per-platform vault, swept by the sameClaimPlatformFeeandClaimPlatformFeeFromVaultinstructions. - Existing platforms and launches. The constants gate writes, not reads. No stored rate changed, so no live launch reprices.
creator_fee_rate. Still capped atMAX_CREATOR_FEE_RATE = 5000(50 bps) on both paths.GlobalConfig.max_share_fee_rate. Still10_000, still bounding only theshare_fee_rateargument on the four swap instructions.- Error codes.
6000–6023are unchanged; this release adds none. - Account layouts and the IDL. Unchanged.
Documentation correction
Two pages attributed the platform fee cap toGlobalConfig.max_share_fee_rate. The program never did that — it compares max_share_fee_rate against the share_fee_rate instruction argument, and validates PlatformConfig.fee_rate only in the two functions listed above. This release corrects those sentences. The referral-fee cap itself is unchanged at 100 bps, so if you read the old wording as “the platform fee is capped at 100 bps”, the number was right for the create path until this release even though the reason was not.
Pages updated
products/launchlab/platform-config— new “Rate caps” section covering both rates, both enforcement points, and the rate history.products/launchlab/global-config—max_share_fee_ratecorrected to describe the referral share fee it actually bounds.

