Proposal by @MemeIndexer · not affiliated with gage · open the interactive mock →
Gage v3 · protocol specification · draft 1 · 9 Sep 2026

Distribution Vaults: a professional way for large holders to sell on Robinhood Chain.

A v3 pool is not a discounted AMM. It is a per-token Distribution Vault that turns a whale's position into a capped, scheduled, vested supply drip. Holders exit near spot over weeks. Buyers earn a discount for taking vested supply. The project's treasury gets first refusal. Arbitrage bots get nothing, and the chart absorbs a known drip instead of an unknown cliff.

status proposalchain Robinhood Chain (EVM)scope any listed ERC-20author @MemeIndexer
The design in one line
Hide the seller where you can, make the vault boring, and make the flow rate the only thing the market has to read. A fixed pool at 3% under market is a standing limit order for bots. Time and vesting are what a bot cannot use, so the discount must buy time and vesting.

01Problem

Large holders of small-cap tokens have three exits today: sell into the AMM and eat 10 to 40% of impact, OTC through Telegram with counterparty risk and a leaked price, or hold and hope. Every one of these hurts the chart or the holder, usually both.

A · Dump into the AMM spot −37% in one block holder gets ≈ 500Kchart never recovers the trust B · Pool fixed at −3% exit poolask = 97% main poolspot 100% bot buys bot sells repeat until spot = 97% then the pool re-pins at 94%… 3% paid to bots, not to holderspool existence announces the seller C · Distribution Vault spot 0.30% of supply per day, 14 days holder gets ≈ 760K over two weeksbuyers are locked, treasury goes first
The same 40M-token position, 4% of supply, sold three ways. Only C sells it without the discount leaking to bots or the chart absorbing a cliff.

Why the 3%-under pool fails

Anyone can buy at 97% and sell into the main pool at 100%. Bots repeat until the main pool sits 3% lower. The whale still moves the price, one hop removed, and the discount is paid to bots. The pool's existence also announces "a whale wants out".

What actually moves a chart

Not the existence of supply, but two beliefs: a big holder wants out now, and the size is unknown. Remove the "now" with pace caps and vesting; remove the "unknown" by publishing the cap; remove the "who" as far as a public chain allows.

02Design principles

  1. Existence carries no signal. Every token listed on Gage gets a vault on listing day. A vault appearing is what people react to, so nothing ever appears.
  2. Sellers are pooled. One vault per token. Observers see one balance and one drip, never a per-seller position.
  3. Pace is capped and public. The vault may not sell more than a fixed share of supply per epoch. The overhang is bounded and known, which is strictly better than an unlabelled wallet that can dump any second.
  4. Discounts buy time. Public buyers receive vested tokens. The discount compensates the lock, so it is captured by holders, not flippers.
  5. Treasury first. The project's own buyback treasury has first refusal at a fixed discount. The discount stays inside the ecosystem.
  6. Never sell into a crash. A storm mode tightens the floor when the reference price is falling fast.
  7. Honest privacy. Deposits are public on a transparent chain. The protocol reduces linkability and removes urgency; it does not promise anonymity.

02bThe solution in one picture

Large holdersseveral, pooledprivate floors DepositRouterbatches · no sender event Distribution Vault one per token balance public, shares private daily tranche ≤ 0.30% supply ask: reference → floor storm mode on −15% / 24h fee 1% → Gage Project treasuryfirst refusal · −3%first 6 h of the day Public buyersdecaying ask · −3% to −8%receive vested positions VestingEscrow7 or 30 daysnon-transferable tokens tranche rest USDG back to holders, pro rata, minus 1% Every arrow is public except the first: who deposited, how much, and at what floor stays off the chain's readable state.
Tokens go left to right through a capped daily tranche; USDG comes back along the dashed path. The only liquid tokens that leave the vault go to the treasury, which already holds long term.

03Architecture

DistributionVault (one per token)

Holds pooled seller balances, runs epochs, mints tranches, tracks each seller's pro-rata share of proceeds. No per-seller balance is readable externally; only the vault total and the epoch cap.

