Skip to content

[Base] Solver returns NoLiquidity for DERC20 tokens despite active Uniswap V4 pools #4198

@Axiom89

Description

@Axiom89

Body:

Description

CoW Protocol solvers on Base return NoLiquidity for Clanker's DERC20 token standard, despite these tokens having significant liquidity in Uniswap V4 pools ($100K+).

Root Cause

DERC20 contracts (used by Clanker's newer token deployments) include a custom _update() override with a PoolLocked() revert path. The pool address is set to 0x000...dead and the lock is purely cosmetic — it never triggers during normal transfers/swaps. However, CoW solvers appear to simulate the token transfer, encounter the revert path in static analysis, and conservatively skip the token.

Standard ClankerToken contracts (Clanker's older contract type) do not have this custom _update() and route through CoW solvers without issues.

Reproduction

  1. Go to CoW Swap on Base
  2. Try to swap any token (e.g. USDC or WETH) → CRED (Helixa Cred): 0xab3f23c2abcb4e12cc8b593c218a7ba64ed17ba3
  3. The quote returns NoLiquidity despite the token having ~$120K+ in a V4 pool

Expected Behavior

Solver should recognize that the PoolLocked() revert in _update() is unreachable during standard Uniswap V4 swaps and route the trade normally.

Impact

This is becoming increasingly common as Clanker (one of the most active token deployers on Base) has shifted to the DERC20 contract type for new launches. Examples of affected tokens:

  • CRED (Helixa Cred) — 0xab3f23c2abcb4e12cc8b593c218a7ba64ed17ba3 — ~$120K liq
  • 0xDP (0xDirectPing) — 0x0a3a6eef246ed15dbf97f8a237e20a3bc091cba3 — ~$170K liq

All future Clanker DERC20 deployments will have the same issue.

Detection

You can distinguish the two contract types on Blockscout:

  • DERC20 → has custom _update() with PoolLocked() → CoW can't route
  • ClankerToken → standard _update() → CoW routes fine

Environment

  • Chain: Base (8453)
  • CoW Swap UI + API
  • Uniswap V4 pools

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions