Club Pad mark
Log

The house programme · Documentation

How the house works

Every coin launched here is a pump.fun coin plus a house of exactly 100 seats. Seats are sold by the house in order, cheapest first. After that each seat always has a price its owner names, and anyone can pay it and sit down.

Overview

A house has 100 seats. A seat is an account of the Club Pad program, not a token: only 100 can exist per coin. What a seat earns, 1/100 each:

An unsold seat banks its 1/100. Its first buyer receives the backlog with the seat.

What is enforced, plainly. "Only 100 can hold" is enforced on the seat, not on the coin: a pump.fun coin is a plain Token-2022 mint without a transfer hook, anyone can hold and trade it anywhere. Only a seat earns the creator fees, the token stream and the other seats' tax and fees. Holding the coin without a seat earns nothing from the house.

House rules

  1. Every seat has a price its owner names. It can never be below the house floor (the price of seat 1), so nobody dodges the tax with a price of zero.
  2. Anyone can pay it and sit down. buy_seat needs no consent. One exception: a new owner who states more than he paid cannot be bought out for the next 10 minutes (the raise delay), so nobody can buy a seat and flip it at once at a higher price. The buyer pays exactly the stated price; 5% goes to the other 99 seats, the rest and the old owner's unused deposit go to the old owner's ledger.
  3. Owners pay 0.5% a day of their price to the other 99. The tax accrues every second from a prepaid deposit. A price cut is in force at once; a raise waits 10 minutes, so nobody can raise a price in front of a buyer.
  4. No deposit, no seat. When the deposit runs out the unpaid tax becomes arrears. The owner can still cure it with a deposit until anyone calls foreclose. Then the seat goes to a Dutch auction for 24 hours, from its last price down to the floor, and the whole auction price goes to the other 99 seats.
  5. Seats sold by the house go in order, seat 1 first. Seat k costs first_price × (1 + step)k-1; with the default step seat 100 costs about ten times seat 1.
  6. A wallet can hold at most 10 seats of one house. (Anyone can split across wallets: the tax, not the cap, is what prices hoarding.)
  7. Everything a seat earns lands in its owner's ledger and is paid by claim. A forced sale never depends on the seller's wallet.

Life of a seat

StateColourWhat anyone can doWhat the owner can do
Not releaseddimWait: seats sell in order–
Open from the housebrassbuy_primary at the ladder price, state a price, bring a deposit–
Heldplasterbuy_seat at the stated price, no consentset_price, deposit, withdraw (keeps the minimum cover), claim
Tax due (under 24 h of cover)greyBuy it at the stated priceTop up the deposit
In arrears (cover ran out)greyforeclose, or buy it: the purchase repossesses it and sells it as an auction at its last priceCure: a deposit pays the arrears first
In auction (24 h)brassbuy_seat at the falling price; the price goes to the other 99The old owner has lost the seat and keeps what it earned before

Worked example

A house with the default parameters: seat 1 at 0.05 SOL, step 2.3531% per seat, tax 0.5% a day.

  1. Take seat 25 from the house. Its ladder price is 0.05 × 1.02353124 ≈ 0.0873 SOL. The house splits it: 70% (0.0611) buys the coin for the seats, 20% (0.0175) to the dev, 10% (0.0087) to the house. You state your price, say 0.30 SOL, and bring a deposit: 7 days of tax = 0.30 × 0.5% × 7 = 0.0105 SOL.
  2. Hold it. Your seat pays 0.0015 SOL a day to the other 99 (0.0000152 each) and receives 1/100 of the fees, the token stream and every other seat's tax.
  3. Someone takes it. A buyer pays 0.30 SOL without asking you. 5% (0.015) goes to the other 99; 0.285 plus your unused deposit and your unclaimed earnings go to your ledger. Claim them any time.
  4. Or you stop paying. After 7 days the deposit is empty. Anyone forecloses; the seat runs a 24 h auction from 0.30 down to 0.05; the winner's price goes to the other 99.

Transaction steps on the site: Preparing (the transaction is built and simulated, a failing one never reaches your wallet) → Sign in wallet → Sending (the signed transaction is resent every 2 seconds until it lands) → Admitted, with a link to the transaction. buy_seat carries max_price = the price you saw: if the owner changed it meanwhile, nothing is spent and the site asks again.

