Draft
Overview#
Floorpad launches tokens that carry rules, called hooks. A creator picks one or two hooks from a catalog of 24, sets them within their bounds, and launches. From then on, every movement of the token, buy, sell or wallet transfer, is checked against those hooks. A transfer that breaks one is refused, with the reason.
The token is born in a locked Uniswap v4 pool and trades there from its first block. There is no bonding curve to fill and no migration step.
How a hook runs#
On Solana, a transfer hook is a program the token program calls. On an EVM chain, the token contract does it itself: its transfer function calls the token's hooks before moving any balance.
_update(from, to, amount):
kind = classify(from, to, amount) // buy, sell, send, other venue
for hook in hooks: hook.check(kind, from, to, amount) // reverts to refuse
move balances
for hook in hooks: hook.record(kind, from, to, amount)Knowing a buy from a sell
In Uniswap v4 every pool keeps its tokens in one shared contract, so a transfer out of it does not say which pool it came from. The launch hook fixes that: on each swap in a Floorpad pool, it writes in transient storage how many tokens that swap moves, and in which direction. When the token then moves in or out of the shared contract, it spends that credit.
- Covered by a credit: a
buyor asellon the token's own pool. - Not covered: the tokens came from or went to another pool,
other venue. - Neither side is the pool: a wallet-to-wallet
send. - Moves made by the launch contract itself (seeding the pool, collecting fees) skip the hooks, so no hook can freeze its own pool.
Launching#
- Name, ticker, optional description, and one or two hooks with their settings.
- The launch contract refuses any setting outside a hook's bounds.
- 1,000,000,000 tokens are minted, all of them into one locked position of the pool. None go to the creator.
- Hooks and settings are stored with the token and can never be changed.
Fees#
Every buy and sell pays 1%, in HYPE, the same for every wallet. In the first version it goes to the treasury, except where a hook claims a share of it:
| Hook | Takes from the fee |
|---|---|
| Holder rewards | A share, paid to holders pro rata |
| Last buyer pot | A share, paid to the last buyer when the timer ends |
| Floor builder | A share, placed as locked liquidity under the price |
| Buyback and burn | A share, spent buying the token and burning it |
Some hooks add a tax in the token on top, burned unless the hook says otherwise.
Combining hooks#
- Hooks run in the order the creator chose them.
- The first refusal wins, and its reason is the one shown.
- Taxes from several hooks add up, to 90% of a transfer at most.
The hooks#
Each one, with the bound the launch enforces. Open any of them in the catalog to watch it run.
| Hook | Group | Bound |
|---|---|---|
| Wallet cap | Fair launch | Starts at 0.1% or more and reaches 100% within 30 days. |
| One buy per block | Fair launch | At least one buy per block always goes through. |
| Opening tax | Fair launch | Ends within 60 minutes of launch. |
| Buy size cap | Fair launch | Starts at 0.05% or more and lifts within 7 days. |
| Buy cooldown | Fair launch | Never longer than 10 minutes. |
| Buys first | Fair launch | The window lasts 60 minutes at most. |
| Sell cap | Selling | At least 1% per window, and a window lasts 7 days at most. |
| Buyer vesting | Selling | Each buy fully unlocks within 7 days. |
| Minimum hold | Selling | Never longer than 24 hours. |
| Patience discount | Selling | 30% at most, gone within 7 days of holding. |
| Home pool only | Where it moves | The home pool can never be closed. |
| No wallet transfers | Where it moves | Buying and selling on the pool always stay open. |
| Transfer burn | Where it moves | 10% at most. |
| Market hours | When it trades | Open at least 4 hours a day. |
| Pulse | When it trades | Open at least a tenth of the time. |
| Ping pong | When it trades | Each phase lasts 60 minutes at most. |
| Circuit breaker | Market physics | A pause lasts 30 minutes at most, then trading resumes. |
| Breathing cap | Market physics | The cap never drops below 0.5% of supply. |
| Momentum brake | Market physics | A trade is never limited below a tenth of the base size. |
| Holder rewards | Who gets paid | Paid out pro rata, with no address excluded. |
| Diamond bonus | Who gets paid | 20% at most, split with no address excluded. |
| Last buyer pot | Who gets paid | The pot is always paid to a buyer; nothing stays locked. |
| Floor builder | Supply | Placed liquidity can never be withdrawn. |
| Buyback and burn | Supply | Burned tokens are gone for good; the budget cannot be withdrawn. |
Guarantees#
- Fixed at launch. No editable hook, no upgrade, no owner over a live token.
- No wallet singled out. No hook takes an address as a setting.
- Every limit ends or eases. Each sell limit has a minimum or an end date in its bounds.
- The pool is never blocked. The protocol's own moves skip the hooks.
Not offered, on purpose
- Blocklists and allowlists. A hook that names wallets can stop exactly the wallets it wants from selling. That is how a honeypot works, so no hook here can target an address.
- Editable hooks. A rule that can be changed after launch can be changed into a trap. Hooks and their settings are fixed when the token launches.
- Owner-controlled hooks. No pause switch, no admin wallet, no DAO vote over a live token. Nobody holds a key over a token's rules.
- Unbounded sell locks. Every limit on selling has a floor or an end date written into its bounds. A holder can always get out, even if slowly.
Known limits#
- A per-wallet rule sees addresses, not people. Splitting a bag across wallets gets around wallet caps and sell limits, as it does everywhere.
- A router or aggregator that receives tokens and passes them on is seen as a wallet in between, and can be refused where a direct trade would pass.
- Bridges, centralized exchanges and lending markets move tokens the hooks may refuse. Tokens with venue or transfer hooks will not work there.
- A hook call on each transfer costs gas, from a few thousand to a few tens of thousands per transfer.
- Uniswap v4 lets a trader keep tokens as claims inside the pool contract instead of withdrawing them. Withdrawing them later counts as another venue.
Status#
- Front: built, running on a simulation in your browser.
- Contracts: not written.
- Target chain: Elysium, if its EVM supports transient storage (Cancun) and Uniswap v4 is deployed there. Both need checking first.
- Audit: none yet. Nothing goes to mainnet without one.