000sounding
Skip to content

Robinhood Chain Testnet$EBB

Hold $EBB and the fees from every trade pay for your AI, landing as a fresh tidepool of credit every thirty minutes. Credit you leave on the shore for seven days is drawn into the Trench: it buys $EBB back and burns it.

Launch--d --:--:--
CASOONCopy
Granted, all time—
$EBB burned—
Current tide—
Chain head—
USDG in the Basin—
Tides per day48
Life of a pool336 tides
IUndertow

Credit nobody spends still has to go somewhere.

Fee-to-credit tokens proved that people want their AI paid for by trading fees. Then the undertow showed up: most credit is never spent, and where that unused value flows decides whether holders are being paid or quietly drained.

of credit issued by an incumbent fee-to-credit token was never spent on inference. It was listed for sale below face value.

13–18% spentthe rest leaks

As reported on orbz.app (October 2026), citing an incumbent's public analytics. Not independently verified by us.

  1. 01

    AI is a standing bill

    Seats, keys, top-ups, overages. For anyone who builds with models the meter only runs one way.

  2. 02

    Utility is usually a sticker

    Holding a token rarely changes what you do on an ordinary Tuesday. A key that answers your editor does.

  3. 03

    Idle credit turns into sell pressure

    Pay unused credit out as a tradable token and holders sell it at a discount. You get paid in something you dump.

  4. 04

    Every extra step loses people

    Stake, mint, list, settle, activate. Most holders stop at the second step and their share sits idle.

Two roads for unused creditUnused credit flows down to a fork. The left road pays it out as a token, holders sell it below face value, and the price feels sell pressure. The right road, which Ebb takes, buys $EBB back and burns it in the Trench, creating buy pressure.UNUSED CREDIT7 days on the shorePay it out as a tokenholders list it below face valueSELL PRESSUREprice pushed downBurn $EBB with itbought on the market, then burn()TRENCHBUYPRESSUREEBB'S ROAD
Fig. 1Unused value has two roads. Paid out, it becomes sell pressure. Burned, it becomes buy pressure. Ebb takes the second, automatically, every tide.

Them and us

9 soundings
Unused credit
Typical: Sits in wallets, or is listed for sale below face value
Ebb: After seven days it buys $EBB on the market and burns it
Getting started
Typical: Stake, mint a second token, list it, settle, activate
Ebb: Hold $EBB. Sign one message for a key. Done
Where the fees sit
Typical: A “vault” that is really an ordinary wallet: whoever holds its key can move it
Ebb: The Basin: an immutable contract, not a wallet. No owner, no proxy, verified source
Who got what
Typical: A row in their database
Ebb: Every tide’s grants committed on-chain as a Merkle root. Verify your own
Reserves
Typical: An endpoint that answers null
Ebb: The vault balance read from the chain on every request, shown as an equation
API keys
Typical: Derived from a fixed signed message, so a phished signature is a key forever
Ebb: Random, issued after a nonce-bound sign-in with expiry, stored only as SHA-256
Documentation
Typical: Pages that disagree on the epoch length and the split
Ebb: One constants file feeds the contracts, the API and this page
Models
Typical: One unnamed house model
Ebb: Upstream model names and list prices shown, no markup
Trying it
Typical: Buy first, find out later
Ebb: A full sandbox: simulated chain and holders, no wallet funds needed
IICurrent

From one trade to your editor, or down into the Trench.

Eight stations, one loop. Nothing in it waits for a person to press a button, and every station leaves a public trace. Scroll to send a drop of fee around the current.