Parameters

Read live from the program's Config. They are copied into every house when it opens: a house's rules never change after launch.

ParameterValue nowBounds in the program
Launch fee0.02 SOL0 to 0.5 SOL

Program

Program id CLBosWVh9VBoMmn19eDvZKRcfDo2u3cPAoLUwBA1d1At. Anchor 0.31. The coin is created by create_club through pump.fun's create_v2, with the house's vault as the coin's creator.

Accounts and seeds

AccountSeedsHolds
Config["config"]admin, treasury, pause flag, parameters for new houses, counters
Club (a house)["club", mint]name, symbol, uri, the house's copied parameters, seats sold, next price, accumulators, totals
Mint["mint", dev, nonce u32 LE]the pump.fun Token-2022 mint
Vault["vault", club]all SOL of the house: deposits, ledgers, dev and pad shares, the seat pool; pump creator of the coin
Seat["seat", club, index u8]owner, stated price, pending raise, deposit, tax clock, arrears, auction state, totals
Member["member", club, wallet]seats held, SOL and tokens owed (the pull ledger)

Instructions

InstructionWhoWhat
create_clubanyone (the dev)launch fee to the treasury, pump create_v2 (creator = vault), optional dev buy; alone in its transaction
buy_primaryanyonethe next seat only, at next_price ≤ max_price; 70/20/10 split; the house buys the coin; the backlog goes to the buyer
buy_seatanyone but the ownerresale at the stated price, or auction at the falling price; a seat in arrears is repossessed inside
set_priceownera cut is instant, a raise waits raise_delay_secs and needs deposit cover
deposit / withdrawownerdeposit pays arrears first; withdraw keeps min_deposit_secs of tax
pokeanyonesettles a seat: tax to the other 99, earnings to the owner's ledger, a due raise
forecloseanyonea seat in arrears goes to its 24 h auction
collectanyonepump creator fees → seats 80% / dev 10% / pad 10%
sync_tokensanyonecoin tokens sent to the vault join the stream
claimmember walletSOL ledger to the wallet, tokens to the wallet's own token account
claim_dev / transfer_devdevthe dev share (20% of seats sold by the house + 10% of fees)
flush_treasury, close_memberanyone / memberhousekeeping; every temporary account returns its rent
update_config, set_paused, set_treasury, set_hidden, propose_admin / accept_adminadminsee Admin below

Errors

Rendered from the program's IDL; the site shows these messages when a transaction is refused.

CodeNameMessage

The formulas

Verify on chain

  1. The coin's creator on pump.fun is the house's vault PDA ["vault", club], not a person.
  2. The house's Club account holds a copy of its parameters: the admin cannot change them.
  3. For every house: vault balance = rent floor + deposits + member ledgers + dev owed + treasury pending + the seat pool (asserted after every SOL-moving instruction).
  4. There are never more than 100 Seat accounts per house (SoldOut on seat 101).
  5. Every change emits an event: SeatSoldPrimary, SeatBought (with foreclosed_now), PriceSet (with effective_at), Settled, Foreclosed, Deposited, Claimed.

Admin: can and cannot

CanCannot
Pause new houses and seats sold by the houseStop resales, auctions, deposits, withdrawals or claims
Change parameters for future houses (within the bounds above)Change the parameters of a house that is open
Set the treasury wallet; hide a house from this siteMove any SOL or token of a house, or any seat
Hand over the admin role (two steps)Take a seat without paying its price

Closing the pad: the admin pauses new houses; everything already open keeps working without the site, the keeper or the admin. Anyone can foreclose, collect and settle.

Risks

FAQ

Why would anyone sell a seat they like?

They do not choose to. That is the point: the owner names a price, pays tax on it, and anyone can take the seat at that price. A high price costs more tax; a low price invites a buyer.

Can the owner raise the price when I try to buy?

No. A raise only takes effect after 10 minutes, and your transaction carries the price you saw as a maximum.

What does holding the coin without a seat give me?

Nothing from the house. Only seats earn the creator fees, the token stream and the tax.

Who runs the keeper?

The pad runs one that collects fees and forecloses seats past their cover. It has no special powers: every step it takes is a button anyone can press on this site.

HomeSeating planStatsLog