How it works

Bloodline Pad

Launch any coin. When it bonds, its heirs are born: part of its creator fees buys each heir in the same instruction that creates it, and the parent's holders get the heir's tokens by airdrop.

Heirs a coin3
Generations7
Seed to bear0.5 SOL
Fee split50 / 30 / 20
Between births6 hours
Claim window30 days
Launch fee2.5%
Program

Chapter IOverview

Bloodline Pad is a launchpad on pump.fun. Anyone launches a coin with their own name, ticker and picture. The coin's creator on pump.fun is not a person: it is the coin's nursery, an address of the Bloodline Pad program. Every creator fee the coin earns lands there.

Half of those fees are the seed. When the coin has bonded (graduated on pump.fun) and its seed is full, anyone can call the birth: the program creates the heir on pump.fun and buys it with the seed in the same instruction. Nobody can buy an heir before its own seed does. The tokens bought go to the heirloom and wait for the parent's holders, who claim them with a merkle proof.

An heir is a coin like any other. It trades on its own curve, earns its own fees, bonds, and has heirs of its own, up to seven generations. The root coin and all its descendants are one bloodline, and the main page draws it as a family tree.

Chapter IIThe life of a coin

Stage of a coinWhat it meansWhat can happen
On its curveTrading on pump.fun's bonding curve. Fees collect in its nursery.Anyone buys and sells. Anyone can book fees. No heir yet.
BondedThe curve is complete; the coin trades on PumpSwap.When the seed reaches the minimum, anyone can call the birth.
RestingIt had an heir less than the cooldown ago.The next birth waits for the cooldown. Fees keep filling the seed.
DoneAll heirs born, or the last generation.Its seed share is released to the founder and the treasury.
Stage of an airdropWhat it meansWhat can happen
WaitingThe heir is born; its tokens sit in the heirloom.The keeper posts the root, before the post deadline (born + 30 days).
OpenThe root is on chain; the file is published at /drops/<heir mint>.json.Anyone sends a claim for any leaf; tokens go only to the wallet in the leaf.
ClosedThe window ended.Anyone sweeps: every token left in the heirloom is burned.

Chapter IIILaunching a coin

The form asks for a name, a ticker, a picture and your first buy. One transaction, signed by you (the founder) and by a fresh mint key the page creates:

  1. The program checks the name (1 to 32 bytes, no control characters, no spaces at the ends) and the ticker (1 to 10 bytes, no spaces or control characters; lowercase and symbols are allowed).
  2. It tops the nursery up to its rent floor from the founder.
  3. The platform launch fee, floor(first buy x launch_fee_bps / 10000), goes from the founder straight to the treasury. It is paid on top of the buy; the buy itself reaches pump.fun whole. No buy, no fee.
  4. pump.fun create_v2: the founder pays the rents, the creator is the nursery.
  5. If the founder buys: the founder's token account is created and pump.fun buy_exact_sol_in runs with the founder as the buyer. The tokens are the founder's.
  6. The bloodline and the coin are written with a copy of today's parameters. Later config changes never touch them.
First buy0.5 SOL
Launch fee, 2.5% rounded down0.0125 SOL
Leaves the wallet, before rents and network fees0.5125 SOL

The picture you upload goes to IPFS through pump.fun's uploader, with the name and ticker, and becomes the coin's metadata.

Chapter IVThe nursery and fees

collect moves pump.fun's creator vault into the nursery. After the coin bonds, PumpSwap first sends its creator fees back to pump.fun with its own permissionless transfer_creator_fees_to_pump. sync then books every new lamport: 50% to the seed pool (which also takes the rounding dust), 30% to the founder and 20% to the treasury. Anyone can send all three.

New lamports in the nursery0.255016078 SOL
Founder, 30% rounded down0.076504823 SOL
Treasury, 20% rounded down0.051003215 SOL
Seed pool, the rest0.127508040 SOL

The nursery always holds exactly its rent floor plus seed pool plus founder and treasury shares waiting. claim_founder_fees pays only the founder of the bloodline; collect_treasury pays only the treasury in the config. Anyone may push either.

Chapter VThe birth transaction

