Index Agent Launches
The event to watch
event AgentCoinLaunched(
address indexed asset, // the agent's ERC-20
address indexed creator,
address pool,
address numeraire, // WETH or a tokenized stock
uint256 initialSupply
);topic0 = 0x5d474dbccaef0b3274a2302f351854d215f5cb89d8d566861c19668c197670ad
Emitted by the Orbofi factory on every launch. This is the whole discovery step: it carries the token, the creator, the numeraire and the supply in one log, with asset and creator indexed.
All Orbofi factories emit it identically, so a factory upgrade never changes your parsing.
Scope it to the factory addresses
const ORBOFI_FACTORIES = [
"0x8212F89CAFf7cB72E74008327983B52C909494FF",
].map((a) => a.toLowerCase());Filter on the emitting contract, not on topic0 alone — an event signature is not an authorisation, and any contract can emit the same topic.
When a factory upgrade ships, APPEND the new address — never replace the list.
An address missing from this list means every agent launched through it never appears in your index at all — no price, no market cap, no quotes, and no error anywhere to tell you. Since every factory version emits the identical event, an upgrade only ever costs you one added line.
Resolving the pool
AgentCoinLaunched gives you pool. For the V4 pool id — which you need for price and swap tracking — take the Initialize event emitted by the PoolManager in the same transaction:
Store id as the pool id and sqrtPriceX96 as the opening price. Note hooks sits in the data, not the topics.
Alternative: the Airlock event
Orbofi launches also surface as Create on the Doppler Airlock. It is usable but strictly worse: Orbofi shares that Airlock with every other Doppler project on the chain, and Create carries no integrator field — so identifying Orbofi launches means inspecting each transaction's to address, which many indexers do not select by default.
Prefer AgentCoinLaunched.
Backfill
The factory was created at block 40,670,952 — verified on chain; there is no code one block earlier — and its first launch was block 40,689,771. Start your scan there; anything earlier only burns range.
Last updated
Was this helpful?