Fig. 2The current. A drop of fee travels the ring; the compass needle points at the station it has reached. Choose a station to jump to it.
Station 01 / 08
  1. Someone trades $EBB

    Every buy and sell pays 3% on Pons: its 1% base fee plus the 2% $EBB creator tax, on the bonding curve and after graduation alike. Pons keeps 0.3%, so 2.7% of all volume belongs to the Basin, in ETH.

    Pons fee escrow → EbbVault
  2. The fees reach the Basin

    Pons does not push fees, so anyone can call harvest(). It claims the ETH from Pons’ fee escrow and swaps it to USDG on the WETH/USDG pool, reverting if the price strays more than 3% from the 30-minute TWAP.

    harvest()
  3. Seventy to the pool, thirty to the treasury

    The swap result is split in the same transaction: 70% is booked to the current tide’s credit pool, 30% goes to the treasury. An invariant test checks the ratio on every harvest.

    toPool × 3000 == toTreasury × 7000
  4. The tide turns on :00 and :30

    When a tide ends the allocator integrates every wallet’s balance over those 30 minutes. A time-weighted 100,000 $EBB or more is eligible; flash holds earn almost nothing.

    TWAB over [start, end)
  5. The tide comes in

    Each holder’s pro-rata grant is committed on-chain as a Merkle root, and lands in a fresh tidepool in their dashboard. Anyone can check their own leaf against the root.

    commitGrants(tide, root, total, wallets)
  6. One key, any tool

    Point any OpenAI-compatible client at the gateway. Each request reserves its maximum cost from your oldest pool first, then settles the real cost and refunds the rest.

    POST /v1/chat/completions
  7. Every pool counts down

    A tidepool lives 336 tides, seven days. Spent credit is paid to the model provider hourly, with a Merkle root of the requests it covers, and never more than the tide was granted.

    withdrawForUsage(tide, amount, usageRoot)
  8. What is left is drawn into the Trench

    At hour 168 the remainder buys $EBB on the market and burns it. Our keeper calls it; if the keeper stops, anyone can, and collects a 0.25% tip capped at $2.

    burnExpired(tide, maxAmount)
IIIEbb

Every pool carries its own countdown.

Spend a credit and it becomes AI. Leave it, and at hour 168 it becomes a buyback. Scroll, or drag the brass handle, to follow one dollar of credit through its week.

A tidepool among dark rocks, anemones under clear water
one dollar of credit · steady
an assistant in your editor
Hour
000 / 168
Spendable
$1.00
Spent on AI
$0.00
Bought + burned
$0.00
flood · hour 0hour 168trench
d1d2d3d4d5d6d7

Hour 0, day 1. 168 hours until the Trench.

  • Oldest first

    FIFO. Requests draw on the pool closest to the Trench, so you never lose fresh credit to an old countdown.

  • Not transferable

    Credit belongs to the wallet the grant was committed to. Keys spend it; they cannot move it.

  • Not cash

    It buys model usage at list price. It never turns into ETH, USDG or anything else.

  • Not revivable

    An expired pool is already buying $EBB. It does not come back.

IVTide tables

The same arithmetic the Basin runs, printed as an almanac.

Turn a dial and the strip reprints. Every line comes from the fixed fee split in the contract, not from a projection. Switch to the latest tide to read a real entry from the Logbook.

Daily volume
$100k
Your $EBB
1M
Eligible supply
55%

pool, curve, vault, treasury and burn address never count

Spend share
25%
Fig. 4Four dials. Drag in a circle and let go, they coast and click into detents. Or focus one with Tab and use the arrow keys.

Printed so far

newest first
Ebb · Tide tablesmodel day
48 tides · 2.7% of volume reaches the Basin
volume traded$100,000
traders pay · 3%$3,000
Pons keeps · 0.3%$300
to the Basin · 2.7%$2,700
treasury · 30%$810
credit pool · 70%$1,890
your bag · Shelf1M $EBB
your share of the pool0.182%
per tide$0.07
per day$3.44
per week$24.05
your week as AI · 25%$6.01
your week to the Trench$18.04
whole pool / day as AI$473
whole pool / day burns $EBB$1,418
AIbuy + burn

A model, not a forecast. Grants follow real volume tide by tide and are never promised.

VThe Trench

Three pipes run into the Trench. Nobody can close them, including us.

Every burn takes the same public path: USDG to ETH to $EBB, then burn(). Total supply falls by exactly the amount burned, and each burn prints a Logbook entry.

