Index Token Created Events
This page describes how to index newly launched tokens by consuming events emitted by the Portal contract.
Overview
For backward compatibility, a token launch can emit multiple events instead of a single one. Always index TokenCreated, then enrich the token record with any optional events that appear in the same transaction.
TokenCreated only includes the IPFS CID of the metadata. To resolve and parse token metadata, see Parse Token Meta.
Events to index
Required
TokenCreated: emitted for every token launch.
Optional (apply defaults if missing)
TokenCurveSet: if missing, curve defaults to the first item inCurveType(legacy curve,curveParameter = 16 ether).TokenCurveSetV2: starting from v4.7.0, always emitted even for legacy curve.TokenDexSupplyThreshSet: if missing, defaults to the first item inDexThreshType(6.67e8 ether).TokenQuoteSet: if missing, defaults to native gas token (zero address).TokenMigratorSet: if missing, defaults toV3_MIGRATOR.TokenVersionSet: if missing, defaults to legacy token version (see Token version specification).FlapTokenTaxSet: if missing, tax is 0 (non-tax token).FlapTokenStaged: emitted when a token is staged but not yet created (two-step token launch).TokenExtensionEnabled: emitted when an extension is enabled for a token.TokenDexPreferenceSet: if missing, defaults to DEX0 with STANDARD fee profile.
Event reference (arguments and meaning)
TokenCreated
TokenCreatedEmitted for every token launch.
ts: block timestamp when the token is created.creator: address that initiated the token creation.nonce: portal nonce for this creation (unique perPortal).token: deployed token address.name: token name.symbol: token symbol.meta: IPFS CID of the token metadata JSON.
FlapTokenStaged
FlapTokenStagedEmitted when a token is staged (two-step launch) but not yet created.
ts: block timestamp when staging happens.creator: address that staged the token.token: predetermined token address (not yet deployed).
TokenCurveSet
TokenCurveSetEmitted when the bonding curve configuration is set for legacy curve format.
token: token address.curve: curve contract address.curveParameter: curve parameter for the legacy curve (defaults to16 etherif missing).
TokenCurveSetV2
TokenCurveSetV2Emitted when the bonding curve parameters are set in the newer format.
token: token address.r: virtual ETH reserve parameter.h: virtual token reserve parameter.k: square of virtual liquidity parameter.
TokenDexSupplyThreshSet
TokenDexSupplyThreshSetEmitted when the DEX listing supply threshold is set.
token: token address.dexSupplyThresh: circulating supply threshold for DEX listing (defaults to the firstDexThreshTypeif missing).
TokenQuoteSet
TokenQuoteSetEmitted when the quote token is set.
token: token address.quoteToken: quote token address (zero address means native gas token).
TokenMigratorSet
TokenMigratorSetEmitted when the migrator type is set.
token: token address.migratorType: migrator enum value (V3_MIGRATORorV2_MIGRATOR).
TokenVersionSet
TokenVersionSetEmitted when the token implementation version is set.
token: token address.version: token version enum value (see Token version specification).
FlapTokenTaxSet
FlapTokenTaxSetEmitted when a tax is set for a token.
token: token address.tax: tax rate in basis points (0 means non-tax token).
TokenExtensionEnabled
TokenExtensionEnabledEmitted when an extension is enabled for a token.
token: token address.extensionID: extension identifier (bytes32).extensionAddress: extension contract address.version: extension interface version.
TokenDexPreferenceSet
TokenDexPreferenceSetEmitted when DEX preference and fee profile are set.
token: token address.dexId: preferred DEX ID (DEX0,DEX1,DEX2).lpFeeProfile: preferred V3 LP fee profile (STANDARD,LOW,HIGH).
Suggested indexing flow
Listen to
TokenCreatedevents onPortal.In the same transaction, collect optional events for the same token address.
Apply defaults for any missing optional events.
Persist the token record and metadata CID.
Last updated