Skip to main content

The fee flywheel

Investors Center funds itself from its own trading volume. A flat tax on every trade of INVEST is collected in INVEST, sold for a stablecoin, and spent on a governed basket of reserve assets that are delivered straight into the Treasury as backing. Backing grows while supply does not — and that is what pays stakers.

This page explains the mechanism and its guarantees. The holder-level version is The flywheel; the contracts that implement it are listed in Contracts.

The loop

StageWhat happens
ITradeSomeone buys or sells INVEST on the protocol-owned INVEST/USDG pool.
IITaxA flat 500 bps of the transfer is taken in INVEST and held by the tax collector.
IIIConvertThe collected INVEST is sold for USDG on that same pool, in bounded clips and never below an oracle floor.
IVSplitA decaying share goes to the team; the rest goes to the accumulator.
VAccumulateThe accumulator buys the governed reserve basket and delivers it to the Treasury.

Everything delivered at stage V lands in the Treasury as pure backing. It is not a deposit against which INVEST is minted, so it adds reserves without adding supply.

I–II. The tax

Every INVEST transfer that touches a registered trading pair pays 500 bps in INVEST. Wallet-to- wallet transfers are free. Buys, sells and router-mediated liquidity adds and removes are all taxed — the router is deliberately not exempt, so liquidity operations do not become an untaxed side door.

Three properties are worth stating plainly:

  • The rate is immutable. There is no rate setter and no disable path. It is 500 bps from the moment trading opens, permanently.
  • A taxed transfer moves twice on-chain — the fee to the collector, then the remainder to the recipient. Received plus taxed always equals sent, so pool accounting stays exact. Any tool that sums transfer events must count both legs.
  • Very small transfers round the fee to zero and pass untaxed. This is a rounding artefact of integer arithmetic, not an exemption anyone can claim at size.

The set of taxed pairs and the set of tax-exempt addresses are both add-only: nothing removes a pair from the tax, and nothing removes an exemption once granted. Adding a pair is validated against the canonical Uniswap factories, so the worst a compromised operational key can do is tax a legitimate INVEST venue. Granting a new exemption sits in a public four-day queue that governance can cancel, and the exemption dies if the seat that queued it changes hands first. Pairs themselves can never be exempted.

III. Conversion

Anyone can trigger a conversion — it is permissionless, and the protocol does not depend on a privileged party to run it. What a caller cannot do is choose the price.

Two bounds sit on every conversion, and a caller may only tighten them, never loosen them:

  • A clip limit. A single conversion may sell at most 50 bps of the pool's INVEST reserve, so one conversion moves the pool by roughly 50 bps at most.
  • A TWAP floor. The fill must land within 100 bps of a time-weighted average price taken over a window of thirty minutes to four hours. Spot price is never used.

The oracle behind that floor is a ring of price observations over the protocol-owned pool, sampled at most every thirty minutes. It is fail-closed: if there is no valid observation in the window, conversion refuses rather than falling back to spot. Reviving it needs one permissionless observation and a thirty-minute wait.

There is no cooldown between conversions, because repeated conversions in the same block are self-limiting — each one pushes the pool further below the TWAP floor until the next one refuses.

IV. The split, and the team decay

The proceeds of every conversion are split between the team and the treasury on a fixed schedule that starts when trading opens and runs for thirty days:

Days since launchTeam bps of the 500Treasury bps
0400100
7.5300200
15200300
22.5100400
≥ 300500

The decay is linear and continuous, not stepped; the table samples it. After thirty days the team share is zero forever and the entire tax funds the treasury.

Team compensation is this share and nothing else. There is no separate team token and no launch mint by default. The clock starts at the moment the tax is enabled, which is the same transaction that seeds the pool — so there is no untaxed window and no head start.

V. Accumulation

The treasury's share arrives at the reserve accumulator as USDG. The accumulator holds a weighted basket of up to eight reserve assets and buys that basket through Uniswap V4 routes that governance has pinned in advance. Each route is a specific, validated path — at most two hops, hookless unless a route explicitly opts in — so the accumulator cannot be steered into an arbitrary venue.