EbbVault.sol · the burn path
// anyone, once the tide is 336 tides (7 days) oldEbbVault.burnExpired(tide, maxAmount)  require(now >= epochStart(tide) + 336 * 1800)  usdg = min(remaining(tide), maxAmount) // slices  tip  = min(usdg * 0.25%, $2)           // to caller  eth  = swap(usdg - tip, USDG -> ETH)   // 3% TWAP bound  ebb  = swap(eth, ETH -> $EBB)          // 3% TWAP bound  EBB.burn(ebb)                          // supply falls  emit Burned(tide, usdg, ebb, msg.sender, tip)
  1. 01 swap USDG → ETH
  2. 02 swap ETH → $EBB
  3. 03 burn()
  4. 04 totalSupply ↓
  5. 05 tip → caller
  1. 1

    Expired holder credit

    from the first flood + 168 h

    Whatever is left in a tide after seven days. The main pipe; it runs every tide.

  2. 2

    Top-up margin

    later

    Credit bought at list price plus 5%. The 5% goes down the same pipe.

  3. 3

    Unused demo budget

    later

    The treasury’s free-demo allowance nobody used, routed into the Trench.

$EBB burned so far
—
burns
—
USDG in
—
expired 24 h
—

Each burn is a Logbook entry with its transaction, the caller and their tip.

VIDepth

Hold it. That is the whole setup.

No staking, no locking, no second token. Depth buys room, not priority: every credit is worth the same dollar of usage, and grants are strictly pro-rata to time-weighted balance.

Shorehold 0Reef≥ 100kShelf≥ 1MAbyss≥ 10M1k10k100k1M10M100M1.5M
Fig. 7A sounding line on a log scale. The buoy rides the surface; drag the lead to try a bag.
Try a bag1,500,000 $EBB
ReefShelfAbyss
  • Shore

    hold 0
    requests / min
    10
    concurrent
    2
    • Spends credit already held
    • Logbook, soundings and docs
  • Reef

    hold 100,000 · 0.01%
    requests / min
    60
    concurrent
    8
    • Tides every 30 minutes, pro-rata
    • Usage dashboard and ebb view
  • Shelf

    your bag
    hold 1,000,000 · 0.10%
    requests / min
    120
    concurrent
    16
    • Everything in Reef
    • Shelf badge on share cards
  • Abyss

    hold 10,000,000 · 1.00%
    requests / min
    240
    concurrent
    32
    • Everything in Shelf
    • New models first
    • Name on the depth wall

Tiers raise rate limits and add cosmetic marks. They never change what a credit is worth or how a tide is split.

What $EBB never does

  • Pay holders cash, ETH or stablecoins
  • Make one holder’s credit worth more than another’s
  • Ask you to stake, lock or mint a second token
  • Let the team move the credit pool
  • Promise a fixed amount per tide

Token facts

Supply
1,000,000,000, fixed, no mint
Chain
Robinhood Chain · 4663
Launch
Pons v2 curve · Uniswap v4 at 4.2 ETH
Trader fee
3%: 1% Pons base + 2% creator tax
Reaches the Basin
2.7% of volume, in ETH
Pool / treasury
70% / 30%
Tide
30 minutes, on :00 and :30 UTC
Life of a pool
336 tides · 7 days
Grant floor
100,000 $EBB · 0.01%
VIICharts

Where $100,000 of trading goes, to the dollar.

Trading fees are the only engine at launch. Slide the spend share to see the credit pool divide between AI and the Trench.

Per $100,000 traded: traders pay $3,000 in Pons fees. Pons keeps $300 and $2,700 reaches the Basin. $810 goes to the treasury and $1,890 to the credit pool. At 25% spend, $473 becomes AI and $1,418 buys and burns $EBB.Traders pay 3%$3,000Pons keeps 0.3%$300Treasury 30%$810Credit pool 70%$1,890Becomes AI$473Buys + burns$1,418THE BASIN$2,700
traders pay
$3,000
Pons keeps
$300
the Basin · 2.7%
$2,700
treasury
$810
credit pool
$1,890
becomes AI
$473
buys + burns
$1,418

At any spend share, the whole credit pool goes back to holders: as AI they used, or as a burn that shrinks supply.

Fig. 8The fee split per $100,000 of volume, widths to scale: 1% Pons base fee + 2% creator tax, on the curve and after graduation alike. Hatched coral is what the Trench takes.
3520152010TREASURY$810per $100k traded

The treasury's 30%

35 · 20 · 15 · 20 · 10
  • Operationsservers, indexing, monitoring35%
  • Provider floatprepaid balance, so credits never wait20%
  • Free demothe chat on the landing page, capped15%
  • Growthcreators, dev communities, bounties20%
  • Reserveaudits, incident fund10%

