Whitepaper / v1, live

Order Flow Auction

A live Uniswap v4 token. The hook takes 2% of every buy and sell, in ETH, and pays it to OFA holders. On buys, bonded fillers can compete to fill the order at the pool price or better, and their winning bid goes to holders too. Launched single-sided, so buyers fund the liquidity.

OFA is a live token on Ethereum, trading in a Uniswap v4 pool with a custom hook. On every buy and every sell, the hook takes 2% of the trade, in ETH, and routes it to a distributor that pays it out pro-rata to everyone holding OFA. There is no staking and no lockup. The hook also runs an order-flow auction on buys: a bonded filler can fill the order at the pool's price or better, so the trader is never worse off, and the bid it pays to win that order goes to holders as well. The token launched single-sided, with OFA only in the pool, so buyers supply the ETH and no team capital backs the liquidity.

01What is live

No vaporware. Here is exactly what is deployed and working on Ethereum mainnet right now:

02The v4 hook

Uniswap v4 lets a contract, a hook, run custom logic on a pool's swaps and settle the balance changes through the singleton PoolManager. Because the pool is ETH/OFA and native ETH is currency0, the hook always takes its cut on the ETH side:

Either way the cut is ETH, forwarded straight to the distributor. The token has no transfer tax, so OFA stays a normal ERC-20 everywhere else. The hook's address encodes its permissions (BEFORE_SWAP, AFTER_SWAP, and their return-delta flags), so it was deployed to a mined CREATE2 salt. The whole flow was verified on a mainnet fork, a real buy and a real sell both increased a holder's claimable ETH, before going live.

03The order-flow auction

This is the part the name points at, and it is in the deployed hook today.

A filler bonds OFA inventory into the hook and posts a bid, a number of basis points it is willing to pay to win order flow. When a buy comes in, the hook reads the pool's current price and works out how much OFA that price implies for the trader's ETH. If a bonded filler has enough inventory, the hook fills the buy from that inventory at the pool price, hands the trader their OFA, keeps the ETH for the filler, and sends the filler's bid to holders.

// on a buy, in beforeSwap ofaOut = ethIn priced at the pool's current spot // pool fill would be this or less filler = first bonded filler with inventory >= ofaOut if filler: trader gets ofaOut // at spot price, never worse than the pool filler gets ethIn - bid holders get the bid // in ETH, via the distributor else: holders get 2% of ethIn, pool fills the rest

The point: the trader is never worse off than trading against the pool, because the fill price is the pool's own spot price, before slippage. The value a filler is willing to pay to capture that flow, the kind of value that normally leaks to arbitrage and sandwich bots, goes to holders instead.

Being straight about the state of it: the auction logic and the filler registry are live in the hook, but no fillers are bonded yet. Until one is, every buy takes the flat 2% path and pays holders that way. The 2% is the floor that always pays. The auction is the upside on top, and it needs fillers to bond before it adds anything.

04Hold to earn

Rewards use the magnified-reward-per-share pattern: O(1) per distribution, no looping over holders.

// each time the hook forwards ETH magPerShare += ethIn * 1e18 / eligibleSupply; // claimable by holder h owed(h) = balanceOf(h) * magPerShare / 1e18 - rewardDebt(h);

05The launch, single-sided

OFA launched with no team ETH in the pool. The v4 position was minted with OFA only, placed just below the opening price, around a $5k starting valuation. As people buy, their ETH fills the position and the price climbs. The crowd funds the liquidity, not the deployer.

The deployer wallet was a throwaway used only to pay gas, and it ends holding nothing. The LP position NFT and contract ownership sit with the project wallet.

06Contracts

ContractAddress (Ethereum mainnet)
OFA token0xd423eb7A725aEe502aF142a891cAC8Db34A6D91b
Order-flow-auction hook0x3e2226382B20A92bc3Daf5298059B48c972d00cC
PoolUniswap v4, ETH/OFA, fee 0.30%, tickSpacing 60
Note. Because this is a Uniswap v4 pool with a custom hook, some sniper bots and scanners that only support v2 and v3 may mis-read it (for example "unknown factory"). Trade through the Uniswap app or a v4-aware router.

07What is next

The buy-side auction is live but inert until fillers bond. The honest work ahead is to make it actually run, and to extend it:

08Real talk

Straight, no theatre:

09Disclaimer

This document describes an experimental token in active development. It is not financial advice, not an offer to sell or a solicitation to buy any security or token, and not a promise of returns or future features. Figures and parameters may change. Smart contracts carry the risk of total loss of funds. Do your own research.

OFA, Order Flow Auction, whitepaper v1