How it works
Every trade pays a fee. The fees buy PONS. When PONS is up 20%, it posts for sale automatically. When that sale fills, the proceeds buy PSTR and it joins the protocol treasury.
Every step is on-chain and anyone can verify it.
01 The loop
02 The fee
Our token trades in our own 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 25 minutes after launch, the fee decays continuously.
| Time | Buy | Sell |
|---|---|---|
| 0 min | 17.0% | 20.0% |
| 5 min | 14.6% | 17.0% |
| 10 min | 12.2% | 14.0% |
| 15 min | 9.8% | 11.0% |
| 20 min | 7.4% | 8.0% |
| 25 min onward | 5.0% | 5.0% |
The rate can never rise. Nobody gets surprised mid-hold.
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 1 ETH, a new position can be opened.
| Phase | Volume 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 own 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
The sell price is set at purchase and cannot be changed. No oracle, no admin, no trigger. The position either fills at target or waits.
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.
Not because of a check in the code, but because of how the order is constructed. Selling lower is not an available outcome.
Nothing to manipulate, nothing to spoof, no oracle dependency.
There is no function that says "sell now." The market either reaches the price or it doesn't.
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:
- The ETH is collected.
- It buys our token on our own pool.
- Those tokens are held by the protocol.
The tokens are not burned. They are held in the protocol treasury. What the treasury is used for, including whether it ever funds staking, has not been decided.
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 Treasury
Not live yet
Staking is not built. The distribution model for the treasury has not been decided, and no commitment has been made to any particular one.
What is certain: the treasury grows with trading volume. Fees fund positions, positions fill when price reaches target, and each fill adds PSTR to the treasury balance. In a flat market with no fills, nothing is added.
What the treasury eventually funds has not been decided. This page will be updated if that changes.
08 What's actually been verified
Before any of this went live, the mechanism was tested against real on-chain state.
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 25 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 go into the protocol treasury. Burning removes them permanently; holding keeps them available for whatever the treasury is later used for.
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.
| Contract | Address |
|---|---|
| PSTR token | Not deployed yet |
| PONS target token | Not deployed yet |
| FeeHook | Not deployed yet |
| Strategy | Not deployed yet |
| PONS pool | Not deployed yet |