Fig. 9 Published monthly in Soundings, with a transaction link for every movement.

VIIIHull

One ownerless vault, six small services around it.

The chain holds the money and the rules. Our servers meter, allocate and publish, and every step they take leaves a trace you can check against the chain.

01Robinhood Chain

money and rules
Pons fee escrowcreator fees, as ETHEbbVault · the Basinno owner · no proxy$EBB pooltrades + burnsSERVERS AND STRANGERSclaim() · ETHbuy · burn()harvest · commitGrantswithdrawForUsage · burnExpired
  1. 01
    Pons fee escrow

    2.7% of every trade, as ETH. Fees collect on the curve or Pons’ hook, are swept here, and wait until harvest() claims them.

  2. 02
    EbbVault, the Basin

    Books USDG per tide, commits grant roots, pays settlement, burns expired credit. No owner, no upgrade path.

  3. 03
    $EBB and its pool

    Where trades happen, and where every burn buys before calling burn().

02Ebb servers

meter, allocate, publish
EBBVAULTIndexerTransfer logsAllocatorTWAB at :00/:30Keeperonly holds gasSettlementhourly, with a rootGatewayoldest pool firstPublisherLogbook rowsTWABcommitGrants(root)harvest()burnExpired()withdrawForUsage(tide, amt, root)debitsreads
  1. 04
    Publisher

    Turns each tide into a Logbook row and a receipt card, and serves Soundings.

  2. 05
    Gateway

    Hashes keys, rate-limits by depth, reserves cost from the oldest pool, settles the real cost.

  3. 06
    Settlement

    Hourly, pays providers for used credit via withdrawForUsage, with a Merkle root of the requests.

  4. 07
    Keeper

    Calls harvest() and burnExpired(). Its key holds only gas, and both calls are open to anyone.

  5. 08
    Allocator

    At :00 and :30, computes time-weighted balances and commits the grant root.

  6. 09
    Indexer

    Reads every $EBB transfer, three blocks behind the head, into balance timelines.

03Outside

people and providers
Holders + toolsone key, any clientGATEWAYModel providersnamed, at list priceAnyonestrangers and botsEBBVAULTPOST /v1/chat/completionsforwardpays used creditharvest() · burnExpired() + tip
  1. 10
    Holders and their tools

    Sign one message, paste a key into any OpenAI-compatible client.

  2. 11
    Model providers

    Named upstream models at list price. More than one, so no single provider is a dependency.

  3. 12
    Anyone

    Can call harvest() or burnExpired() and earn the tip. Nobody can stall a burn.

  4. the API, in two lines
    base_url = "https://api.ebbtide.xyz/v1"api_key  = "sk-ebb-…"   # one signature, no transaction
IXBulkheads

Eight bulkheads. Each one holds on every test run.

The Basin is tested against eight invariants under randomised call sequences. Watch the beam sweep the compartments: if one floods, the others keep the hull afloat.

A lighthouse on a rocky point throws its beam over a storm sea at night
  1. I1

    USDG in the Basin equals the sum of every open tide’s remainder

    usdg.balanceOf(vault) == Σ remaining(e)
  2. I2

    A tide never pays out more than it granted, nor grants more than it booked

    withdrawn(e) ≤ granted(e) ≤ booked(e)
  3. I3

    Nothing can be burned before the tide is seven days old

    burnExpired reverts before epochStart + 7d
  4. I4

    A burned tide can never be withdrawn again

    withdrawForUsage(burned) reverts
  5. I5

    Every harvest splits exactly 70 / 30

    toPool × 3000 == toTreasury × 7000
  6. I6

    Swaps revert beyond 3% of the 30-minute TWAP

    |out − quote| ≤ 3%
  7. I7

    Total supply drops by exactly the amount burned

    ΔtotalSupply == ebbBurned
  8. I8

    USDG leaves only to settlement, treasury, the burn path or the caller tip

    no other transfer target exists

Attack and defence

