← Back to Guides

Doppler tokens: is the owner renounced, and is the liquidity locked?

The owner isn’t renounced — it is Doppler’s Airlock contract, and it can’t touch the token. The pool is locked for good, and the hook can’t pull it. What that doesn’t cover, and how to check a Doppler token on Base or Robinhood Chain.

Short answer: the owner is not renounced, and the liquidity is locked for good. Every Doppler token’s owner() is Doppler’s Airlock contract — on Base 0x660eaaedebc968f8f3694354fa8ec0b4c5ba8d12, on Robinhood Chain 0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862. The Airlock can act on a token at one moment only — when it migrates the launch pool — and almost every launch switches migration off: 614 of the 618 launches we sampled on Base between late August and 3 October 2026 use Doppler’s NoOpMigrator, which always fails, and so did all 250 of the latest launches on Robinhood Chain on 7 October. The pool’s hook can’t take the liquidity out either. So the owner never changes, no new tokens can be minted, and the pool’s liquidity can never be taken out. What the lock doesn’t cover: up to 80% of the supply set aside for wallets the creator names, launch fees of 50–80% in the first seconds, and copycat names. Paste a Doppler token’s address to see the lock, the owner and who holds the supply:

How a Doppler launch works

Doppler (doppler.lol) is a token-launch protocol built on Uniswap v4 by Whetstone Research. Launch sites use it instead of writing their own contracts: Bankr has launched its tokens through Doppler since February 2026 — before that, through Clanker — and several other sites do the same. On Base it starts from a few hundred to over a thousand tokens a day.

Doppler runs on Robinhood Chain too, with its own Airlock and the same contract code, and it is busier there: between 1,000 and 5,500 launches a day since early September 2026, more than 86,000 in five weeks. Most of them aren’t paired with ETH. On 6–7 October about a quarter were paired with Robinhood’s SpaceX stock token (SPCX), others with NVIDIA’s, with the USDG dollar, or with another launched token.

One contract, the Airlock, runs every launch. It deploys the token, records the launch’s settings — what the token is paired with (WETH, USDC, ZORA and others), which contract holds the pool, which one may migrate it — and hands the supply for sale to a pool initializer. The initializer opens a Uniswap v4 pool and places those tokens in it as liquidity positions spread along a price curve. There is no separate bonding curve: trading starts in the pool at once, and every buyer’s ETH lands in those positions.

Doppler was designed with a second stage: when the sale ends, the pool migrates — the liquidity moves to a new pool, and ownership of the token passes to a governance timelock. Current launches on Base and Robinhood Chain skip that stage. Their migrator is the NoOpMigrator, whose migrate function always reverts with CannotMigrate, and their governance and timelock are set to the dead or the zero address — addresses nobody controls.

Why the owner isn’t renounced — and why it can’t act

Scanners report “owner not renounced” for every Doppler token, because owner() returns the Airlock rather than the zero address. We read the code of the Airlock and both token templates; it is verified on Base’s block explorer, the Robinhood Chain copies are the same code, and none of them is an upgradeable proxy.

  • The Airlock touches an existing token in one function only, migrate: it unlocks the token and hands its ownership to the timelock, then calls the migrator. With the NoOpMigrator that last call reverts, and the whole transaction is undone. The Airlock’s own owner — a Doppler multisig wallet — can approve contracts for future launches and collect protocol fees; it has no function that changes an existing token or takes liquidity out of a pool.
  • DopplerERC20V1, the current token template, has no mint, pause, blacklist or tax function. Its owner can lock or unlock transfers into a future migration pool and change the token’s metadata link. The Airlock locks that pool once, when it creates the token, would unlock it only in migrate, and never touches the link.
  • DERC20, the older template some launches still use, has an inflation function: up to 2% of the supply a year, minted to the owner. It can start only when the token is unlocked during migration. With migration switched off it never starts — but scanners still flag the token as “mintable”. Our check shows it as “Admin mint: Can never start”.

Why the pool can’t be pulled

The pool’s positions belong to the initializer contract, not to the creator. In both initializers Doppler uses on Base, and in the one it uses on Robinhood Chain, the only function that removes them is exitLiquidity, and only the Airlock may call it — from migrate, which can’t complete. Launches that pay trading fees to beneficiaries are also marked “locked” inside the initializer, and exitLiquidity refuses a locked pool whatever the migrator.

