Devpass: the house rules, in full
How it works
A dev opens a house. You take a seat: your SOL waits in the house under your own record. When the dev launches a coin, the house buys inside the same transaction, on a curve nobody has touched. Every number below is read from the program.
The show, in under a minute
One evening in the hall: a seat, one transaction, ninety seconds of shut doors, the bell, the house rules. Voice with captions; the numbers in it are an example.
The show, in five acts
- The dev opens a house. One house per dev wallet. The dev picks the house cap (1 - 40 SOL, default 20), the most one seat can put in per launch, at most 1 - 3 launches per UTC day (default 2) and the gap between launches (default 1 h). The dev can only make these safer for seats later.
- You take a seat. You pick your per-launch amount (from 0.01 SOL), how many launches your deposit covers (1 - 32), and how many of the dev's launches a day you join (the j-th launch of a day buys only for seats that allow j or more). You choose how your tokens leave: keep them (preselected) or sell at the bell. Deposit = launches x (amount + a refundable token-account deposit when you keep tokens).
- The dev launches. One transaction: the dev's pump.fun create, then our launch instruction right after it. The program checks the create is the dev's own, for this coin, with nothing before it, and that the curve is untouched. The house buys the sum of every joining seat's amount, minus the 1 % service fee. The coin does not exist before this transaction, so nobody can buy before the house.
- The exit window, then the bell. For 90 s nobody can move the house's tokens. Seats that chose "sell at the bell", and anyone who flips their share during the window, are sold as ONE batch at the window end, everyone at the same average price, in small chunks. Kept tokens are delivered after the batch.
- The judge. 6 h after a launch anyone can judge it, with two reads 1 min apart: coin not graduated and the curve holds less real SOL than the house put in at both reads = a strike. A strike freezes the house for 24 h; 3 strikes in a row close it for good and every seat can withdraw. An overdue judgment blocks the dev's next launch.
Numbers
| what | value | meaning |
|---|---|---|
| service fee | 1 % | of each subscriber's per-launch amount, taken at the launch. Nothing on deposits, withdrawals, exits or unused SOL. The dev pays us nothing. |
| per-launch amount | 0.01 SOL and up | your buy per launch; the dev's house sets the most one seat can put in (default cap / 4) |
| prepaid launches | 1 - 32 | how many launches your deposit covers; after the last one you are out automatically |
| launches you join per day | 1 - 3 | the j-th launch of a UTC day buys only for seats that allow j or more |
| house cap | 1 - 40 SOL | sum of all per-launch amounts in one house (dev picks, default 20 SOL) |
| dev launches per day | 1 - 3 | hard cap per UTC day (dev picks, default 2) |
| gap between launches | 1 h default | at least 10 min, never shorter than the exit window |
| exit window | 90 s | after a launch nobody moves the house's tokens; then everyone selling sells in ONE batch at one average price |
| dead-launch judge | 6 h + 1 min | coin not graduated and the curve holds less real SOL than the house put in, at two reads 1 min apart = a strike |
| strike | 24 h freeze | 3 strikes in a row close the house for good; every seat can withdraw |
Sell at the bell, worst case: while the coin is on the curve the batch sells back the bottom-most tokens of the curve, so a launch costs a bell seat about 3.4 % of its amount at most (pump fees 2 x 1.25 % + our 1 %), whatever the dev or outsiders do. After graduation to PumpSwap this floor no longer holds. Seats that keep tokens carry their own exit timing.
Who can do what
- You
- Withdraw everything not committed to a launch, any time, even while the program is paused or the house is closed. Leave the house; your record and SOL stay yours.
- The dev
- Decides when to launch (inside the day cap, the gap, the freeze) and which coin. Cannot buy before the house, cannot sell the house's tokens, cannot move your SOL. Pays the rents of each launch (refunded) and stays the creator of the coin; creator fees stay 100 % his.
- The keeper
- Runs the steps anyone can run: the batch sale, settling, delivering kept tokens, the judge. If it stops, the buttons on this site do the same.
- The admin
- Can pause new houses, seats and launches, change parameters for future houses only (24 h delay) and the fee wallet (3 days delay). Never touches a house, a seat or a launch.
- Platform
- pump.fun can redirect creator fees (admin_cto / set_creator). The program is upgradeable and unaudited until the audit is published. Program
Faniaz2XRiFTV5tK3hgzNZmHAPSe3CCHmedDJUujmTc9.
Honest lines
- The house is first, not alone: from the next transaction the coin is a normal pump.fun coin.
- Memecoins can go to zero. The house buying first is a price advantage, not a promise of profit.
- A dev is a wallet: a dev with a closed house can open a new one from a new wallet, with a clean record.
- Kept tokens are yours to sell; the bell floor does not cover them.
Errors
| code | name | message |
|---|---|---|
| 6000 | Unauthorized | Not allowed for this signer |
| 6001 | BadParams | A parameter is out of its bounds |
| 6002 | BadTreasury | The treasury must be a funded system wallet |
| 6003 | Timelock | The timelock has not passed yet |
| 6004 | NothingPending | Nothing is pending |
| 6005 | Paused | New pools, subscriptions and launches are paused |
| 6006 | PoolClosed | This pool is closed |
| 6007 | BadPoolCap | Pool cap out of bounds |
| 6008 | BadPerLaunch | Per-launch amount out of bounds |
| 6009 | BadDayCap | Launches per day must be 1..3 and can only go down |
| 6010 | BadMinGap | Minimum gap between launches out of bounds |
| 6011 | BadMode | Pick AUTO (1) or HOLD (2) explicitly |
| 6012 | BadDayClass | Day class must be 1, 2 or 3 |
| 6013 | BadPrepaid | Prepaid launches must be 1..32 |
| 6014 | PoolFull | The pool is full |
| 6015 | SubscriptionBusy | This wallet still has an active or unsettled subscription here |
| 6016 | NotActive | The subscription is not active |
| 6017 | TopUpTooFar | At most 32 launches ahead |
| 6018 | NotEnoughFree | Amount is above the free balance |
| 6019 | BelowRentFloor | The payout would leave the wallet below the rent floor |
| 6020 | NotSettled | Settle the earlier launches first |
| 6021 | Frozen | The pool is frozen after a strike |
| 6022 | DayCapReached | The dev already used today's launches |
| 6023 | TooSoon | Too soon after the previous launch |
| 6024 | JudgmentOverdue | A judgment of an earlier launch is overdue |
| 6025 | TooManyUnjudged | Too many launches waiting for judgment |
| 6026 | NotTopLevel | Our instruction must be top level |
| 6027 | NoCreate | The previous instruction is not pump create_v2 |
| 6028 | WrongMint | The create is for another mint |
| 6029 | BadCreate | Unexpected create_v2 data |
| 6030 | WrongCreator | The coin creator is not the pool dev |
| 6031 | BadFlags | Mayhem / cashback / custom fee / holder reward must be off |
| 6032 | PumpBefore | A pump instruction runs before the create |
| 6033 | CurveTouched | The curve was already traded |
| 6034 | BadMetadata | Bad metadata (name 1..32, symbol 1..10 printable) |
| 6035 | UriTooLong | Uri longer than 96 bytes |
| 6036 | UriNotIpfs | Uri must be IPFS |
| 6037 | BadAccounts | Wrong or missing account |
| 6038 | RentTooHigh | pump took more than the trade and the lent headroom |
| 6039 | SlippageExceeded | Fewer tokens than the minimum |
| 6040 | UnexpectedFill | Fill outside the fresh-curve band |
| 6041 | WindowClosed | The exit window is closed |
| 6042 | WindowOpen | The exit window is still open |
| 6043 | NotParticipant | This subscription did not take part in that launch |
| 6044 | OneFlushPerSlot | One flush per launch per slot |
| 6045 | PumpInTx | No pump or PumpSwap instruction may share this transaction |
| 6046 | ChunkTooBig | Chunk too big for the reserves |
| 6047 | NotSettling | The batch sale is not finished |
| 6048 | InBatch | This share is sold in the batch; nothing to exit |
| 6049 | JudgeOrder | Judge launches in order |
| 6050 | JudgeTooEarly | Too early to judge |
| 6051 | AlreadyJudged | Already judged |
| 6052 | NotJudged | Launch not judged yet |
| 6053 | LaunchOpen | Subscribers of this launch are not all settled |
| 6054 | NotMigrated | Coin not migrated |
| 6055 | SubsLeft | Subscriptions are still open |
| 6056 | LaunchesLeft | Launch records are still open |
| 6057 | SellBelowMin | Sell returned less than the minimum |
| 6058 | Math | Math overflow |
| 6059 | ChunkTooSmall | Chunk too small: at least half the cap, or the whole rest of the batch |