Leverage
Connect wallet

Architecture

Five contracts of ours, one chain, no proxies.


Chain

Base mainnet, id 8453, 2-second blocks. The quote asset is USDC, 6 decimals, at 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Verified sources are on basescan.org.

Contracts

Deployed 2026-09-09 from block 51087244.

AddressWhat it does
MemeLauncherV30x3D52129945443911052910409F78D55cb7623A30launches coins (launch, launchWithEth), opens their pool, performs the bond
PermanentLockerV30x57001742B9CFF0CE53487B8B6b1E5266ccc6Fd86holds every position NFT forever, books and pays fees
LTFactory0x66b32CE215fBC7204c5e372f12Eb4E0a786feD11deploys one vault + one NAV oracle per tracker, routes each to its venue pair
LtUsdcLiquidityManager0xAeb533Ed6694182dD2dCC798cbbcF19058E42EAdkeeps each tracker's USDC reference pool centred on NAV
NavBatchRelay0x1911BeBc5c4A67230d858a7E51a1E5B25180f645posts the keeper's signed NAVs to every tracker's oracle in one transaction

None of them is behind a proxy. What is deployed is what runs, and it cannot be swapped out from under you. Earlier launcher deployments (0x94a7…d517 and before) are de-authorised on the factory and cannot launch.

Canonical Uniswap V3 on Base

Address
UniswapV3Factory0x33128a8fC17869897dcE68Ed026d694621f6FDfD
NonfungiblePositionManager0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1
SwapRouter020x2626664c2603336E57B271c5C0b26F421741e481
QuoterV20x3d4e44Eb1374240CE5F1B871ab261CD16335B76a

Fee tiers enabled on this factory: 0.01%, 0.05%, 0.3% and 1%. A coin's pool uses the 1% tier; a tracker's USDC reference pool uses 0.05%; the ETH seed of launchWithEth is swapped through the WETH/USDC 0.05% pool.

The venue

The position behind a tracker lives on Avantis, on the same chain. The two contracts a vault calls are the venue's own EIP-1967 proxies — TradingRouter at 0x44914408af82bC9983bbb330e3578E1105e11d4e (where the keeper's delegate key is registered) and TradingStorage at 0x8a311D7048c35985aa31C131B9A13e03a5f7422d (the USDC spender and the position registry). Those are upgradeable by the venue, not by us; everything of ours is not.

The launcher is the registry

allCoins on the launcher contains exactly the coins it created, in order, and nothing else. The site's board reads it directly.

That has two consequences worth having. Coins from older stacks and abandoned experiments cannot appear at all — there is no deny-list to maintain and no way for a stale index to resurrect one. And a coin is listable in the block it launches, with no indexing lag between the transaction and the board.

What is immutable

Total supply1,000,000,000, minted once in the constructor
Fee splitCREATOR_SHARE_BPS = 7000, a constant with no setter
Bond thresholdbondBackingUsd = 15,000 USDC, immutable on the launcher
Seed floorminSeedUsdc = 1 USDC, immutable on the launcher
Leverage ceilingMAX_LEVERAGE = 5, a constant on the factory
Protocol treasuryimmutable on the locker
Creator of a coinwritten at lock, no setter
The liquidity lockabsence of any withdrawal function

Changing any of these means deploying new contracts at new addresses. There is no admin action that alters them in place, and no upgrade path that could.

What is not

The protocol owner can point the front at a different launcher, list or delist the markets the launch form offers (LTFactory.setUnderlying, with the venue's cap per pair), and, on a tracker's vault, rotate or revoke the keeper's delegate key on the venue and zero the vault's USDC allowance to it — the two controls described in Risks & security. None of these reaches an existing coin: a coin already launched keeps its pool, its lock, its fee split and its creator whatever the site later decides to display or whatever happens to the keeper.

Reading it yourself

Every number this documentation states is a public call. Where a figure could change with a future deployment — the bond threshold, the seed floor, the fee split — the docs name the getter alongside the value, so you can check the live contract rather than a page that may have gone stale.