8 closed before launch
Buy just before the tide turns, sell just after
Grants use time-weighted balances. Five minutes of holding earns a sixth of a tide’s share.
Wash trading to farm grants
A round trip costs 6% in fees and only a slice returns, pro-rata to every holder. Always a loss.
Splitting a bag across wallets
Pro-rata maths gains nothing from splitting, and the 100,000 floor keeps dust wallets out.
Phishing a signature to steal a key
Keys are random, issued per sign-in with a single-use nonce and expiry. An old signature mints nothing.
Junk requests to dodge the burn
Provider cost is real money. Junk only moves value from the burn to a provider.
A compromised operator key
It can only pay one fixed settlement address, capped per tide by what was granted, and a guardian can freeze it.
The team quietly moving the pool
There is no function for it. The Basin has no owner, no proxy and no delegatecall.
The indexer falling behind
Tides wait. The allocator never guesses a balance; it commits only what it has indexed.

Security model

  • Holders never deposit anything to receive credit
  • API keys are stored as SHA-256 hashes; a leaked database leaks no keys
  • The keeper key holds only gas money, and every call it makes is open to anyone
  • Fail closed: if settlement fails three times, spending pauses until it is fixed
  • Contracts, API and this site are open source and built from one constants file
  • The creator fee recipient is the Basin, which has no function to change it: nobody we control can redirect the fees

What could still hurt

  • Grants follow volume. If trading fades, every tide shrinks with it
  • Metering runs on our gateway. Withdrawals are bounded per tide, rooted and freezable, but usage is still reported by us
  • Pons’ owner, a 2-of-3 Safe, can propose moving the creator fees away from the Basin. It is public and waits three days; we watch for it and will announce it
  • Pons v2 is not yet audited, and after graduation fees reach the Basin only when Pons sweeps them
  • Providers can change prices or access; we keep more than one
  • At launch the Basin is fork-tested and invariant-tested, not yet externally audited; that review is on the charted course
A logbook open on a chart table beside a barometer, dividers and a brass watch, lit by an oil lamp
XLogbook · Soundings

Take a sounding. The depth should match the chart.

Every request to /api/soundings reads the Basin's USDG balance from the chain and sets it against everything the books say is in it. The equation is the whole proof of reserves; nothing is taken on trust.

read on-chain
USDG in the Basin
—
usdg.balanceOf(vault)
Open credits
—
every unexpired tidepool
difference —Reading the chain…

The Logbook

Every tide prints a row: what was booked, granted, spent and burned, with the grant root and its transaction. The same figures live in the console under Logbook and Soundings.

Reading the Logbook…

XICharted course

From the first sketch to the first burn.

The product ships before the token. Each waypoint is reached when its work is public and checkable, not when a date arrives.

  1. Waypoint 0done

    Foundation

    • Mechanism fixed: 30-minute tides, seven-day ebb, burns
    • One spec as the single source of every number
    • Name, mark and this chart
  2. Waypoint 1done

    Build

    • EbbVault with invariant tests I1–I8
    • Indexer, allocator, gateway, settlement, keeper, publisher
    • Sandbox mode, this site and the console
  3. Waypoint 2under way

    Testnet

    • Full stack on Robinhood Chain testnet (46630)
    • Public sandbox with simulated holders
    • Mainnet-fork test of the swap adapter
  4. Waypoint 3next

    Launch · 5 Oct, 15:00 UTC

    • Fair launch on Pons, Robinhood Chain
    • Fee recipient moved to the Basin right after launch
    • A Logbook entry every tide
    • First burn, live, at hour 168
  5. Waypoint 4later

    Open water

    • External audit of EbbVault
    • Redundant providers with failover
    • Paid top-ups, team plans, editor integrations

Fig. 12 The charted course. Solid line is sailed; dashes are still ahead.

Launch week, hour by hour

Launch and the first burn are the same mark on the dial, seven days apart. Everything in between prints to the Logbook.

  1. T−24hVault source, test report and addresses published
  2. T0Launch. Fee recipient moved to the Basin; first-minute fees forwarded to it
  3. T+30mFirst tide closes; first grant root committed on-chain
  4. T+1hFirst settlement with a usage root
  5. T+24hDay-one Logbook: volume, fees, grants, usage
  6. T+168hTide 0 expires. First burn, callable by anyone

The whole idea, in one line

Everything you spend becomes AI. Everything you leave becomes a burn.

Fair launch · 5 Oct 2026 · 15:00 UTC · @ebbtidexyz · Telegram