Is liquidity locked on Doppler launches?
Short answer: on Robinhood Chain, yes, and permanently, for almost every Doppler launch. The launch liquidity sits in Uniswap V4 positions owned by Doppler's pool initializer contract, and on the launches we checked there is no code path left that can take it out. Not the creator, not the launchpad, not Doppler. What Doppler does not lock is everything around the pool: a creator's vested allocation once it vests, tokens bought from the pool, fee income, and any liquidity someone adds later.
How we checked. Doppler's own repository lists a "Robinhood Mainnet (4663)" deployment.
We read the source of the contracts involved, confirmed on Blockscout that the deployed contracts are verified under the
same names, and read the chain directly: every Create and Migrate event the Airlock has emitted
from its first launch on 1 July 2026 to 10 October 2026, plus the on-chain state of a random sample of 400 launches.
Doppler's documentation only walks through Base and Solana. Where Robinhood Chain behaves differently, the numbers below are from Robinhood Chain itself, not carried over from Base.
How a Doppler launch works on Robinhood Chain
Doppler is launch infrastructure rather than a single launchpad. Every launch, whichever front end it comes from (Bankr is one),
goes through one contract, the Airlock (0xeb7C…0862), which is given four modules: a token factory, a governance factory, a pool initializer and a
liquidity migrator. In one transaction the Airlock deploys the token, hands the tokens for sale to the initializer, which
builds the pool, and registers the migrator for later.
- Token. Each token is a minimal clone of DopplerERC20V1 (
0x3Be8…C599or0xeDf3…50f8), deployed by a DopplerERC20V1Factory (0x1b37…b69aor0xf154…2cE5). The token has no mint function, so supply is fixed at launch. - Pool. The DopplerHookInitializer (
0x4e34…a544) creates a Uniswap V4 pool on the chain's PoolManager (0x8366…0951) with itself as the hook, and spreads the sale supply across a set of curve positions. Swaps can also call a "Doppler hook" plugin; on the launches we sampled that was a RehypeDopplerHookInitializer (0x6f02…0F77,0x9982…FdBBor0xe2AE…78b6), which handles fees, buybacks and fee reinvestment. - Migrator. On the launches we sampled, the NoOpMigrator (
0xba2F…5A0e).
| Pool initializer on 4663 | Launches, 1 Jul to 10 Oct 2026 |
|---|---|
| DopplerHookInitializer (Uniswap V4) | 200,813 of 202,477 (99.2%) |
LockableUniswapV3Initializer (0xde88…29A3, 0xD09d…7683) | 1,658 |
| UniswapV4Initializer (two deployments) | 6 |
So when someone asks whether "Doppler liquidity" is locked on Robinhood Chain, they are almost always asking about the DopplerHookInitializer.
The hook, and why beforeRemoveLiquidity isn't the lock
People who read a Doppler pool on an explorer often look for a beforeRemoveLiquidity hook that reverts
for outsiders. There isn't one. In Uniswap V4 a hook's permissions are encoded in the last bits of its address, and the
DopplerHookInitializer's address (ending a544) switches on beforeInitialize, afterAddLiquidity,
afterRemoveLiquidity, afterSwap and afterSwapReturnDelta. beforeRemoveLiquidity is off, which matches the
getHookPermissions() function in the source.
The lock comes from ownership instead. Uniswap V4 files every position under the address that created it, and only
that address can shrink it. The initializer mints the launch positions itself, so it is the only account that can ever
remove them, and its source has exactly one function that does: exitLiquidity. That function:
- can only be called by the Airlock, and only as part of
Airlock.migrate(); - requires the launch's status to be
Initialized.
When a launch is created with fee beneficiaries, the initializer stores its status as Locked instead and
emits a Lock event. Nothing in the contract moves a launch from Locked back to
Initialized. The one other exit, graduate(), needs a Doppler hook with the graduation flag; the
Rehype hooks we checked are enabled with the initialization and swap flags only (value 3), and every launch in our sample has its timelock set to
0x…dEaD or the zero address, so no account can attach a different hook. Even a graduation would set Graduated, which
exitLiquidity also refuses.
Every one of the 400 DopplerHookInitializer launches we sampled (300 at random across the
whole period plus the 100 most recent) returned status 2, Locked, from
getState(token). In plain terms: the curve positions, and the ETH buyers have paid into them, stay in the
pool for good. The positions can still earn fees, and collectFees pays those to the beneficiaries.
The Rehype hook adds a second layer. It reinvests part of the swap fees as a full-range position held by the hook contract. In the verified source of the Rehype deployments on Robinhood Chain, the hook's own code only ever adds to that position, so this liquidity only grows.
What happens at "migration"
On Base, Doppler launches are often described as moving liquidity to a new pool when the curve completes. On Robinhood Chain that step essentially does not happen:
- Every launch in our sample was registered with the NoOpMigrator, whose
migrate()always reverts withCannotMigrate(). A call toAirlock.migrate()for such a token reverts as a whole, so the pool is never emptied. - Across the Airlock's entire history on Robinhood Chain there is exactly one
Migrateevent, for a token named "Pump Test 1" launched through the Lockable V3 initializer.
That single case shows why the migrator matters. It used the UniswapV2MigratorSplit (0xB050…a333), whose source sends
95% of the new Uniswap V2 LP tokens to the launch's timelock address and only 5% to the UniswapV2Locker
(0x63f6…42a5), with a minimum lock of 365 days. If a future launch is set up with that migrator, the lock picture is very
different, so check which migrator a token uses rather than assuming.
The Lockable V3 launches follow the same pattern as the hook launches: in a sample of 80, 78 were Locked
with the NoOpMigrator, and 2 were Initialized with the V2 split migrator.
What Doppler does not lock
- Vested creator allocations, once they vest. DopplerERC20V1 has vesting built in. Reserved tokens are held by the token contract and released to each beneficiary on a schedule with a cliff and a duration. The contract allows up to 80% of supply to be reserved, and a schedule with a duration of zero vests instantly. In our sample, 283 of 400 launches reserved nothing, 113 reserved 15%, and 4 reserved 1% to 2%, some of it vesting instantly.
- Tokens bought from the pool. A dev buy or any later purchase is an ordinary balance.
- Fee income. Trading fees paid out to beneficiaries and integrators arrive liquid.
- Liquidity added later. The hook does not restrict adding liquidity, so anyone can add a position to a Doppler pool, and that position belongs to whoever added it and can be withdrawn at any time.
Bankr is a Doppler launchpad
Bankr's own support documentation says its launches use Doppler and deploy to Robinhood Chain by default, and the chain
agrees. Bankr tokens are created by the Airlock above, with the DopplerHookInitializer and the NoOpMigrator, and their
metadata names Bankr as the launch provider. One example is 0x4346…Fba3: getState returns
Locked, 15% of supply is vested to the creator with a 30-day cliff over one year, and the pool's fee
beneficiaries are the creator at 95% and Doppler's protocol owner at 5%, the minimum share the contract requires.
The vesting length has changed. Bankr launches from early July 2026 vest over two years; later ones vest over one year, which is what Bankr's documentation now describes, and Bankr lets a creator switch vesting off entirely. Read the token's own schedule rather than relying on the default. Our guide to vesting alongside a Bankr launch covers what that schedule leaves out.
How to check a specific Doppler token
- Open the token on Blockscout. A Doppler
token shows up as a minimal proxy of DopplerERC20V1, so read it through the proxy view, which uses the verified
DopplerERC20V1 code.
owner()should return the Airlock,0xeb7C…0862. - Open the
Airlockand readgetAssetData(token). Note thepoolInitializerandliquidityMigrator. The DopplerHookInitializer plus the NoOpMigrator is the combination described above. - Open the
DopplerHookInitializerand readgetState(token). A status of2meansLocked.getBeneficiaries(token)lists who receives the pool's fees. - Back on the token, read
vestedTotalAmount(), thenvestingSchedules(0)for the cliff and duration in seconds (2,592,000 is 30 days; 31,536,000 is one year).vestingOf(address, 0)shows what a beneficiary has been allocated and released. - Finally, check the holder list. The token contract holding a balance of its own token is the unvested allocation. Large wallets beyond that are what holder distribution is about.
HoodLock's liquidity lock checker and token lock checker show what is locked on HoodLock for a token. A Doppler pool's launch liquidity is held by Doppler's contracts, not by HoodLock, so it won't appear there; anything a creator has locked or vested with HoodLock will.
Locking or vesting your allocation with HoodLock
If you launched through Doppler, the pool question is settled. The open questions are the balances Doppler leaves liquid, and those are what holders look at next.
- Tokens you hold now, such as a dev buy or vested tokens already released, can be locked until a date at /app/locks/tokens.
- Team or contributor tokens can be put on a schedule with a cliff at /app/vesting, each with its own beneficiary and proof page.
- Liquidity you add yourself is your own position. See the Liquidity Locker docs for which positions it accepts before relying on it for a hooked pool.
Pricing is listed on the fees page. Every lock and schedule gets a proof page that reads from the chain and opens without a wallet.
Common questions
Is liquidity locked on Doppler launches on Robinhood Chain?
For almost every launch, yes, and with no end date. Over 99% of Doppler launches on Robinhood Chain use the DopplerHookInitializer, which holds the launch liquidity as Uniswap V4 positions in its own name. Every launch we sampled was marked Locked and paired with the NoOpMigrator, so the only function that removes those positions can never run.
Does the Doppler hook use beforeRemoveLiquidity to block withdrawals?
No. The DopplerHookInitializer leaves beforeRemoveLiquidity switched off, and its address encodes that. The lock comes from ownership: Uniswap V4 keys every position to the contract that created it, so only the initializer can remove its positions, and its one removal path requires a status a locked launch never reaches.
Do Doppler launches migrate liquidity after the bonding curve?
Not on Robinhood Chain in practice. The Airlock has emitted exactly one Migrate event there, for a test token. Launches set up with the NoOpMigrator cannot migrate at all, because its migrate function always reverts, so liquidity stays in the original pool.
Are creator tokens locked on a Doppler launch?
Only if the launch reserved a vested allocation, and only until it vests. DopplerERC20V1 can vest up to 80% of supply, and a schedule may even vest instantly. Released tokens, tokens bought from the pool and fee income are ordinary balances that can be sold at any time.
Does Bankr use Doppler on Robinhood Chain?
Yes. Bankr launches on Robinhood Chain are created through Doppler's Airlock with the DopplerHookInitializer, and their metadata names Bankr as the launch provider. Recent ones vest 15% of supply to the creator over one year behind a 30-day cliff; the earliest, in July 2026, used two years.
Can I lock or vest Doppler tokens with HoodLock?
Yes. A Doppler token is a standard ERC-20 on Robinhood Chain, so tokens you hold can be locked until a date or vested to a beneficiary on HoodLock, with a public proof page for each.
Keep reading
- Robinhood Chain launchpads compared: who locks LP
- Vesting alongside a Bankr launch
- Can locked liquidity be rugged?
- How to check if liquidity is locked
- How HoodLock vesting works
Lock it, share the proof
Lock or vest the tokens Doppler leaves liquid, with a proof link anyone can open without a wallet.
Lock tokens →HoodLock is not affiliated with Doppler, Whetstone Research, Bankr or Robinhood Markets, Inc. Contract behaviour described here comes from Doppler's published source and from reading Robinhood Chain on 10 October 2026. Contracts and launch settings change over time. Verify a specific token on-chain, and see docs.doppler.lol, before relying on this.