One-tx launches on Base: OpenLaunch + Uniswap v4 eth_subscribe
Zero-fee, one transaction wires token + v4 pool + liquidity in a single shot—that “one-tx launch” tape on Base is running hot. Paraphrased feel from kevincodex; side thread around AIonBase_. This post does one job: hang eth_subscribe on OpenLaunch / Uniswap v4 related logs (Initialize / PoolManager / lock), spot the full-supply-to-pool + permanent lock pattern, and emit an open card.
Same listen craft, different chain: Watch Robinhood opens · New-pairs agent · Stock-pairs launch. This one tracks Base one-tx launches.
| Use | Endpoint |
|---|---|
| Public HTTPS | https://base-rpc.blockreq.com/v1/rpc/public |
| Public WSS | wss://base-rpc.blockreq.com/v1/rpc/public |
| Private | Trailing public → {API_KEY} (keys stay local) |
Chain: EVM chainId = 0x2105 (8453). Live list lives on Public endpoints—swap the same-shaped host when docs update. Free 3M Requests / 30 days · eth_subscribe · Pricing.
1. Why zero-fee one-tx launch took off on Base
| Tape feel | On-chain signal | Watch |
|---|---|---|
| One-tx launch | Same tx: mint token + Initialize pool + add liquidity | Multi-event cluster under one txHash |
| Full supply to pool | Fixed supply lands almost entirely in the v4 position | Supply vs deposited size alignment |
| Permanent lock | LP / position NFT moves into lock / FeeSplitter | Transfer / lock-related logs |
| Tradable at open | Swaps ready in the same window as Initialize | One open card packs the cluster |
OpenLaunch-style = a readable full-supply-to-pool + permanent lock recipe. Keep addresses in env placeholders: OPENLAUNCH_FACTORY, POOL_MANAGER (Base PoolManager is commonly 0x498581ff718922c3f8e6a244956af099b2652b2b—confirm against your env / official deployment table).
2. Events to listen (Initialize / pool / lock)
One public WSS: subscribe PoolManager Initialize, plus factory / lock related logs; cluster by txHash, tag one-tx launch.
Step A · Subscribe Initialize (pool heartbeat)
{
"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
"params": ["logs", {
"address": "${POOL_MANAGER}",
"topics": ["0xdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d6438"]
}]
}
topics[0]= Uniswap v4Initialize(bytes32,address,address,uint24,int24,address,uint160,int24).- Decode
currency0/currency1/fee/hooks/sqrtPriceX96→ recordpoolIdand CA candidates.
Step B · Subscribe factory / lock logs
{
"jsonrpc": "2.0", "id": 2, "method": "eth_subscribe",
"params": ["logs", {
"address": "${OPENLAUNCH_FACTORY}",
"topics": ["${LAUNCH_OR_LOCK_TOPIC0}"]
}]
}
- Keep
OPENLAUNCH_FACTORYandLAUNCH_OR_LOCK_TOPIC0in local env; pin to the live ABI (TokenLaunched / lock Transfer style). - Optional same-window subscribe on PoolManager
ModifyLiquidity(topic0 example0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec) to read add-liquidity direction.
Step C · One-tx launch gate (demo)
| Action | Rule |
|---|---|
| Pool live | Initialize in the tx |
| Full supply to pool | Deposited size ≈ fixed supply (tune threshold) |
| Permanent lock | LP / position lands in lock contract |
| Emit open card | All three in one cluster → one card |
3. BlockReq WS filter template
Boot reads env → two subscribe calls; on reconnect, re-subscribe the same filters. Gap-fill: HTTPS eth_getLogs by block range, replay the same cluster rules.
WSS → wss://base-rpc.blockreq.com/v1/rpc/public
HTTPS→ https://base-rpc.blockreq.com/v1/rpc/public
env → OPENLAUNCH_FACTORY · POOL_MANAGER · LAUNCH_OR_LOCK_TOPIC0
Narrow address + fixed topic0 keeps quota light. Free 3M covers short one-tx launch sessions; long boards swap trailing public for {API_KEY}.
4. Open card fields (CA / pair / lock)
- CA →
{ token, symbolHint, totalSupply, factoryTx }. - pair / pool →
{ poolId, currency0, currency1, fee, hooks, sqrtPriceX96 }. - lock status →
{ locked: true, lockTarget, positionOrLp, lockTx }. - Open cluster → same
txHashholds all three → push webhook / dashboard chip.
5. Preview: one-tx launch listen demo (StackBlitz)
Defaults to BlockReq public WSS; paste OPENLAUNCH_FACTORY / POOL_MANAGER, live-refresh Initialize + lock hits, emit open cards. Code lives in StackBlitz—article embeds the preview only:
Repo: blockreq/blog-demos → examples/openlaunch-base-eth-subscribe. For keyed: swap trailing public for {API_KEY}.
6. Summary
- Base one-tx launch = same-tx Initialize + full-supply-to-pool + permanent lock.
- Recipe:
POOL_MANAGERInitialize +OPENLAUNCH_FACTORYlock logs + same-tx cluster → open card. - Public WSS runs as-is; Free 3M covers short launch listens; long boards go keyed.
- Cross-chain listen craft: RH open rhythm · new pairs · stock pairs.
Next: pin Factory / topic0 as JSON → wire open cards to webhooks → persist backfill checkpoints. Public endpoints · Plans & pricing.