DepositRouter

Batches deposits from several sellers into one transfer per block window and forwards to the vault. Removes the one-to-one link between a seller's transfer and the vault deposit.

TrancheAuction

Gradual Dutch auction per tranche: price starts at the reference price and decays toward a floor over the epoch until filled. Fills settle in the quote asset (USDC or WETH).

TreasuryHook

Optional per token. Gives the project treasury a right of first refusal on every tranche at a fixed discount during the first part of the epoch.

VestingEscrow

Public buyers receive a non-transferable vesting position that unlocks linearly. Claimable any time for the unlocked part. Cannot be sold, lent or used as collateral.

FeeModule

Takes the exit fee on settlement, routes it to Gage and to $GAGE buybacks per governance. Publishes fee totals per token.

Reference price. A 30-minute TWAP from the token's deepest on-chain pool, with a sanity band against the spot price. Tranches never reference a single block's price, which removes the obvious manipulation of pushing spot down right before a tranche opens.

04Lifecycle

1 · list
Vault deployed

Created by the listing itself. Parameters set from token defaults, adjustable by the project within bounds.

2 · deposit
Seller enters

Tokens go through the router into the vault. Seller receives an internal share and picks a floor no lower than the vault floor.

3 · epoch
Cap computed

Each epoch the vault mints tranches up to the pace cap. Sellers are served pro rata to their shares.

4 · ROFR
Treasury window

For the first quarter of the epoch the treasury may take any tranche at the fixed ROFR discount.

5 · auction
Public fill

Price decays from reference toward floor. Buyers fill any amount; they receive a vesting position, not liquid tokens.

6 · settle
Proceeds credited

Quote asset, minus fee, is credited to sellers pro rata. Unfilled tranche size rolls to the next epoch. Sellers withdraw proceeds or remaining tokens at will.

05Pricing

Each tranche is a gradual Dutch auction over the epoch length T. With reference price R and maximum discount dmax, the ask at time t since the tranche opened is

ask(t) = R × (1 − d_max × t / T)          for 0 ≤ t ≤ T
floor  = R × (1 − d_max)
ROFR   = R × (1 − d_rofr)                 available for t ≤ T/4 to the treasury only
treasury window · t ≤ T/4 R (spot) floor −8% ROFR −3% filled here in a calm market · about −4% t = 0 t = T (24 h)
One tranche, default parameters. In a quiet market buyers step in early and the seller clears near spot. In a nervous market the ask walks down to the floor and stops there.

Seller floor

A seller may set a personal floor above the vault floor. Their tranches simply stop decaying there and roll over unfilled. This is how a whale says "I will wait" without anyone seeing them wait.

Storm mode

If the reference price has fallen more than 15% over the trailing 24 hours, dmax is clamped to 3% and the pace cap halves for that epoch. The vault refuses to be the thing that turns a dip into a collapse.

06Vesting for buyers

Public fills settle into the VestingEscrow, not the buyer's wallet. Tokens unlock linearly over the vesting period from the fill time. The position is bound to the buyer's address.

Liquid discount · what a bot does with it buy at 97% sell at 100% same block · +3% riskless · repeat 40 times a day the chart, not the bot, absorbs the supply Vested discount · what a holder does with it fill at −5% day 1 · 14% unlockedday 4 · 57%day 7 · 100% nothing to flip: the unlocked part can be claimed, the rest carries seven days of price risk the 5% is compensation for that risk, so it lands with holders and the project treasury, never with bots
Same discount, two outcomes. Time and vesting are the two things a bot cannot use, so the discount must buy time and vesting.
Why this kills the bot. The only way to profit from the discount is to hold through the unlock. A 7-day lock on a memecoin is real risk, and that risk is exactly what the discount pays for. Anyone who wants liquid tokens buys on the AMM at spot, as today.

07Parameters

