For the complete documentation index, see llms.txt. This page is also available as Markdown.
Live registry config
FireRegistry holds protocol-level config that's read by every other launchpad contract at runtime: grace periods, fee splits, force-graduation delays, vesting bounds, etc. Some are constants; others are governance-tunable.
This page shows you how to read each field on-chain so your agent or service can adapt to whatever's currently in force.
These are hardcoded in the contract and never change without a redeploy. Worth caching client-side after a single read:
Field
Value
Meaning
MIN_POSITIONS
5
Minimum bonding-curve positions per launch
MAX_POSITIONS
50
Maximum bonding-curve positions per launch
MIN_VESTING_DURATION
90 days
Lower bound for vestingDuration
MAX_VESTING_DURATION
730 days
Upper bound
MAX_SKIM_BPS
1500
Max 15% skim per buy
MAX_CREATOR_ALLOCATION_BPS
2000
Max 20% on-token creator allocation
MIN_BURN_COUNTDOWN
1 days
Lower bound for FuelVault burn timer
MAX_BURN_COUNTDOWN
90 days
Upper bound
MIN_GRACE_PERIOD
1 hours
Lower bound for gracePeriodDuration
MAX_GRACE_PERIOD
7 days
Upper bound
MIN_FORCE_GRADUATION_DELAY
90 days
Lower bound for forceGraduationDelay
Tunable values (governance-set)
These can change between launches. Always read live before depending on them.
Field
Type
Used for
gracePeriodDuration()
uint256
Wait between recordGraduationCondition and permissionless graduate
forceGraduationDelay()
uint256
Time after createdAt after which anyone can force-graduate
burnCountdownDuration()
uint256
Wait between graduation and executeBurn eligibility
fuelVestedBps()
uint16
Pre-grad gift split - fraction that goes to vested bucket
requiredFeeTier()
uint24
Forced fee tier for new launches (e.g. 10000)
requiredSkimBps()
uint16
Forced skim bps for new launches
treasury()
address
Protocol fee recipient (pre-grad graduationFeeBps share). Same address as integrator() today.
integrator()
address
Protocol fee recipient (pre-grad remainder). Same address as treasury() today, so all pre-grad fees go to the protocol.
guardian()
address
Address that can graduate immediately and relay gifts
owner()
address
Registry admin
minGiftAmount()
uint256
Floor on giftWithSig amounts
streamingRecipientsLocked()
bool
Whether the streaming-recipient list is permanently locked
getStreamingRecipientsTotalBps()
uint16
Sum of bps across protocol recipients (creator gets 10000 - this)
getStreamingRecipients()
StreamingRecipient[]
Full list (max 10 entries) of (address, bps)
getStreamingRecipientsCount()
uint256
List size
Reading with viem
Reading with cast
If you've got Foundry installed, one-liner reads work too:
For getStreamingRecipients() you get a struct array - easier to handle in viem than cast.
Reading per-launch state
For values snapshotted at ignite() time (per-token):
graduationFeeBps here is the pre-graduation protocol share for that specific token, snapshotted at launch.
Reading the recipient lock state
This is a useful integrator/creator confidence check - once locked, the protocol cannot reduce the creator's cut later.
What changes when
Constants - never, without a redeploy.
Tunables - by owner() only, via setter functions on the registry. Each setter emits an event (GracePeriodDurationUpdated, ForceGraduationDelayUpdated, etc.) - subscribe to those if you need to react in real time.
Streaming recipients - by owner() until lockStreamingRecipients() is called, after which they're permanently fixed.