Ebbline: a market that answers its own outflow.
The ebb-reading token. One Uniswap v4 market on Ethereum, one signal measured in the pool’s own hook, and a supply that only ever holds or falls.
1Abstract
Ebbline is a flow-reading market system that turns net outflow into permanent retirement of its own supply. All 150,000 EBBL are created once, and every unit of it sits in the market at launch. Each trade leaves behind 2% — the Draw — which gathers in the Shallows, a balance held by the pool’s hook. The hook measures one signal per window: buy volume minus sell volume across the single market. When a window closes on net outflow, an Ebb settles: the gathered Draw buys EBBL back from the market, and the bought units settle in the Silt — removed from the supply at address zero, permanently. When a window closes on net inflow, nothing happens beyond the gathering; nothing is issued, ever. The fee, the window rule and the supply have no setter, and no one can move a holder’s balance, pause the market, or reissue a retired unit.
2The problem, stated once
Token markets have a direction problem. Buying arrives in weather and selling arrives in weather, and between the two the tide goes out. In a plain market nothing answers the ebb: value leaves, and the design’s only plan for outflow is to hope for inflow.
The usual answers make it worse. Issuance against inflow dilutes the holder to pay for growth. Fees paid out to someone convert the holder’s market into someone else’s revenue. Ebbline’s answer is structural: the market keeps a part of every trade and spends it, exactly when outflow is measured, on buying its own token back — and what it buys can never return.
3Design
The system has four parts and one fact around them.
The Draw is what each trade leaves behind: 2%, taken by the hook at the moment of the swap. It cannot be raised, lowered, redirected, or paid out. The Shallows is where the Draw waits: the balance the hook holds. It grows only from trades and shrinks only into buybacks. An Ebb is one settlement: when a window closes on net outflow, the Shallows buy EBBL from the market. It cannot be called early, delayed, or aimed. The Silt is where bought units settle: removed from the supply at address zero in the same transaction, recorded by an event, with no path back. Around the four parts sits one fact: 150,000 EBBL, created once, with no issuance path anywhere in the system.
4Parameters
| Name | Value | Unit | Where it lives | Setter |
|---|---|---|---|---|
| Token name | Ebbline | text | Token contract | Fixed at deployment |
| Symbol | EBBL | text | Token contract | Fixed at deployment |
| Total supply | 150,000 | EBBL | Token contract | No setter |
| The Draw | 2 | % of each trade | The hook | No setter |
| The window rule | Fixed | per window | The hook | No setter |
| Issuance | None | EBBL, ever | Nowhere — no mint path | No path |
| Authority over balances | None | EBBL | Nowhere — no such function | No path |
| Pause | None | — | Nowhere — no such function | No path |
| Market | Uniswap v4 | quoted in ETH | Ethereum mainnet | Fixed at deployment |
5Mechanism
A reader should be able to reimplement the settlement from this section alone.
Per trade. The pool calls the hook on every swap. The hook takes the Draw — 2% of the trade — into the Shallows, and adds the trade’s size to the current window’s tally: buys to one side, sells to the other.
Per window. The window rule is fixed at deployment and has no setter. When a window closes, the hook reads its own tally. The reading is buy volume minus sell volume across the single market. Nothing else is read: no price, no oracle, no external signal.
On net inflow. Nothing happens. The tally resets with the next window; the Draw remains in the Shallows. Nothing is issued against inflow, ever.
On net outflow. An Ebb settles. The hook spends the Shallows buying EBBL from the market at the market’s own price, settles the bought units out of the supply at address zero, and emits an Ebb event carrying the window’s outflow and what was spent and retired. The supply of units falls by exactly what the Draw could buy.
6Worked examples
A window of heavy outflow
| Step | Amount | Unit | Reading |
|---|---|---|---|
| Buys in the window | 40 | ETH | +40 |
| Sells in the window | 55 | ETH | −55 |
| The Draw, 2% of 95 ETH volume | 1.9 | ETH of value | gathers in the Shallows |
| Net flow | −15 | ETH | outflow — an Ebb settles |
| Settled in the Silt | What 1.9 ETH bought | EBBL | permanent |
A quiet window on net inflow
| Step | Amount | Unit | Reading |
|---|---|---|---|
| Buys in the window | 3 | ETH | +3 |
| Sells in the window | 1 | ETH | −1 |
| The Draw, 2% of 4 ETH volume | 0.08 | ETH of value | gathers in the Shallows |
| Net flow | +2 | ETH | inflow — nothing settles |
7Failure and edge cases
- A window with no trades. The tally reads zero. Nothing settles, nothing is issued, and the Draw simply waits in the Shallows. Nothing happens.
- A window closing on exact zero net flow. Zero is not outflow. Nothing settles.
- An Ebb call that reverts. A failed buy leaves the Shallows untouched: the Draw remains where it was, the window settles nothing, and the next window is read on its own tally. No state is half-written.
- An empty Shallows at outflow. If the Shallows hold nothing, there is nothing to spend. The window settles nothing; the reading is still recorded.
8What cannot change
From softest to hardest. A holder controls their own balance: it answers to their key alone, and no function can freeze, move, or take it. The market controls the price: the mechanism answers flow and never targets a level. Nobody controls the rules: the Draw’s 2%, the window rule, and the 150,000 EBBL supply are constants, not storage, so no transaction can rewrite them; the Silt moves in one direction only, because no exit path exists. Changing any of these would require a different contract, and a different contract would be a different product.
9Verification
Every claim in this paper is checkable on the explorer, in the vocabulary of this paper.
- The supply. Read
totalSupplyon the token contract: 150,000 EBBL, never rising. - The Shallows. Read the hook’s balance at two moments: it grows with volume and falls only into buybacks.
- The Record. Filter the Ebb events: one per settlement, each carrying the window’s outflow and what was spent and retired. The Console’s Record is a view of this log, nothing more.
- The Silt. Read the supply at two moments: it never rises. The settlement events enumerate every retirement, each with the amount and the supply after. That pair is the retirement rule.
- The constants. The verified source is public. The Draw, the window rule and the supply appear as constants; the absence of mint, pause and balance-moving functions is readable in the same file.
10Notation and definitions
| Term | Definition |
|---|---|
| Ebbline / EBBL | The token and its symbol. 150,000 EBBL, created once, all of it in the market at launch. |
| The Draw | What each trade leaves behind: 2%, taken by the hook at the moment of the swap. |
| The Shallows | Where the Draw waits: the balance the hook holds between settlements. |
| The reading | Net flow per window: buy volume minus sell volume across the single market, measured in the hook. |
| An Ebb | One settlement: on net outflow, the Shallows buy EBBL from the market. |
| The Silt | Where the bought units settle: removed from the supply at address zero, recorded by the settlement event. |
| The single market | Where EBBL trades against ETH: one market on Uniswap v4, on Ethereum. |
| The Record | One row per Ebb, rebuilt from the event log; shown in the Console. |