Pre-launch. The protocol is not publicly live yet. This documentation describes the contracts as implemented; deployed addresses are published at launch.

Events

Every event emitted by the protocol, by contract. Indexed parameters are marked — those are the ones you can filter on.

Factory

EventParametersWhen
PairDeployedtoken (indexed), curve (indexed), deployer (indexed), name, symbol, packed_socialsA user token pair is deployed
ProtocolPairDeployedtoken (indexed), curve (indexed), deployer (indexed), name, symbolThe one-shot protocol pair is deployed

TokenTemplate

EventParametersWhen
Transfersender (indexed), receiver (indexed), valueStandard ERC-20. Mints show a zero sender, burns a zero receiver.
Approvalowner (indexed), spender (indexed), valueStandard ERC-20
TradingEnabledtimestampTransfers unlock at graduation

BondingCurveTemplate

EventParametersWhen
Buybuyer (indexed), lots, native_sent, base_price, taxEvery curve buy
Sellseller (indexed), lots, native_returned, base_price, taxEvery curve sell
Graduatedtoken (indexed), deployer (indexed)Supply reaches 800,000 lots
RefundInitiatedrefund_per_lotRefund mode opens
RefundClaimeduser (indexed), lots, native_receivedA holder claims
RefundsSweptunclaimed_amount, swept_atRemainder swept after the claim window

PrimaryHook

EventParametersWhen
TokenRegisteredtoken (indexed), deployer (indexed), positionIdGraduation completes and the pool exists
SecondaryReservedtoken (indexed), deployer (indexed)The 10% envelope is pushed to the SecondaryHook. Watch this to know a secondary pool can be created.
FeesDistributedtoken (indexed), total, reinvesteddistributeFees splits fees
Reinvestedtoken (indexed), nativeAmount, tokensAdded, liquidityAddedReinvest branch taken
BuyAndBurntoken (indexed), nativeSpentBurn branch taken
DeployerWithdrawaltoken (indexed), deployer (indexed), amountDeployer withdraws
DeployerUpdatedtoken (indexed), oldDeployer, newDeployer, paidOutCTO finalizes. paidOut is 0 if the payout to the old deployer failed and rolled back.
CTOVoteInitiatedtoken (indexed), vote_contract (indexed), initiatorA vote is created

SecondaryHook

EventParametersWhen
SecondaryFundedtoken (indexed), nativeAmountThe PrimaryHook earmarks native during graduation
SecondaryCreatedtoken (indexed), poolId, protocolTokenAmount, tokenAmount, positionId, tokenIsCurrency0The token↔$LP24 pool is created
SecondaryTokenBurntoken (indexed), amountEvery taxed swap on a secondary pool

GraduationManager Gnosis

EventParametersWhen
PoolPreInitializedtoken, pool, sqrtPriceX96V3 pool initialized inside deploy_pair
TokenRegisteredtoken (indexed), deployer (indexed), positionIdGraduation completes
FeesCollectedtoken (indexed), nativeAmountV3 fees pulled from the position
FeesDistributedtoken (indexed), …Native fees split
TokensBurnedtoken (indexed), amountToken-side fees burned
TokenFeesLPedtoken (indexed), …Token-side fees paired into liquidity (THIN path)
Reinvested / BuyAndBurnas PrimaryHookTHIN / DEEP path respectively
DeployerWithdrawal / DeployerUpdated / CTOVoteInitiatedas PrimaryHookSame semantics

CTOVoteTemplate

EventParametersWhen
CTOInitializedtoken (indexed), initiator (indexed), initiator_stakeVote contract is cloned and set up
VoteCastvoter (indexed), amount, supportEvery vote and add_votes. The initiator's stake also emits one at initialization.
VoteEndedyes_votes, no_votes, passedVoting closes. passed is the frozen outcome.
VoteFinalizednew_deployerA passed vote is executed
TokensWithdrawnvoter (indexed), amountA voter reclaims their deposit

TokenSocials & TokenVesting

EventParametersWhen
SocialsUpdatedtoken (indexed), packedMetadata record written
OwnerTransferredtoken (indexed), old_owner (indexed), new_owner (indexed)Metadata ownership moves, including on CTO
TokensReleasedamount, total_released, timestampVested tokens released to the beneficiary

Indexing notes

Tracking a token end to end

PairDeployed gives you the token and curve together. Graduated and TokenRegistered fire in the same transaction as the final Buy, along with TradingEnabled and — for non-protocol tokens on V4 chains — SecondaryReserved. A graduation is therefore one receipt containing five or six events across four contracts.

Both branches never fire together

FeesDistributed always accompanies a successful distribution, followed by exactly one of Reinvested or BuyAndBurn. If you are aggregating "value returned to holders", counting both would double-count — they are alternatives, not stages.

Supply reconstruction

Burns land as Transfer to 0x…dEaD, which covers dust cleanup that emits no dedicated event. Combining BuyAndBurn, SecondaryTokenBurn and dead-address transfers gives complete destruction accounting — or simply read totalSupply(), which only falls after graduation.