The exceptions are rare: 4 of the 618 launches we sampled used a migrator that moves the liquidity on. For those “locked for good” is not true, and our check doesn’t say it. On Robinhood Chain, 155 of the 1,566 launches on 6–7 October went through an initializer that isn’t among Doppler’s published contracts and puts the pool on Uniswap v3. Its code isn’t published, so our check doesn’t call those pools locked either.

The hook: DopplerHookInitializer and beforeRemoveLiquidity

A Uniswap v4 pool can name a hook — a contract Uniswap calls at set moments in the pool’s life. Most Doppler launches name the initializer itself: DopplerHookInitializer creates the pool with its own address as the hook, so the contract that holds the pool’s positions is also the one Uniswap calls on every trade. Bankr’s launches on Base use a separate hook, DecayMulticurveInitializerHook.

Neither hook implements beforeRemoveLiquidity. Uniswap v4 doesn’t ask a hook what it does; it reads the hook’s permissions from the last 14 bits of its address. DopplerHookInitializer’s address ends in 6544 on Base and a544 on Robinhood Chain — two spellings of one mask, in which the beforeRemoveLiquidity bit is off. Bankr’s hook ends in adc0, and the same bit is off. Both hooks do have afterRemoveLiquidity, but it only writes a log entry, and the bit that would let it change the amounts taken out is off as well. A pool’s hook is fixed when the pool is created, so none of this can be switched on later.

So the hook isn’t what keeps the pool in place — ownership is. Uniswap v4 records each position under the contract that added it, here the initializer; there is no position NFT to move. The initializer gives positions up in one function only, exitLiquidity, which only the Airlock can call and which refuses a pool marked “locked”. Every launch through these initializers we sampled on 7 October 2026 — 63 on Base, 233 on Robinhood Chain — was marked locked.

What the hook does do:

  • beforeInitialize — refuses any pool it didn’t create itself.
  • afterAddLiquidity and afterRemoveLiquidity — write a log entry, nothing else.
  • afterSwap — hands each trade to the launch’s fee plugin, if it has one, and takes the plugin’s fee out of the trade. The plugin may also set the pool fee, up to 10%. Bankr’s hook has no plugin: in beforeSwap it lowers the pool fee on a schedule set at launch — 50% falling to 1% over ten seconds in the launches we sampled — and takes nothing itself.

The plugin is where the launch fee comes from. Most launches with one use Doppler’s Rehype — Doppler’s own deployment or a copy built from its published code. One plugin, used by about a fifth of the launches on both chains on 7 October, hasn’t published its code (0xe2aebc987592593b667ec29178d0a83929db78b6): we can read the fee schedule it reports, but not everything it does. In the launches we sampled, the plugin’s fee started at 50% or 80% and fell in a straight line to between 0.4% and 2.75% within 10 to 15 seconds; a few kept a flat fee under 1%. On the Rehype contracts we read, that schedule is written at launch and can only fall. On Base, about half the launches through DopplerHookInitializer had no plugin and a flat 0.3% pool fee; on Robinhood Chain every one had a plugin.

Can the hook stop you selling? A plugin runs inside every trade, so a plugin could make a trade fail. Doppler’s own SwapRestrictor plugin does it on purpose: it lets only listed addresses buy, each up to a cap. None of the launches we sampled used it, and their pools trade both ways: on Robinhood Chain, pools with each of the four plugins we found had sells in the three hours before we wrote this, from at least 14 different addresses. Nor can the plugin be changed after launch: only the token’s timelock may swap it, and in every launch we sampled the timelock is the zero or the dead address.

The three hooks — in all of them beforeRemoveLiquidity is off:

HookChainAddress
DopplerHookInitializerBase0xbdf938149ac6a781f94faa0ed45e6a0e984c6544
DopplerHookInitializerRobinhood Chain0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544
DecayMulticurveInitializerHook (Bankr)Base0xbb7784a4d481184283ed89619a3e3ed143e1adc0

To check it yourself: open the hook’s address on the block explorer → Read Contract → getHookPermissions; beforeRemoveLiquidity comes back false. Or read the address: the beforeRemoveLiquidity bit is on only if the third hex digit from the end is 2, 3, 6, 7, a, b, e or f. In 6544, a544 and adc0 it is 5, 5 and d.

Doppler’s contracts on Base and Robinhood Chain

On Base