Every fill is floored against the Treasury's own price feeds, not against the pool it is trading in. A leg must deliver at least the feed value of what it spends, less a per-route tolerance band sized to cover the venue's own fees. The pool's price never sets the floor, which is what stops a manipulated venue from selling the treasury an overpriced asset.

Fills are additionally bounded by a per-fill size cap and a rolling daily cap per route, with tighter caps again when the asset being bought is priced by a manually posted feed rather than a Chainlink one.

A leg that cannot meet its floor is skipped, not forced. The stablecoin simply stays in the buffer for the next cycle. Nothing is lost, and anything left unspent for a day is swept into the Treasury as USDG rather than sitting idle.

Rotation

The same engine also runs rotation orders: an instruction to sell one existing reserve for another, either immediately, as a dollar-cost average, or spread over time. A rotation pulls the input out of the Treasury, swaps it under the same feed-based floor, and returns both the proceeds and any unspent input in the same transaction — so the Treasury is never left holding an IOU.

Rotations are bounded in three independent ways: by how much of any single reserve can be moved per day, by the same per-route caps accumulation uses, and by a daily ceiling on the marked value a rotation may cost the Treasury. That last one matters because reserves are marked after a haircut: rotating a 0%-haircut stablecoin into a 20%-haircut equity token books a marked loss even at a perfect fill, and the cap bounds how much of that the protocol will absorb in a day.

Because rotation is value-neutral inside its own transaction, it is deliberately governed by a different limit from the one that guards outright withdrawals — one that counts raw units of the token being rotated, so an inflated price on some unrelated reserve can never authorise rotating a real one away.

Why this funds rebases

Reserves grow. Supply does not. So the excess — treasury value above what already backs the circulating supply — grows with it, and staking emissions are capped by exactly that excess.

Trading volume becomes backing, and backing becomes emissions. That is the whole flywheel.

It also means emissions are honest about a quiet market: with no excess, a rebase mints nothing and does not fail. Staking never gets stuck, and the protocol never emits against reserves it does not have.

The opening gap

At launch, the protocol-owned pool is seeded with INVEST and USDG at $1.00 parity, and all of the LP is held by the Treasury. But the LP is valued conservatively — marked off the stablecoin leg with a haircut applied, never off the INVEST leg at market. The protocol never counts its own INVEST as backing.

The arithmetic consequence is that Investors Center opens slightly under-backed by design: the marked value of the LP is about 10% below the INVEST minted against it, so excess reserves are zero and rebases pay nothing until the tax has closed that gap. The gap is proportional to the size of the launch pool, which is a genesis parameter and not yet fixed.

Closing it takes taxed volume of roughly fifty times the gap at the launch treasury share of 100 bps, or twenty times once the share has fully vested to 500 bps.

What the mechanism will not do

  • It will not mint INVEST. Fee proceeds are delivered as backing, never as a deposit, so the tax cannot inflate supply.
  • It will not trade against spot. Every conversion is floored on a TWAP, and every basket fill on the Treasury's own feeds.
  • It will not force a bad fill. A leg that cannot clear its floor is skipped and retried later.
  • It will not let a hostile venue break the cycle. Each leg is isolated, so a misbehaving pool or hook can only make its own leg skip.
  • It will not accumulate an asset governance has not vetted. Both ends of every route must already be enabled reserves with a live price feed.

Lineage

The tax and conversion design is a port of NetNet, an existing protocol on Robinhood Chain whose contracts are verified on-chain. Investors Center carries the same 500 bps pair-keyed tax, the same clip-and-TWAP-floored conversion and the same decaying team split, and adds the accumulator, the basket and the rotation engine on top. Several NetNet mechanisms are deliberately not ported: its liquidity valuation formula, its TWAP-premium emissions and its team option token. Emissions here stay capped by excess reserves.