bear can be sent by anyone. The keeper sends it with the heir's picture; anyone else passes an empty uri and the heir takes the parent's picture as it is.

  1. Checks: the parent's pump.fun curve is complete, it has fewer than 3 heirs, it is below the last generation, and the cooldown since its last birth has passed.
  2. It books whatever arrived since the last sync. The whole seed pool is the budget; it must be at least the minimum.
  3. The heir's name and ticker are derived on chain from the parent's (see Names and pictures).
  4. From the parent's nursery: rent floors of the heir's nursery and heirloom, pump.fun create_v2 (creator: the heir's nursery), the heirloom's token account.
  5. The rest of the seed goes to the heirloom, which buys the heir with one pump.fun buy_exact_sol_in, capped at what the heir's curve can take. Lamports it does not spend go back to the parent's seed. Rents may not exceed the rent reserve.
Seed pool of the parent0.127508040 SOL
Rents paid by the nursery and the buyer0.013926960 SOL
Back to the parent's seed pool0.000828240 SOL
Spent buying the heir0.112752840 SOL
Heir tokens in the heirloom3,968,275.267482

Chapter VIThe inheritance

The keeper takes an hourly snapshot of every bonded coin's holders. At a birth, a wallet's weight is the minimum balance it held of the parent across the last six snapshots before the birth, so buying just before a birth earns nothing. Bonding curves, PumpSwap pools and this program's addresses are left out. Each share is floor(heir tokens x weight / sum of weights).

The keeper publishes the snapshots and the split at /drops/<heir mint>.json, then posts the root with post_drop (only the bloodline's drop authority, fixed when the root coin was launched; once, before born + 30 days, total no larger than the heirloom holds).

Leaves and proofs

leaf = sha256(0x00 || index u32 LE || claimant 32 bytes || amount u64 LE), node = sha256(0x01 || min(a, b) || max(a, b)). The claim bitmap has one bit per leaf, so no share can be claimed twice.

Claiming

  1. The page reads the file, checks that its root equals the root on chain, and finds your leaf.
  2. claim_drop(index, amount, proof) creates your heir token account if needed (you pay its rent) and sends your share from the heirloom.
  3. Anyone may send a claim for any leaf. The tokens can only go to the wallet named in the leaf.

After the window, sweep_drop burns what is left. An airdrop that was never posted can be swept after born + 30 days.

Chapter VIINames and pictures

An heir's name and ticker are derived on chain from its parent's. Nobody picks them. The first heir is <Parent> Jr, the second Son of <Parent>, the third Lil <Parent>. The heir of an heir is named after that heir, so the names chain down the generations.

CoinTickerParentRule
PepePEPE-launched, generation 1
Pepe JrPEPEJRPepeheir 1: name + " Jr", ticker + JR
Son of PepeSONPEPEPepeheir 2: "Son of " + name, SON + ticker
Lil PepeLILPEPEPepeheir 3: "Lil " + name, LIL + ticker
Pepe Jr JrPEPEJRJRPepe Jrheir 1 of Pepe Jr, generation 3
Son of Pepe JrSONPEPEJRPepe Jrheir 2 of Pepe Jr, generation 3

Limits

Pictures

An heir's picture is its parent's own picture with a small badge, JR, SON or LIL by birth order, and its generation. The keeper composes it, uploads it to IPFS with the heir's name and ticker, and passes it to bear. Only the keeper can pass a picture. If anyone else calls the birth, the heir gets the parent's picture without a badge.

Chapter VIIIParameters

Copied into each bloodline when its root coin is launched. The main page shows the values the program holds now.

ParameterMainnetWhat it does
launch_fee_bps250 bps (2.5%)Platform fee on the first buy, paid on top of it to the treasury (hard cap 500 bps, 5%).
seed_min0.5 SOLSmallest seed pool that can pay for an heir.
rent_reserve0.03 SOLMost a birth may spend on rents.
nursery / founder / treasury5000 / 3000 / 2000 bpsHow booked fees split.
max_heirs3Heirs a coin can have (hard cap 9).
max_generation7Generations in a bloodline (hard cap 9).
birth_cooldown6 hoursBetween two births from one coin (not before the first).
drop_window30 daysTime to post an airdrop after a birth, then to claim it after the post.

Chapter IXProgram reference

Program . IDL at /idl/bloodline.json.

Account and instruction names are the program's own. A House account is one bloodline: the root coin and all its descendants.

Accounts

AccountSeedsHolds
Config["config"]admin, treasury, drop authority, paused, next bloodline id, parameters
House["house", id u64 LE]founder, the root coin's name, ticker, picture and mint, coins, deepest generation, its parameters, drop authority
Coin["coin", mint]name, ticker and picture, bloodline, parent, generation, birth order, heirs born, seed pool, founder and treasury shares, lifetime fees, the airdrop
Nursery["nursery", mint]system address; the coin's creator on pump.fun; holds its fees
Heirloom["heirloom", heir mint]system address; the heir's first buyer; owns the heir tokens until they are claimed or burned
ClaimMap["claims", heir mint]one bit per leaf of the airdrop

Instructions

InstructionWho can callDoes
foundthe founderlaunches a coin: a new bloodline and its generation 1 coin on pump.fun, the launch fee, optional first buy
collectanyonepump.fun creator vault to the nursery
unwrap_feesanyonecloses a nursery-owned WSOL account into the nursery
syncanyonebooks new nursery lamports into seed, founder and treasury
bearanyonecreates the heir and buys it with the seed; the heir's picture only from the keeper
post_dropthe bloodline's drop authorityposts the root of the heir's airdrop, once
claim_dropanyone, for any leafsends a leaf's tokens to the leaf's wallet
sweep_dropanyone, after the windowburns what is left in the heirloom
claim_founder_feesanyonepays the founder's share to the founder of the bloodline (waits if it is below an empty wallet's rent floor)
collect_treasuryanyonepays the treasury's share to the config treasury
propose_drop_authorityadminstarts a 72-hour timelock for a new drop authority
accept_drop_authoritythe proposed key, after 72 hoursbecomes the drop authority of bloodlines launched from then on
init_config, update_config, set_treasury, set_paused, set_adminadminsee Admin powers

Errors

CodeNameMessage
7200BadProofproof does not match the drop root
7201AlreadyClaimedthis leaf was already claimed
7202IndexOutOfRangeleaf index out of range

Chapter XVerify on chain

  1. The creator. Open any coin on pump.fun: its creator is ["nursery", mint] of this program, not a wallet.
  2. The launch fee. In the found transaction the founder pays the treasury floor(first buy x launch_fee_bps / 10000); the Founded event carries it as launch_fee.
  3. The birth. Open the bear transaction: create_v2 and buy_exact_sol_in for the heir run in the same instruction, and the buyer is ["heirloom", heir mint].
  4. The seed. The Born event carries seed, rents, spent and tokens. Seed equals spent plus rents plus what returned to the parent.
  5. The nursery. Its balance equals rent floor + seed pool + founder share + treasury share in the Coin account, right after a sync.
  6. The airdrop. Rebuild the root from the published file with the leaf and node rules above and compare it with drop.root in the heir's Coin account.
  7. The burn. After a sweep, the heir's supply went down by exactly drop.burned.

Chapter XIAdmin powers

The admin canThe admin cannot
Pause new launchesStop births, fees, airdrops or claims (pause blocks launching only)
Change parameters, the launch fee included (at most 5%), for bloodlines launched laterChange the parameters of a bloodline that exists
Change the treasuryMove a nursery's SOL or an heirloom's tokens anywhere but where the program sends them
Propose a new drop authority, which takes over after 72 hours and only for bloodlines launched laterChange the drop authority of a bloodline that exists
Hand over the admin roleMint, freeze or take anyone's coins
Upgrade the program (it is upgradeable)-

Chapter XIIRisks

Chapter XIIIQuestions

Can I launch any coin?

Yes. Any name and picture, any ticker within the limits above. It becomes generation 1 of its own bloodline.

Do I have to claim?

Yes, within the window. The keeper usually pushes claims for everyone; if it does not, the page has the button. Unclaimed tokens are burned, not kept.

Why did I get nothing though I held?

The weight is your smallest balance over the six hours before the birth. If you bought within them, or sold to zero once, that minimum is what counts.

Who pays for a birth?

The parent's seed pays the heir's rents and buy. The caller pays only the heir's Coin account rent and the network fee.

Can the founder dump the heir?

No. The founder holds no heir tokens unless they held the parent. Heir tokens leave the heirloom only to leaf wallets or to a burn.

What is $BLOODLINE?

The platform's own token. Its address appears on the main page at launch and nowhere before.