contract address not set ยท program not deployed
tradelings is a coin on pump.fun whose creator fees hatch keyless accounts that trade the coin itself. Each account is called a tradeling. It has a bank of SOL, a bag of the coin, and one number written into it at birth, the market cap of the coin at that moment. Everything the tradeling ever does is measured against that number. It bids below it and sells above it inside a fixed band. It cannot buy above it and cannot sell below it. Nobody has a key to a tradeling, to the hatchery that funds them, or to the reserve that pays for their ticks. The program is the only thing that can move any of it, and the program only moves when the price crosses a line.
The reason for building it this way is simple. A coin that has been claiming fees at many different caps ends up with a standing bid under every one of those caps, and sell pressure that only ever arrives above someone's entry. Dips land on the tradelings born there. Runs hatch new ones higher up. The history of the coin becomes a book that defends itself.
The hatchery is one program account. It holds the constants, the counters, and any SOL claimed from fees that has not been turned into a tradeling yet. It has no withdraw instruction. Its only outgoing path is a hatch.
Creator fees accrue in the creator wallet the normal pump.fun way. The program watches the accrued amount whenever a tick arrives. When the accrued amount is at or above the claim line, currently 0.5 SOL, the tick performs a claim: the accrued lamports move into the hatchery, two percent of them move on to the crank reserve, and the rest funds one new tradeling immediately in the same transaction. One claim, one hatch, always.
At the moment a tradeling is hatched the program reads the pool reserves directly, the bonding curve before migration and the PumpSwap pool after, and computes market cap from them on chain. That value is written into the account as birth cap in lamports and it never changes. The site reads market cap for display from Birdeye once a second, but the program never touches Birdeye or any other off chain source. The birth cap in the account is the program's own reading.
The band is twelve percent each side of birth cap. Inside it sit six rungs. Three bid rungs at four, eight and twelve percent under birth cap. Three ask rungs at four, eight and twelve percent over it. The tradeling's bank is split into three equal lots, one for each bid rung. Its bag, whatever it holds, is sold one third at a time at each ask rung.
When live cap is at or under an unfired bid rung and the tradeling has that lot, it spends the lot buying. When live cap is at or over an unfired ask rung and the tradeling holds tokens, it sells a third. Every fill and lift is capped so that it moves the pool by no more than three hundred basis points. If a rung would move it more, the fill is cut to that size, the rung is marked partial, and the remainder fires on a later tick if the cap is still across the line.
Because the lowest bid rung is always under the birth cap and the lowest ask rung is always over it, a tradeling never sells for less than it paid. It can be dormant for a long time. It cannot lose.
A tick is a permissionless instruction. Anyone can send one. It is reimbursed from the crank reserve so it costs the sender nothing net. A tick reads the pool, computes live cap, checks the creator wallet against the claim line, and walks every tradeling whose band contains the live cap. For each of those it compares the live cap against each unfired rung and fires the ones that have been crossed. Then it updates states. A tick that finds nothing crossed and nothing to claim writes nothing.
There is no schedule. There are no epochs, no rounds, no snapshots, no timers. If the price does not move, nothing happens, no matter how many ticks are sent.
hatched means funded with no fills yet and the live cap inside the band. working means at least one fill or lift with the live cap inside the band. dormant means the live cap is outside the band; the tradeling holds what it holds and waits, and it goes back to working or hatched the moment the cap re enters. exhausted means the bank is under one minimum fill and the bag is empty. Exhausted is permanent. An exhausted tradeling is never removed from the roster.
A cycle closes when a tradeling has lifted its entire bag and its bank is above the bank it was hatched with. The difference is realized profit. If realized profit is at or above the hatch minimum, currently 0.05 SOL, the tradeling breeds. A child is hatched from that profit, stamped with the live cap at that instant, and given the parent's index as its parent. The parent's bank resets to its bank at birth, its six rungs re arm, and it keeps working. If realized profit is under the hatch minimum, it is added to the parent's bank and the rungs re arm without a child.
Generation zero is every tradeling hatched from fees. Generation one is every child of generation zero. And so on. The lineage page draws the whole tree.
The crank reserve is a second program account that holds only lamports. It is funded by two percent of every claim. It pays the transaction fee back to whoever sent a tick. It cannot be withdrawn from. If it ever runs dry, ticks still work, they just stop being reimbursed until the next claim tops it up.
A standing bid under every cap where a claim happened. Sell pressure that only lands above an entry. A share of supply held by accounts nobody controls, growing with every claim. A population that grows from trading, not only from fees. And a site that shows all of it from the chain, once a second, with nothing you can push.
The constants are printed on the program page. Until the upgrade authority is burned they can be changed by the deployer. When it is burned the program page shows none for the upgrade authority and nothing above can change again. The site never displays a constant as if it were a live reading.
The program id, the hatchery account, the crank reserve, the creator wallet and every tradeling account are linked to Solscan wherever they appear. Every event in the fills stream links to its transaction. Every claim links to its transaction. There is nothing on this site that cannot be checked against the chain.