ABIs
Everything needed to parse Orbofi launches, pools and fees. Addresses are in Deployed contract addresses.
Discovery — Orbofi Factory
The single event that identifies an Orbofi agent. Emitted by all Orbofi factories.
{
"type": "event",
"name": "AgentCoinLaunched",
"anonymous": false,
"inputs": [
{ "name": "asset", "type": "address", "indexed": true },
{ "name": "creator", "type": "address", "indexed": true },
{ "name": "pool", "type": "address", "indexed": false },
{ "name": "numeraire", "type": "address", "indexed": false },
{ "name": "initialSupply", "type": "uint256", "indexed": false }
]
}topic0 = 0x5d474dbccaef0b3274a2302f351854d215f5cb89d8d566861c19668c197670ad
Only asset and creator are indexed; pool, numeraire and initialSupply are in the data and cannot be filtered on.
pool is not a pool id. Decoding a live launch shows this field repeating the asset address — Uniswap V4 pools have no address of their own, and their bytes32 id is not carried here. Take the id from the Initialize event instead; treat pool as redundant.
Pool — Uniswap V4 PoolManager
hooks is in the data, not the topics.
sender on Swap is the Universal Router, not the trader. Every Orbofi trade routes through 0x8876…0904, so attributing trades to sender puts the router on every row. Recover the taker from the transaction's from, or from the token Transfer logs in the same transaction.
Amounts are pool-perspective and signed. A positive amount0 means currency0 went INTO the pool. If you are porting a Uniswap V3 indexer, check the convention against a known trade before trusting your buy/sell classification.
fee on Swap is NOT the total swap fee. It reports the LP leg only — 1000 (0.1%) on a standing trade. The hook leg is charged through hook deltas that never reach the PoolManager's accounting, so this field misses ~94% of what the trader paid. Use the quoter for cost, and see Fees.
Quoting — V4 Quoter
Non-view; simulate it (eth_call) rather than sending.
Agent token
A standard ERC-20 (18 decimals): name, symbol, totalSupply, balanceOf, transfer, approve, allowance, plus Transfer / Approval.
Beyond the base standard it also implements three common extensions — verified on a live agent:
ERC20Votes —
delegates,getVotes,CLOCK_MODE(mode=blocknumber). Vote power is checkpointed, so a transfer also updates voting state; an indexer that assumes transfers have no side effects is fine, but one that mirrors the token's own logic should know the checkpoint write exists.ERC20Permit —
permit,nonces,DOMAIN_SEPARATOR. Gasless approvals by signature.Burnable —
burn(uint256).totalSupplycan therefore decrease; read it live rather than caching a launch-time value.
There is no mint — supply cannot inflate.
Full factory ABI
The complete Orbofi factory ABI — 20 events, 58 functions, 85 custom errors — is committed alongside these docs at developers/abi/OrbofiLauncher.json. (OrbofiLauncher is the factory's Solidity contract name, which is why the file carries it.) Most integrations only need AgentCoinLaunched.
Last updated
Was this helpful?

