Skip to content

API ReferenceSupported venues

Reference

Supported venues

Live

VenueExecutor kindDiscoveryNotes
Uniswap V3 and forksKIND_V3Configured + auto-discovered factoriesAny fee tier, including the 2% (20000) tier some Elysium forks add. Exact tick-crossing estimates
Uniswap V2 and forksKIND_V2Configured + auto-discovered factoriesFee read from the pair bytecode (25 or 30 bps)
Uniswap v4KIND_V4Configured PoolManagersPools with hooks included (tested through a hook). Native HYPE pools mapped onto a WHYPE in the graph and unwrapped/wrapped around the hop
WHYPE ↔ WHYPEKIND_REWRAPAllow-list1:1, connects pools that use different WHYPE contracts
Launchpad bonding curve (testnet "Ramses curve")Launchpad router (not the Executor)Configured in the network filePre-graduation tokens block contract-to-contract transfers, so they can't go through the Executor. /quote compares the curve with the aggregator and keeps the better one (venue: "launchpad")

Testnet numbers at the time of writing: ~2,260 V3, ~1,450 V2 and ~770 v4 pools indexed.

Ready for Elysium mainnet day one

Built for the venues announced for launch (see venue research). Supported in the Executor, the indexer (auto-discovered like V2/V3) and the router; tested on forks of Base (Aerodrome, Slipstream) and Arbitrum (Algebra via Camelot):

VenueTypeExecutorIndexer
Aero (Aerodrome/Velodrome v2) and Nest classic, Ramses legacySolidly: volatile x·y=k and stable x³y+xy³KIND_SOLIDLY (4): output from pool.getAmountOutPoolCreated(…, bool stable, pool, …) / PairCreated(…, bool stable, pair, …)
Aero SlipstreamConcentrated liquidity keyed by tick spacingKIND_V3 (same swap ABI and callback)PoolCreated(…, int24 tickSpacing, pool); fee from pool.fee()
Nest CLAlgebra Integral, dynamic fee pluginKIND_V3 + algebraSwapCallbackPool(token0, token1, pool); state from globalState()

None are deployed on Elysium yet (mainnet scan at block ~1.086M). Their factories are picked up automatically once they emit pool-creation events, or can be pinned in the network file (solidlyFactories, slipstreamFactories, algebraFactories).

Elysium mainnet launchpads (no adapter needed)

The big mainnet launchpads don't use a bonding curve: each token launches straight into a Uniswap v4 pool holding the supply as one-sided liquidity, behind the launchpad's hook (taxes, dynamic fees, anti-snipe). They are ordinary v4 pools for the router, discovered through their PoolManagers.

LaunchpadPoolManagerHookPool keyFork-tested
Kleos (v4 generation)0xb308B5df…24900x0c835e6A…E0Cc (per-token buy/sell tax)native HYPE / token, fee 0, tick spacing 200✅ buy + sell, quote exact
Kleos (v5 generations)0xb308… and 0xE2e105d3…23F1per generationsame shape—
Kleos (v3 generation)V3 factory 0x809ff799…efaF1, own WHYPE 0x0269031a…9EEF—fee 1%(V3 path)
ElysPump0x5fb015a4…96000xe11CaFA5…20Cc (= launcher; keyOf(token))native HYPE / token, fee 0, tick spacing 200✅ buy + sell, quote exact
Ascend0xE2e105d3…23F10xe0dEF422…a8eC (= launchpad)token / ERC20 WHYPE, dynamic fee, tick spacing 200✅ buy + sell, quote exact
Montra0xE2e105d3…23F10x6b1216a4…f8ecnative HYPE / token, dynamic fee—

Pools sitting at the edge. A launch pool holds the token's supply as one-sided liquidity, and the price starts exactly at the edge of that range: in-range liquidity is 0, although the first buy trades immediately. The indexer reads the liquidity across the nearest range boundary (and in which direction it trades); such pools count as live, are estimated from that liquidity, valued for TVL on their one-sided supply, and priced from the buy side while nothing can be sold into them. Found in the mainnet rehearsal: without it these tokens had no route.

contracts/test/Launchpads.mainnet.fork.t.sol (runs with ELYSIUM_MAINNET_RPC_URL) swaps 0.05 HYPE in and back out through each hook: the Executor's quote matches the executed amount both ways and the Executor ends empty. The off-chain estimator doesn't model hook taxes, so it can over-rank these pools; the exact on-chain quote corrects the final choice. During a token's launch window, its hook can enforce max-wallet and anti-snipe limits; the simulation catches a swap that would hit them.

Not supported (yet)

Venue typeWhy notWhat it would take
Other launchpad curves (e.g. one that blocks contract transfers before graduation)Each has its own contractOne adapter per launchpad, like launchpad.ts
DLMM / bin-based AMMs (ZKBLAST)Different math and swap interfaceA new hop kind and estimator
kHYPE stakingNo minting contract on Elysium; kHYPE is bridgedOnce kHYPE pools exist they are routed automatically
RFQ / market makersNo RFQ source on Elysium—

Adding a venue

Venue is…Work needed
A new Uniswap V2/V3 forkNone. Auto-discovered from its events. Add the factory to the network file to pin it
A new v4 PoolManagerAdd it to v4.managers in the network file
Something elseExecutor hop kind (swap + callback + quote), indexer discovery and state, estimator, gas entry, tests
lane.markets · Make the most of every move.