Skip to terminal output

> HOW STOCKDRIFT WORKS

ARCHITECTURE

SWAP → CLAIM
USER SWAP
UNISWAP v4 POOL — ETH / SDRIFT
STOCKDRIFT HOOK
OBSERVE |ΔTICK| → EWMA
DYNAMIC FEE — CALM / NORMAL / STORM
HARVEST 0.45% OF UNSPECIFIED ETH
REWARD TREASURY
WEEKLY EPOCH CLOSE
MERKLE ROOT
USER CLAIM — ETH

WHY A CUSTOM HOOK?

STOCKDRIFT is built around a dedicated pool-level mechanism. The fee engine and the harvest logic are designed specifically for the ETH / $SDRIFT pool.

One hook per pool lets the product keep its own market behaviour: the fee responds to movement in this pair alone, and the value captured is routed into the same asset holders are paid in. The hook binds itself to exactly one pool at initialization and can never be repointed at another token.

THE TWO MECHANISMS

ONE SIGNAL

01 / DYNAMIC FEE

After every swap the hook folds |newTick − lastTick| into an EWMA. Before every swap it maps that reading onto one of three bands and overrides the pool's LP fee for that swap. The pool is created with the dynamic-fee flag, so it charges nothing on its own — the number the hook returns is the fee, every time.

02 / ETH HARVEST

When the unspecified currency of a swap is ETH, the hook takes 0.45% of that ETH out of the PoolManager and forwards it to the treasury. Under ordinary exact-input routing that means a sell of $SDRIFT pays the harvest and a buy does not. The harvest never touches $SDRIFT: the protocol accumulates ETH, not its own token.

Storm fee plus harvest is capped at 4.00%, and the cap is enforced in the setters — no combination of parameter changes can push total friction past it.

PAYOUT

WEEKLY · MERKLE
  • Epochs are wall-clock: timestamp / 7 days. An epoch can only be closed once it is strictly in the past, so its holder set is final and the root is reproducible from chain history by anyone.
  • The keeper computes each holder's share off-chain and publishes the root. Holders pull with a proof; cost scales with claimers, not with holders.
  • A close can never commit more ETH than the treasury already holds, and a claim can never exceed what its epoch committed.
  • There is no path that sends ETH to an address of the owner's choosing. ETH leaves only through a claim, to the account named in the leaf.
  • Unclaimed ETH from an epoch older than 26 weeks returns to the distributable pool — it never leaves the contract — and only after four uninterrupted weeks of open claiming.

WHAT THE OWNER CANNOT DO

STRUCTURAL
  • Change the token the hook is bound to — it is immutable.
  • Touch the liquidity position, which is locked one-way.
  • Move a claimer's ETH, or route ETH anywhere by hand.
  • Make an arbitrary call from any protocol contract.
  • Mint, tax, pause or blacklist $SDRIFT — the token has no owner at all.

What the owner can do: tune parameters behind a 7-day timelock that commits to the exact calldata in advance, and pause the harvest immediately. Pausing is strictly non-extractive — it can only make the hook take less, never more.

CONTRACT ADDRESSES

ROBINHOOD CHAIN · 4663
TOKEN0xAb1D7Cce…A503fEA4$SDRIFT — fixed supply, no owner
HOOK0x494B0dF8…865B10c4Dynamic fee engine + ETH harvest
POOL IDNOT CONFIGUREDbytes32 id of the ETH / SDRIFT pool
TREASURYNOT CONFIGUREDHarvested ETH, weekly epochs
LOCKERNOT CONFIGUREDOne-way lock on the LP position
POOL MANAGERNOT CONFIGUREDUniswap v4 singleton
POSITION MANAGERNOT CONFIGUREDCustodies the v4 position NFT
STATE VIEW0xF3334192…bD9E673bRead-only v4 pool state
EXPLORER: https://robinhoodchain.blockscout.comRPC: https://rpc.mainnet.chain.robinhood.comCHAIN ID: 4663SITE: https://stockdrift.xyz

NETWORK

STOCKDRIFT targets Robinhood Chain mainnet. The interface will prompt to switch — or to add the network — when a wallet is connected elsewhere. Native currency is ETH.