How Nosh works

A memecoin launchpad where the creator fees do one thing: buy the floor of an NFT collection and hand the NFTs to the coin's holders. On Robinhood Chain, on Pons V2, with contracts doing the parts you would otherwise have to trust a wallet for.

How it works

  1. 1
    Launch

    You launch a coin on Pons V2 through the Nosh Launcher and pick a listed NFT collection. The Launcher deploys a tiny fee router for your coin and hands it to Pons as the coin's creator-fee recipient. The pairing is permanent.

  2. 2
    Trade

    People trade the coin on the Pons bonding curve, later on the Uniswap v4 pool. Pons credits creator fees (70% of the 1% curve fee, plus whatever creator tax you set) to the router in escrow.

  3. 3
    Sweep

    Anyone calls harvest(). The router claims from escrow and forwards 80% to the collection's vault, 20% to the protocol treasury. When the vault can afford a floor listing, anyone calls sweep() with a Seaport fulfillment; the contract only lets ETH out if an NFT comes in under the posted cap.

  4. 4
    Settle

    Each NFT is charged to the coin whose fees paid for it, and that coin's creator decides what happens: hold it in the vault, burn it, airdrop it with odds by balance, run a one-ticket-per-wallet lottery, or name a recipient. The two draw-based options settle through the raffle below, drawn from a drand round.

Fee split

Every wei that reaches a router is split the same way, forever: 80% to the paired collection's vault, 20% to the protocol treasury. The router is an EIP-1167 clone with no owner and no upgrade path; the split is a constant in the bytecode. Nothing goes to the coin's creator directly. Your upside as a creator is the coin.

The creator tax you choose at launch (0–10%, capped by Pons) sits on top of Pons's base creator share and flows the same way. Launch-block buys pay Pons's decaying anti-snipe tax, which also lands in the router, so snipers fund the first sweep.

The vault rule

A vault is a contract that holds ETH and can only turn it into NFTs of one collection. It does not have a withdraw function. Every sweep must pass all of these checks in the same transaction, or it reverts:

KEYVALUE
RULEspend ≤ floorCap × bought
TARGETallow-listed Seaport only
SPLIT80 / 20 vault / treasury
CAP TTL1h, keeper-posted
RAFFLEdrand round, pinned on request
SNAPSHOTpublished 15m, challengeable
CUSTODYNFTs exit via the raffle only
WITHDRAWno function, on any vault
HARVESTpermissionless, anyone calls it
PAIRINGfixed at launch, forever
  • The call target must be an allow-listed marketplace (Seaport 1.6 today).
  • The vault's NFT balance must go up by at least the number the caller promised.
  • ETH spent must be ≤ floor cap × NFTs bought. The cap is posted by the keeper from live floor data and expires after an hour.
  • Only token ids the caller listed as candidates may arrive; anything else reverts the whole sweep.
  • NFTs leave the vault only through the raffle distributor.

Raffles

The winning ticket comes from OpenVRF, a drand-backed randomness oracle built for Robinhood Chain. Nobody picks it, and nobody can re-roll it.

  1. Open. The keeper snapshots holders, builds a Merkle tree of ticket ranges, and opens the raffle with the root and a link to the full ticket list.
  2. Challenge. For 15 minutes the snapshot is public and no draw can happen. Anyone can fetch the list and recompute the root.
  3. Draw. Anyone calls requestDraw(id). The router pins the raffle to a drand round two to four seconds in the future — a value that does not exist yet, so the caller cannot aim it. Once pinned it cannot be changed or cancelled.
  4. Resolve. When that round publishes, its signature is verified on-chain and the word it yields sets the winning ticket.
  5. Claim. Anyone submits the winner's Merkle proof; the vault releases the NFT to the winner.

Delivery is not our keeper's privilege: PublicRelay lets any address submit the drand signature, and the result is identical whoever submits it. If a request somehow goes undelivered for 24 hours, anyone can redraw to a fresh round. A raffle always settles.

One caveat we do not paper over: the holder snapshot itself is still the keeper's word. The challenge window makes a bad root visible, but nothing on-chain rejects one. See the trust model.

External collections

Some collections live on chains this contract cannot call (zkSNARKs on Zcash, bought on Zilkroad). Those get an ExternalSweepVault: fees still arrive on-chain with per-coin attribution, but buying happens off-chain by the keeper.

  • ETH leaves only through an announced withdrawal with a one-hour time lock that anyone can watch and the owner can cancel.
  • The keeper publishes an audit key (a Zcash viewing key) so every purchase is checkable against the vault's receipts.
  • Each acquisition and each delivery is recorded on-chain with its receipt. A winner posts a destination address for that chain on the collection page — the raffle picks a Robinhood Chain address, but the NFT is not here, so it cannot be sent to one. The keeper then confirms the delivery txid.

Contracts & addresses

Each listed collection also has its own vault; find it on the collection page. Each coin has its own router; find it on the coin page.

FAQ

Do I need the collection's permission?+

No. Collections are listed by the registry owner, and a listed collection is fair game for any coin. The vault buys on the open market at floor; the collection's team is not involved and does not receive anything.

What happens after graduation?+

At 4.2 ETH of curve liquidity Pons graduates the coin into a locked Uniswap v4 pool. Fees keep accruing to the same router, so the same 80/20 split keeps flowing to the vault. The keeper switches from sweeping the curve to sweeping the pool.

Who is the keeper and what can it do?+

The keeper is an operator key. It can post floor caps (bounded by a one-hour TTL), feed listings to sweep, and open raffles with a holder snapshot. It cannot move ETH out of a vault, cannot pick or re-roll a raffle winner, and cannot block a raffle from settling — anyone can request the draw and anyone can deliver the result. Its remaining discretion is what to buy and at what price within the floor cap, and which holder snapshot to publish. Every input it posts is on-chain and can be checked after the fact.

Can the vault be drained?+

Not by anyone with a key. ETH only leaves inside a sweep that provably brought NFTs in under the cap, and NFTs only leave through a claimed raffle. The owner can pause sweeps for a collection or rotate the keeper, but cannot withdraw. External vaults are the exception: their ETH can leave through a time-locked, publicly announced withdrawal, which is why they carry an audit key.

Why does my coin's router show fees but the vault is empty?+

Fees sit in Pons escrow until someone calls harvest(). It is permissionless; the keeper runs it on a loop, and you can press the button on your coin's page.