Documentation

How it works

Every trade pays a fee. The fees buy PONS. When PONS is up 20%, it sells automatically and buys PSTR instead, and what it buys is kept for stakers.

Every step is on-chain and anyone can verify it.

01 The loop

Trade on our pool
Hook takes a fee in ETH
1%marketing
4%treasury
Accumulates to 0.5 ETH
Buys PONS on-chain
Places a sell order 20% higher
Price reaches itorder fills into ETH
It waitsno loss taken
Buys OUR token
Held for stakers

02 The fee

Our token trades in a Uniswap V4 pool. A hook sits on that pool and takes a cut of each swap in ETH.

The token itself is a plain ERC20 with no transfer tax. Sending it wallet-to-wallet is free. Only swaps pay, and the fee is taken by the pool, not by the token contract. Nothing in the token can block, tax, or freeze a transfer.

The fee starts high and falls

For the first 44 minutes after launch, the fee decays continuously.

Buy 17% → 5% Sell 20% → 5% over 44 minutes
TimeBuySell
0 min17.0%20.0%
11 min14.0%16.25%
22 min11.0%12.5%
33 min8.0%8.75%
44 min onward5.0%5.0%
It only ever goes down.

The rate can never rise. Nobody gets surprised mid-hold.

It's a pure function of time.

No switch to flip, no transaction to send, no admin action to end the phase. Anyone can compute their exact fee at any future moment from the deployed constants.

The reason for the early window is simple: launch is when volume is highest, and that is when the treasury gets funded. The strategy needs capital before it can do anything.

Where the fee goes

  • 1% of every trade to marketing, flat, in both phases.
  • Everything else to the strategy treasury.

At steady state that's 4% of each trade into the treasury.

03 The treasury

ETH accumulates in the strategy contract. When it reaches 0.5 ETH, a new position can be opened.

PhaseVolume per position
Launch~$4,900
Steady~$23,500

The function that opens a position is permissionless, so anyone can call it. It only succeeds if the treasury actually holds enough. There is no privileged trigger and no waiting on anyone.

04 Buying the target

The treasury buys PONS on its Uniswap V3 pool, with a slippage cap on the purchase.

At the moment of the buy the contract reads the pool's live price and records it. That recorded entry price is what the sell target is measured against. Not an average, not an oracle, not an off-chain number.

05 The sell order

This is the piece most people will ask about, so it's worth explaining properly.

The protocol does not watch the price and sell when it hits a number. That approach needs a price feed, and price feeds can be manipulated. Someone could fake a spike, trigger the sell, and buy the tokens cheap.

Instead it places a resting sell order directly into the pool, using concentrated liquidity. The order sits at a price exactly 20% above entry. If the market reaches that price, the order fills automatically as part of normal trading. If it doesn't, the order just waits.

It can never sell below target.

Not because of a check in the code, but because of how the order is constructed. Selling lower is not an available outcome.

No price feed anywhere.

Nothing to manipulate, nothing to spoof, no oracle dependency.

Nobody can trigger it.

There is no function that says "sell now." The market either reaches the price or it doesn't.

Pushing the price up doesn't hurt us.

If someone moves the market to fill our order, they've paid our asking price. That's the outcome we wanted.

Every position is independent, with its own entry price, its own target and its own order. They stack into a ladder. If the price drops, the next position simply enters lower and sets its own target from there. One position waiting does not block another from filling.

06 The buyback

When an order fills, the position has converted to ETH. From there:

  1. The ETH is collected.
  2. It buys our token on our own pool.
  3. Those tokens are held by the protocol.

The tokens are not burned. They are kept, and they are what will fund staking rewards.

The buyback pays the same trading fee as everyone else. The protocol buying its own token is a normal market buy on the open pool, with no special path and no exemption.

07 Staking

Coming after launch

Stake the token, earn from what the protocol has accumulated through buybacks.

The APY is not a fixed number and will never be presented as one. Rewards are distributed pro-rata: your share is your stake divided by total staked, continuously. Rewards are released over a rolling window rather than all at once, so it isn't possible to stake right before a buyback, take a slice, and leave.

The displayed APY is calculated live from actual reward flow. It moves with real protocol performance. It is a measurement, not a promise.

08 What's actually been verified

Before any of this went live, the mechanism was tested against real on-chain state.

1.0 → 1.2224ETH through a full forked loop: buy, place, fill, harvest, buy back
4 / 4swap shapes capture the fee: buy and sell, exact-input and exact-output
199,614swaps backtested across the PONS pool's entire lifetime
100%of orders filled at a +20% target, median wait around 7 hours
34automated tests passing against forked live chain state
1700 → 500bps decay verified at every checkpoint, buy and sell

09 Frequently asked

Is the token taxed?

No. It's a plain ERC20 with no transfer logic. Wallet-to-wallet transfers are free. Fees are charged by the pool on swaps only.

Can the fee go back up?

No. It decays over 44 minutes to 5/5 and stays there. The schedule is a fixed function of time in a contract that cannot be replaced.

Who decides when to buy or sell?

Nobody. Buying is permissionless and gated on the treasury balance. Selling is a resting order that the market fills. There is no discretionary decision anywhere in the loop.

What if the price never reaches +20%?

That position waits. It doesn't sell at a loss and it doesn't block anything else. New positions keep opening at new prices.

Why hold the bought-back tokens instead of burning them?

They fund staking rewards. Burning removes them; holding directs them to people who stake.

Can I trigger it myself?

Yes. Opening a position and harvesting a filled one are both open to anyone. The contract enforces the conditions, so calling them early simply fails. You'd pay the gas.

10 Contracts

Robinhood Chain · chainId 4663. Addresses appear here once deployed.

ContractAddress
PSTR tokenNot deployed yet
PONS target tokenNot deployed yet
FeeHookNot deployed yet
StrategyNot deployed yet
PONS poolNot deployed yet