ParameterDefaultBoundsSet byPurpose
Epoch length T24 h6 h to 72 hGage governanceTranche lifetime and decay horizon
Pace cap0.30% of supply / epoch0.05% to 1.0%Project, within boundsThe published overhang
Max discount dmax8%3% to 15%Project, within boundsVault-wide floor
ROFR discount drofr3%1% to 5%ProjectTreasury's fixed price
ROFR windowfirst 25% of T0 to 50%Gage governanceHow long the treasury has priority
Vesting period7 days3 to 30 daysProject, within boundsBuyer lock
Storm trigger−15% / 24 h TWAP−10% to −30%Gage governanceWhen to stop selling weakness
Storm clampdmax 3%, cap ÷ 2fixedGage governanceBehaviour under stress
Exit fee1.0% of proceeds0.5% to 2%Gage governanceProtocol revenue
Router batch window20 blocks1 to 200Gage governanceDeposit unlinkability
Min deposit0.05% of supplyper tokenProjectKeeps the vault for size, not retail

08Privacy: what is visible and what is not

Robinhood Chain is a transparent EVM chain. The specification is precise about what it hides so nobody sells it as more than it is.

FactVisible on-chain?Mitigation
A vault exists for token XyesEvery listed token has one from day one, so it says nothing.
Total tokens in the vaultyesPooled across all sellers. Changes daily. Paired with a published cap, it reads as a schedule, not a threat.
Per-seller positionnoStored as internal shares; no public getter. Off-chain indexers cannot reconstruct it from events, which emit totals only.
Which wallet depositedpartlyRouter batches several sellers into one transfer per window and emits no per-sender event. A tagged whale wallet sending to the router is still a public transaction; determined analysts will link it. Casual observers will not.
Seller's personal floornoHeld privately; only the resulting unfilled rollover is observable in aggregate.
How much sold this epochyesDeliberately. The drip rate is the one number the market should read.
Who boughtyesVesting positions are per address. Acceptable: buyers are the party taking risk, and public fills build confidence.

Guidance to sellers

Deposit over several days from more than one address, through the router, and never in one lump. The protocol cannot enforce this; the app should make it the default path and explain why.

Future: shielded deposits

If Robinhood Chain ships a native privacy primitive or a trusted bridge from a shielded pool, the router accepts deposits from it. Until then the spec claims unlinkability against casual observers only.

09Economics

Seller

Exits at roughly spot to −5% over weeks with zero direct market impact, instead of −10% to −40% in one AMM trade. Pays a 1% fee on proceeds.

Buyer

Earns 3% to 8% below reference for holding through a 7-day unlock. Deeper tiers for longer locks. Buys from a known, capped source instead of chasing the chart.

Project treasury

First refusal at −3% on every tranche. Accumulates its own token below market with no slippage, funded by buyback revenue it already spends on the AMM at worse prices.

Gage

1% of every exit across every listed token, plus listing demand from projects that want their whales handled. Fee split between operations and $GAGE buybacks per governance.

Chart

A published drip of at most 0.3% of supply per day, sold to locked hands and the treasury, replaces unlabelled wallets that can dump 4% in a block.

Bots

Nothing. No liquid discount exists anywhere in the system.

09bVest Ratio: the public metric and the marketing engine

Distribution Vaults are only valuable to a project if the market can see them working. So the vault system publishes one number per token, the way perp venues publish a long/short ratio.

whale supply  = balances above 0.5% of supply, excluding the AMM pool, team locks and burns
Vest Ratio    = whale supply held in the token's Distribution Vault ÷ whale supply
biggest cliff = largest single liquid whale balance, as a share of supply
Same whale share of supply. Not the same chart. Token A · Vest Ratio 68% vested · leaves at 0.3%/day to locked handsliquid biggest single cliff: 2.1% of supply · badge: diamond Token B · Vest Ratio 9% liquid · can leave in one block biggest single cliff: 17.6% of supply · badge: cliff city Thresholds: ≥ 60% diamond · 35 to 60 whale-safe · 15 to 35 meh · < 15 cliff city. Movement matters more than level.
The ratio makes vested supply legible. A project cannot fake it with a bot farm, because it is measured from balances, and it can fall, which is why it is believed.

