Mechanism

A vault that trades the floor, funded by its own token

HoodRally is a launchpad on Robinhood Chain. Its own token, $HOODR, is launched on letscash.fun and set on the launchpad contract. Each strategy is a token pointed at one NFT collection, opened by the launchpad.

Contracts

ContractAddressRole
StrategyFactory — The launchpad. Deploys one token + one vault per strategy and keeps the registry.
StrategyToken — Fixed 1,000,000,000 supply ERC-20. Deliberately plain: no transfer tax, no privileged transfer path.
StrategyFeeHook — Uniswap v4 hook charging the configured buy/sell fee, always on the ETH side, and routing it to the vault. Its address encodes its permissions, so it is deployed with a mined CREATE2 salt.
StrategyLiquidityLocker — Holds every strategy's v4 position. Contains no code path that decreases liquidity and has no owner, so the lock is structural rather than a promise.
StrategyRouter — A small, unprivileged v4 router this site trades through — a v4 swap must happen inside a PoolManager unlock, which a wallet cannot open on its own.
StrategyVault — Custody + accounting: ETH fee pool, NFT inventory, purchase prices, realized P&L, buybacks.
StrategyVaultDeployer — Runs new StrategyVault(...) on the factory's behalf. It exists because inlining that creation bytecode pushed the factory past EIP-170's 24,576-byte limit.
StrategyTokenDeployer — The same, for the ERC-20.
Uniswap v4 PoolManager — Not ours — the v4 singleton every strategy pool lives in. Note this is not the canonical cross-chain address; v4 was deployed separately here.
Seaport 1.6 — Not ours — the marketplace the vault buys and lists through.
StrategyExecutor — Shared keeper entry point. Holds nothing; batches calls into the vaults.

The cycle

  1. Launch. The factory creates a Uniswap v4 pool, puts the whole supply in as single-sided liquidity, and locks the position. The pool opens at the top of the range, so the position is 100% token and the launch needs no ETH at all. It is an ordinary v4 pool: any v4 router can trade it immediately.
  2. Fees accrue. The pool's own LP fee is zero. The configured buy/sell fee is charged by the hook instead, always on the ETH side, and swept into the strategy vault. The token itself has no transfer tax and can never grow one.
  3. executeStrategy(). A keeper resolves the cheapest live listing on OpenSea and passes the Seaport order in. The vault checks the collection, the price cap and the fee pool, fills the order, and stores the purchase price. This runs on its own, continuously and at intervals nobody can read off in advance.
  4. Listing. The vault calls Seaport.validate() as the offerer — a contract cannot sign, so the order is made valid on-chain — at purchase × (1 + markup).
  5. Repricing. The creator can cancel and re-validate the whole inventory at the current floor with one transaction.
  6. Settlement. When a listing fills, the proceeds are earmarked: they are excluded from the buying pool, and P&L is booked against the stored purchase price.
  7. Burn. 75% of the proceeds buy the strategy token back off its own v4 pool and burn it; 25% buys back $HOODR and burns it. The split is a constant, decided once at settlement, so a leg that has to wait can never change the ratio.

Who runs it, and when

Automatic, and deliberately not on a clock

Watched continuously

The launchpad runs a keeper against every strategy. It reads each vault's fee pool and the collection's cheapest live listing on OpenSea, and acts as soon as the numbers line up — buying the floor, settling what has sold, running the two burns. Nothing waits for someone to press a button, and nothing is triggered by opening this site.

At no fixed moment

Runs are spaced at random rather than on a schedule, and every strategy is checked on its own offset. A predictable keeper is one you can trade against: knowing the minute a vault will reach for the floor is enough to move a listing in front of it. There is no interval to count on.

Timing is all it decides

Every limit that matters is enforced by the vault when the transaction lands: the collection, the price cap, whether the fee pool covers the purchase, the 75/25 split. A keeper that runs late only delays the next NFT. It cannot spend more, buy elsewhere, or change what gets burned.

Nothing is stuck behind it

Sweeping fees, settling a sold NFT and running the burns are permissionless — anyone may call them on any vault, from the explorer, at any time. Only the floor purchase is keeper-gated, because it carries the order the keeper resolved.