EDUCK · specimen no. 001
A duck cast in code, set loose on Ethereum
etherDuck lives inside a Uniswap v4 hook. Every trade against the pool wakes a MicroDuck robot, spends its charge, and adds one more mark to its trail.
The concept
Most tokens just move. This one does something.
A normal token transfer is a number changing hands — nothing about the token itself does anything when it moves. etherDuck asks what happens if a swap were also an instruction: something small, physical-feeling, and stateful, that the trade actually pushes forward.
That's the fleet. Each MicroDuck has a status, a battery, and a trail of where it's been — all of it stored and updated onchain, all of it driven by whatever's already happening in the $EDUCK pool. Nobody runs a bot to keep the fleet moving. There's no off-chain scheduler deciding when a duck gets its next order. The hook sees the swap and acts inside the same transaction, so the fleet's state is exactly as current as the chain itself.
Provenance
What a single swap sets in motion
No off-chain job runs any of this — every step happens inside the hook, in the same transaction as the trade.
Swap lands
A trade against the $EDUCK pool settles on Uniswap v4.
A duck is called
The hook rotates through the registered fleet — no duck sits idle while volume goes elsewhere.
Its charge is spent
Battery falls by the size of the trade, floored at zero. It also trickles back on its own, second by second.
The trail extends
A new coordinate is recorded, with the distance from its last position computed and added to a running total.
Specimens
Four contracts, one duty each
None of them touch $EDUCK's balances directly — they're wired to the hook, not the token.
Fleet roster
Registers every duck and tracks whether it's idle, active, charging, or retired for good.
Command dispatch
A first-in-first-out order queue, one per duck, executed strictly in the order it arrived.
Battery sim
Charge drains per action and recharges per second — never negative, never past capacity.
Waypoint trail
Every step is a signed coordinate, distance computed onchain, waypoint by waypoint.
Specification
Cast once, unsigned
Nobody holds a key that can mint more $EDUCK. The supply was fixed at deployment and only moves in one direction, through a plain public burn.
Why this matters
A token with a mint function is a promise that depends on whoever holds the key. $EDUCK doesn't ask for that trust — the supply printed at deployment is the only supply that will ever exist. What you see in the specification is the whole contract, not a summary of it.