Leaderboard

Tokens ranked by Vest Ratio, by 24-hour movers, and by biggest cliff. The board is the acquisition channel: a project at the top gets a screenshot on X that says its whales chose the schedule. A project at the bottom gets a reason to call Gage.

Embeddable badge

One line of HTML the project puts on its site. Live ratio, live badge, links to the vault. It turns red under 15%. Marketing that can go wrong is marketing that gets trusted.

Positioning for projects. "Outsource your token distribution. Whales sell through the vault, vested and capped, instead of into your chart. The more of your supply sits with Gage, the fewer cliffs you have, and that number is public."

10Worked example

Token with 1B supply, reference price $0.020, market cap $20M, deepest pool $600K liquidity. A fund holds 40M tokens (4% of supply, $800K at spot). Selling that into the AMM would cost well over 30% of impact.

PathDays to exitAverage priceProceedsChart impact
AMM dump, one trade0≈ $0.0125≈ $500K−37% spot, panic
AMM, 10 daily clips10≈ $0.0170≈ $680Kvisible sell wall, −15% drift
Fixed 3%-under pool1 to 2$0.0194$776Kbots push spot −3% and repeat
v3 Distribution Vault, defaults14≈ $0.0192≈ $760K after fee0.3%/day drip to locked hands and treasury

At a 0.30% pace cap the vault clears 3M tokens per day, so the 40M position takes about 14 epochs if the fund is the only seller. Assume the treasury takes 40% at −3% and the public takes 60% at an average −5%: blended −4.2%, minus the 1% fee. AMM and clip figures are illustrative for a $600K pool and will differ per token; the vault figures follow from the parameters.

11Interfaces

interface IDistributionVault {
  // seller side (through DepositRouter in practice)
  function deposit(uint256 amount, uint256 floorBps) external returns (uint256 shareId);
  function setFloor(uint256 shareId, uint256 floorBps) external;
  function withdrawTokens(uint256 shareId, uint256 amount) external;      // unsold remainder, any time
  function claimProceeds(uint256 shareId) external returns (uint256 quote);

  // buyer side
  function fill(uint256 trancheId, uint256 quoteAmount, uint8 vestTier) external returns (uint256 positionId);
  function fillAsTreasury(uint256 trancheId, uint256 quoteAmount) external;  // TreasuryHook only, t <= T/4

  // views: totals only, never per seller
  function vaultBalance() external view returns (uint256);
  function epochCap() external view returns (uint256);
  function currentAsk(uint256 trancheId) external view returns (uint256);
  function stormMode() external view returns (bool);
}

interface IVestingEscrow {
  function claim(uint256 positionId) external returns (uint256 unlocked);
  function unlocked(uint256 positionId) external view returns (uint256);
  // no transfer, no approve
}

event TrancheOpened(uint256 indexed trancheId, uint256 size, uint256 reference);
event TrancheFilled(uint256 indexed trancheId, address buyer, uint256 amount, uint256 price, uint8 tier);
event EpochSettled(uint256 indexed epoch, uint256 sold, uint256 rolled, uint256 fees);
// no Deposit event with a sender: the router emits Batched(uint256 total) only

12Risks and open questions

13Rollout

Phase 1 · $GAGE only

Deploy the vault for $GAGE with the treasury hook wired to the existing buyback wallet. Prove the drip, the storm mode and the vesting escrow on one token whose treasury Gage controls.

Phase 2 · invited listings

Three to five Robinhood Chain tokens with known large holders and a cooperative treasury. Vault deployed at listing; parameters within bounds; public dashboard showing cap, sold per epoch and vault balance.

Phase 3 · open listings

Any token meeting a minimum pool depth. Deeper vesting tiers, shielded deposit path if the chain offers one, and governance over global bounds.

Positioning. "Gage v3 Distribution Vaults are the professional way for large holders to sell. Sell near spot over weeks, to hands that lock, with the chart reading a schedule instead of a dump."