ContractWhat it doesAddress
AirlockRuns every launch; owner of every Doppler token0x660eaaedebc968f8f3694354fa8ec0b4c5ba8d12
NoOpMigratorThe migration that always fails0x6ddfed58d238ca3195e49d8ac3d4cea6386e5c33
DopplerHookInitializerHolds the pool for most launches; also the pool’s hook0xbdf938149ac6a781f94faa0ed45e6a0e984c6544
DecayMulticurveInitializerHolds the pool for Bankr launches0xd59ce43e53d69f190e15d9822fb4540dccc91178
Uniswap v4 PoolManagerHolds the funds of every v4 pool on Base0x498581ff718922c3f8e6a244956af099b2652b2b

On Robinhood Chain

ContractWhat it doesAddress
AirlockRuns every launch; owner of every Doppler token0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862
NoOpMigratorThe migration that always fails0xba2f330edb16cd8056f5988d8ce19bbc63475a0e
DopplerHookInitializerHolds the pool for most launches; also the pool’s hook0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544
DopplerERC20V1FactoryCreates the tokens; scanners show it as the deployer0x1b37d3a72082029c44b35b604ea473617580b69a
Uniswap v4 PoolManagerHolds the funds of every v4 pool on Robinhood Chain0x8366a39cc670b4001a1121b8f6a443a643e40951

Doppler’s Airlock on both chains belongs to the same multisig wallet, which needs three of its six signers to act. The PoolManager is a top holder of every Doppler token: it holds whatever is still for sale in the pool. That is liquidity, not a person, and our check labels it “Uniswap v4 pool”.

What the lock doesn’t cover

  1. Vesting. A launch can set part of the supply aside for wallets named at launch. Those tokens sit on the token contract itself and are released on a schedule — which is why a Doppler token’s own address is often its biggest holder. Bankr launches set nothing aside. Other sites commonly set aside 15%, claimable after 30 days and fully after a year. Some launches set aside 80% and release it all within a single day, while only about 16% of the supply is put up for sale in the pool. The lock keeps the pool in place; it doesn’t stop those wallets selling into it. Our check labels the token’s own balance “vesting, not yet released”.
  2. The launch fee. Doppler pools charge a fee set at launch, and it can start very high. On Bankr launches a trade in the first second pays 50–80%, and the fee falls to about 1% over ten seconds. About half the other launches on Base — and every one we sampled on Robinhood Chain — add a fee plugin, usually Doppler’s “Rehype”, which takes its own swap fee — it decays the same way, from 50–80% — and routes it to buybacks, back into the pool or to the beneficiaries. See the hook above. The fees go to the launch’s beneficiaries — usually the creator and the launch site, with 5% to Doppler — and scanners report them as “no data” or 0% tax, because the token contract charges nothing.
  3. Copycat names. Anyone can launch a token under any name. Among 514 launches we sampled, 18 were called “Vanguard Strategic Oil Fund”, each at its own address, and others borrowed names like “PayPal USD”. A name tells you nothing; the address is the token.
  4. Large holders. Anyone who bought in the first minutes can sell into the locked pool at any time. A permanent lock keeps the pool from vanishing in one transaction; it doesn’t stop it being drained by sells — see token lock vs liquidity lock.
  5. A wallet limit. Some launches cap how much one wallet may hold for the first minutes — 2% of the supply for 5 minutes in the launches we looked at. A buy above the cap fails until the limit ends. That is not a honeypot, but it can look like one.
  6. No buyers. A pool that can’t be pulled can still dry up. A permanent lock doesn’t make a token worth anything.

How to check a Doppler token

  1. Make sure it really is a Doppler token. On Base’s block explorer — basescan.org or base.blockscout.com — open the Airlock 0x660eaaedebc968f8f3694354fa8ec0b4c5ba8d12, Read contract → getAssetData, and paste the token address. On Robinhood Chain use robinhoodchain.blockscout.com and the Airlock 0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862. A Doppler token returns its launch settings; any other address returns zeros. Our check asks the same question.
  2. Read the migrator. In the same answer, liquidityMigrator 0x6ddfed58d238ca3195e49d8ac3d4cea6386e5c33 on Base, or 0xba2f330edb16cd8056f5988d8ce19bbc63475a0e on Robinhood Chain, is the NoOpMigrator: the pool can never be moved or emptied. poolInitializer names the contract that holds it. Our check’s “Liquidity locked” line reads “Launch pool, permanently”, with “Doppler factory” as the source.
  3. Read the plugin. On the poolInitializer, Read contract → getState with the token address. status 2 means the pool is marked locked. On DopplerHookInitializer, dopplerHook is the fee plugin; the zero address means none, and the pool keeps the flat fee in poolKey. Bankr’s initializer has no plugin.
  4. Read the owner. On the token itself, owner() returns the Airlock. On the older DERC20 template, currentYearStart returns 0: inflation hasn’t started, and with the NoOpMigrator it never will.
  5. Read the vesting. Compare vestedTotalAmount with totalSupply to see how much was set aside. On DopplerERC20V1, vestingSchedules(0) gives the cliff and the duration in seconds; on DERC20 it is vestingDuration. The token contract’s own balance is what hasn’t been released yet.
  6. Read the holders. The token’s Holders tab shows who holds the rest. Leave out the PoolManager and the token’s own address, and see what is left with whom.

A real example

Supertake launched on Base through Doppler on 28 September 2026, paired with WETH. On 3 October its pool held about $17,700 and traded about $6,900 in a day, according to DexScreener. The Airlock lists its migrator as the NoOpMigrator, and our check reads “Liquidity locked: Launch pool, permanently” and names the owner as Doppler’s Airlock. Its template is DopplerERC20V1, so there is no mint function at all. 83.7% of the supply is in the pool and 15% is vesting: nothing can be claimed before 28 October 2026, and all of it by 28 September 2027. Of the pool’s trading fees, 95% go to one beneficiary address and 5% to Doppler.

A token called Vanguard Strategic Oil Fund, launched on 3 October 2026, shows the other end. It uses the older DERC20 template, so scanners call it “mintable”; our check reads “Admin mint: Can never start”. 80% of its supply was set aside, to be released over one day, and 16.2% went into the pool. Three hours after launch, 77% was still on the token contract — the share our check labels “vesting, not yet released”. The pool is locked for good. That doesn’t stop most of the supply reaching the market by the next day.

Common questions

Is the owner of a Doppler token renounced? No. The owner is Doppler’s Airlock contract. For launches with the NoOpMigrator it has no way to act on the token, so the result is the same as a renounced owner: no mint, no pause, no blacklist, no tax.

Is Doppler liquidity locked forever? For launches with the NoOpMigrator through Doppler’s own initializers — almost all of them on Base and Robinhood Chain — yes. The positions belong to the initializer, only the Airlock can remove them, and only during a migration that always fails. There is no unlock date and no upgrade.

Can the Doppler hook remove liquidity — does it implement beforeRemoveLiquidity? No. Neither DopplerHookInitializer nor Bankr’s hook has the beforeRemoveLiquidity permission: the bit in the hook’s address is off, and Uniswap v4 goes by the address. Its afterRemoveLiquidity only writes a log entry. What the hook does take is the launch fee, through its plugin.

Who owns the liquidity position of a Doppler pool? The initializer contract itself — DopplerHookInitializer for most launches, DecayMulticurveInitializer for Bankr’s. Uniswap v4 records the position under the contract that added it; there is no position NFT, which is why lock checkers that look for one find nothing.

Who is 0x660eaaedebc968f8f3694354fa8ec0b4c5ba8d12? Doppler’s Airlock on Base: the contract that creates every Doppler token and is recorded as its owner. On Robinhood Chain the same role is played by 0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862. It is a contract, not a person’s wallet.

Are there Doppler tokens on Robinhood Chain? Yes, more than on Base: 1,000 to 5,500 launches a day, most of them paired with Robinhood’s stock tokens, the USDG dollar or another launched token. They work the same way, and our check has read them as Doppler tokens since 7 October 2026.

Why does a scanner say “mintable” or “liquidity not locked” for a Doppler token? Scanners see the inflation function in the older DERC20 template but not the rule that keeps it switched off. And they recognise a fixed list of lockers — UNCX, Team Finance, PinkLock — while a Doppler pool sits in Uniswap v4 positions owned by Doppler’s initializer, which they often don’t see at all. Our check asks the Airlock directly.

Why is the token contract its own biggest holder? Those are the vesting tokens, waiting to be released to the wallets named at launch. Look up the schedule before buying — a large share released within days is supply heading for the market.

Can a Doppler creator rug pull? Not by pulling the pool — that is impossible. But the vesting wallets can sell what they are released, early buyers can sell, and the fees go to the beneficiaries on every trade. Look at the vesting, the fee and the holders.

Are Bankr tokens Doppler tokens? Tokens Bankr launched since February 2026 are. Earlier Bankr tokens were launched through Clanker — see is Clanker liquidity locked.