{"dataset":"pumpfun_launches","format":"parquet (zstd), one file per UTC day","columns":[{"name":"mint","description":"pump.fun mint address (base58)"},{"name":"creator","description":"creator wallet"},{"name":"t0","description":"launch time, unix seconds (UTC)"},{"name":"launched_at","description":"launch time, ISO 8601 UTC"},{"name":"name","description":"token name at launch (text written by the creator)"},{"name":"symbol","description":"token symbol at launch (creator's text)"},{"name":"uri","description":"metadata URI (creator's text)"},{"name":"mayhem","description":"1 = a mayhem-mode launch: the curve account's is_mayhem_mode where the account was read, else our launch table's own mark (the two agree on every launch from 2026-09-01 to 09-30, 978 thousand; the table's mark is missing on 1,509 launches of 08-31). About a quarter of launches; a few percent of these curves are marked complete far below 85 SOL, so their `curve_complete` is not a graduation"},{"name":"quote_asset","description":"what the curve is quoted in: sol, usdc, pyusd, stock (a tokenized equity), other; null = not established"},{"name":"quote_mint","description":"mint address of the quote asset; null for SOL and when not established"},{"name":"quote_basis","description":"where quote_asset comes from: curve_account (read from the chain), curve_stream (our capture's curve feed; the asset is then sol or other, its mint unknown); null = not established"},{"name":"holder_reward","description":"1 = the creator fee is paid to holders (the curve account's is_holder_reward); null where the curve account is an older, shorter layout without the field (115 and 124 byte accounts: 185,824 launches 08-31..09-12, none after 2026-09-12) and when the account was not read"},{"name":"creator_fee_bps","description":"the curve account's creator_fee_bps; null where the curve account is the older 115 byte layout without the field (144,564 launches, none after 2026-09-09) and when the account was not read"},{"name":"dev_buy_sol","description":"creator's first buy, SOL (null on a curve not quoted in SOL)"},{"name":"dev_share","description":"creator's share of supply after the first buy"},{"name":"graduated","description":"1 = true graduation per our label rules (curve completed at about 85 SOL, or a migration seen while the curve was near completion); 0 otherwise; null on a curve not quoted in SOL"},{"name":"migrate_dt_s","description":"seconds from launch to the first migration/pool sighting, null if none (kept even when graduated = 0: a mayhem close or a fake pool)"},{"name":"rugged","description":"1 = the public rug rule fired: DRAIN (the curve held >= 5 SOL of real reserve and fell to <= 25 % of its running peak before any migration) or DEV DUMP (the creator sold >= 50 % of its holding within 300 s of launch and the reserve then fell); an observation rule, not verified fraud; most rugs are creator dumps on small curves (see rug_branch_inferred); a graduated launch can also be rugged; see /v1/labels; null on a curve not quoted in SOL and while unresolved"},{"name":"rug_dt_s","description":"seconds from launch to the rug, null if none"},{"name":"dev_first_sell_dt_s","description":"seconds from launch to the creator's first sell, null if none"},{"name":"peak_rs","description":"peak real SOL reserve of the curve (null on a curve not quoted in SOL)"},{"name":"terminal_rs","description":"last observed real SOL reserve (null on a curve not quoted in SOL)"},{"name":"curve_complete","description":"the curve account's own `complete` flag when it was read (curve_read_at): 1 on a graduated curve AND on a mayhem curve marked complete far below 85 SOL; null when not read"},{"name":"curve_read_at","description":"when the curve account was read from the chain, unix seconds"},{"name":"decoder_complete","description":"1 = launched after 2026-09-27T00:18:34Z, when the capture began decoding every buy instruction (before it about 48 % of buy rows and 32 % of curve SOL were invisible: n_buys, bundle wallets, holder shares and the rug rule's inputs are undercounted on 0-rows); 0 before"},{"name":"rugged_not_graduated","description":"1 = rugged and not graduated (the rug rule and a true graduation can both hold: a curve drained early, revived and graduated); 0 otherwise; null while rugged is unresolved"},{"name":"rug_branch_inferred","description":"drain | dev_dump_or_recovered | null: which branch of the rug rule the stored terminal state is consistent with (the table keeps the flag without its branch): drain = the curve held >= 5 SOL and ended at <= 25 % of its peak; dev_dump_or_recovered = the creator sold >= 50 % of its holding within 300 s and the reserve fell (most rugs on small curves), or a drain that recovered; null = not rugged"},{"name":"f10_dev_share","description":"dev_share at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1)"},{"name":"f10_insider_share","description":"insider_share at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint; tape_replay: null only where create_lag_s > 1)"},{"name":"f10_bundle_wallets","description":"bundle_wallets at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1)"},{"name":"f10_rep_n","description":"rep_n at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1. Counts the creator's earlier launches in our table, identical on both bases)"},{"name":"f10_rep_rug","description":"rep_rug at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1; null too when the creator has no earlier resolved launch in our table. tape_replay: the creator's record as it stood at the launch, from the final launch table; harness_sample: as the harness's live table stood, which wrote a rug an hour or more late, so the two bases differ)"},{"name":"f10_rep_grad","description":"rep_grad at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1; null too when the creator has no earlier resolved launch in our table. Bases differ as for rep_rug)"},{"name":"f10_rs","description":"rs at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (null on a curve not quoted in SOL; otherwise harness_sample: null when not sampled; tape_replay: null only where create_lag_s > 1. harness_sample rows before 2026-09-30T02:26:35Z read about 0.0004 SOL low on curves created after the 2026-09 rent change (one rent constant for every curve); tape_replay uses each curve's own rent)"},{"name":"f10_n_buys","description":"n_buys at the launch's early snapshot, f10_age seconds old (which snapshot: see features_basis) (harness_sample: null when the harness did not sample the mint, and on the ~8% of sampled rows whose short snapshot carries just insider_share, rs and age; tape_replay: null only where create_lag_s > 1)"},{"name":"f10_age","description":"age of the early snapshot, s. tape_replay: age of the launch's first buy or sell once its creation slot had passed, when that came within 3 s of the launch, else exactly 3.0 (the state at 3 s: nobody had traded yet, n_buys counts only creation-slot buys); harness_sample: age of the first snapshot under 10 s that the harness sampled (negative on a few rows). null where the early features are null"},{"name":"f60_rs","description":"rs at the launch's snapshot between 10 and 60 s of age, f60_age seconds old (null on a curve not quoted in SOL; otherwise harness_sample: null when not sampled between 10 and 60 s; tape_replay: null only where create_lag_s > 1)"},{"name":"f60_insider_share","description":"insider_share at the launch's snapshot between 10 and 60 s of age, f60_age seconds old (harness_sample: null when unsampled; tape_replay: null only where create_lag_s > 1)"},{"name":"f60_age","description":"age of that snapshot, s. tape_replay: age of the launch's first buy or sell from 10 s on, else exactly 10.0 (the state at 10 s: no trade since); harness_sample: age of the first snapshot between 10 and 60 s that one of the harness's strategies produced. null where the features are null"},{"name":"features_basis","description":"where this row's f10_* and f60_* come from. tape_replay: replayed offline from our archived event tape for EVERY launch of the day with the harness's own snapshot rule, null only where create_lag_s > 1. harness_sample: read from our live shadow harness's sampled snapshots, so only the launches it happened to sample have values (about half, a biased half: known issue features_are_a_sample). Days from 2026-09-27 are tape_replay once their replay exists (the newest day file is harness_sample until then, about a day after the day ends); launches before the decoder fix of 2026-09-27T00:18:34Z are never replayed (the tape holds only part of their buys) and stay harness_sample. Never null"},{"name":"create_lag_s","description":"seconds between the validator's own time stamp of the launch's create transaction and the moment our capture received it: how late we learned of the launch. Above 1 s the early state we computed is not the launch's true state at that age, so every f10_* and f60_* of the row is null; our harness's rows share the defect and are not corrected. A few milliseconds below 0 on some rows (clock skew). Null on harness_sample rows (not measured there) and on any tape_replay row whose create line carries no validator time stamp (none on 2026-09-27..09-30)"},{"name":"silence_3s","description":"seconds inside the launch's first 3 s with our capture receiving no pump.fun curve event at all for at least 1 s (a stalled stream or a reconnect), so trades of the launch may be missing from its f10_* values; 0 = none. The f10_* values are kept, not nulled: read them with this column. Null on harness_sample rows"},{"name":"silence_60s","description":"seconds inside the launch's first 60 s (the f60_* window) with our capture receiving no pump.fun curve event at all for at least 1 s, so trades of the launch may be missing from its f60_* values; 0 = none. Kept, not nulled: read the f60_* values with it. Null on harness_sample rows"}],"labels":"/v1/labels","sample":"/v1/datasets/sample/pumpfun_launches.csv","sample_day":"2026-10-28","known_issues":[{"id":"legs_and_fee_sweeps_from_2026-10-06","columns":"n_buys, n_sells and the buyer/seller counts inside f10_*/f60_*, bundle wallets, holder reputation counts","issue":"FROM the capture relaunch of 2026-10-06 (the time is in the backlog note NOTE_capture_multi_ix_seam_2026-10-06) a transaction carrying several pump.fun trade instructions for one mint (a 12-wallet bundle buying or dumping in one transaction, a router's sell+buy+buy rotation) is booked as one trade per instruction, each with its own wallet, side and SOL; before it the capture booked such a transaction once, under its first instruction's wallet and side, with the whole transaction's SOL. About 0.66 % of trade records and 5.6 % of booked SOL were in such transactions on 2026-10-05, and up to 2.9 % of mints gain buy counts (median +2). pump.fun's fee sweeps (the fees a v3 trade leaves in the curve, moved out later) are booked too and excluded from the trade counts. Reads that count trades or dumping wallets across the seam see slightly more of both after it.","what_to_do":"Split any read of buy, seller or dumping-wallet counts at the relaunch time, or restrict it to launches after it. Per-mint SOL totals move only on transactions that mixed sides (a sell beside buys was booked before as one trade on the first instruction's side); same-side bundles booked the same SOL once before and book it once in legs now."},{"id":"features_are_a_sample","columns":"f10_*, f60_*, features_basis, create_lag_s, silence_3s, silence_60s","issue":"FROM 2026-09-27 (the first replayed day, features_basis = tape_replay) the early features cover every launch of the day: they were replayed offline from our archived event tape with the harness's own snapshot rule (the first buy or sell once the creation slot has passed, within 3 s of the launch, else the state at 3.0 s; f60 the first from 10 s on, else the state at 10.0 s), so there is no sampling bias in them. They are null only where create_lag_s > 1: the launch reached our capture more than 1 s after the validator stamped it (1.7 % of launches on 2026-09-28, 2.7 % on 09-29, 15.8 % on 09-30 with 57 % in its 16:00Z hour), and then the early state is not the launch's own. A launch nobody traded in its first 3 s carries the state at 3 s (n_buys 0, f10_age 3.0): 39-45 % of classic launches. A day file is harness_sample until its replay exists (about a day after the day ends); launches before 2026-09-27T00:18:34Z are never replayed (the tape holds only part of their buys) and keep what follows. harness_sample rows: feature snapshots exist only where our shadow harness sampled the mint: about half of the launches from 2026-09-03 (none on 08-31 and 09-01, a fifth on 09-02; three quarters of mayhem launches and half of the others on 2026-09-29), and f60_* only on the mints its copy strategies touched. The sampling is not random: a launch with no early activity is less likely to be sampled. MEASURED 2026-10-01 on the 25 released days: among resolved classic launches from 09-03 the recorded rug rate is 81.6 % where an f10 snapshot exists (191,635) and 39.5 % where none does (210,451): the sampled rows are a different population, not a random half.","what_to_do":"Read features_basis first. tape_replay rows: use the whole population; a null f10_* with create_lag_s > 1 is capture lag, not 'nothing happened'; read silence_3s > 0 as 'trades of this launch may be missing'; f10_age 3.0 with n_buys 0 means no trade in the first 3 s; rep_rug and rep_grad are the creator's record as it stood at the launch, which differs from the harness's lagging values on earlier days. harness_sample rows: never model the sampled rows as if they were all launches: weight by the sampling, or restrict the claim to sampled launches. A null with f10_age null means 'not sampled'. A null with f10_age present means a short snapshot (dev_share, bundle_wallets, rep_n, rep_rug, rep_grad and n_buys null together, about 8% of sampled rows, mostly snapshots at age 0.0-0.05 s), a creator with no resolved earlier launch in our table (rep_rug, rep_grad; about 27% of full snapshots) or a curve not quoted in SOL (rs). Never read a null as zero. Model on the sampled rows and say so, or use the outcome columns alone."},{"id":"decoder_seam_2026-09-27","columns":"f10_n_buys, f10_bundle_wallets, peak_rs, rugged, rug_dt_s","issue":"Before 2026-09-27T00:18:34Z our capture did not decode two buy instructions (buy_exact_sol_in and Jupiter's buy_exact_quote_in_v2): about 48% of buy rows and 32% of the SOL entering curves were not booked. In this table f10_n_buys and f10_bundle_wallets are undercounts before that time (90th percentile 3 before, 4 after), and a peak reached only through such buys is understated, so `rugged` misses some rugs before the seam. `graduated` is not affected (see validation).","what_to_do":"Split any model or statistic at that timestamp."},{"id":"curves_quoted_in_other_assets","columns":"quote_asset, quote_mint, and every SOL-denominated column","issue":"Not every pump.fun curve is quoted in SOL. USDC-quoted curves are in the table from its first day (3% to 6% of launches until 2026-09-08); from 2026-09-09 other assets joined (the PUMP token, tokenized stocks, PYUSD, other coins): 10% to 22% of launches in mid-September, 6% to 13% since, 202 quote mints in all, 10.0% of the 1,010,016 launches read on 2026-09-30. Our launch table books reserves as SOL, so on those rows the SOL columns would be quote units read as SOL: they are null here, and `graduated` / `rugged` are null too. `curve_complete` still says whether such a curve completed (2,173 did).","what_to_do":"Filter on quote_asset = 'sol' for anything measured in SOL."},{"id":"mayhem_mode","columns":"mayhem, curve_complete, migrate_dt_s","issue":"Mayhem-mode launches (22% to 38% of launches on every day of September 2026, 28.6% overall) are an opt-in setting in which pump.fun's own agent may trade the coin. About 2.5% of them are marked complete on the chain and get a pool at well under 85 SOL (median peak 0.8 SOL, a median six minutes after launch, on 2026-09-29). Those are not graduations in this table: graduated stays 0 and migrate_dt_s records the pool sighting.","what_to_do":"Separate mayhem rows before computing a graduation rate or training on outcomes."},{"id":"late_outcomes","columns":"graduated, rugged, peak_rs, terminal_rs, curve_complete","issue":"Outcomes settle late: the newest three day files are rebuilt every night, and a few percent of the newest day's rows are still unresolved (null rugged / peak_rs).","what_to_do":"Use files at least three days old for labels, or re-download the newest ones."},{"id":"coverage","columns":"all","issue":"One recorder on one stream: a launch our capture did not see is not in the table, and a launch whose only trades it missed has peak_rs 0. Recorder restarts are listed in the API's changelog; the capture has run without a known multi-hour gap since 2026-08-25.","what_to_do":"Count launches against an independent source before using the table as a census."},{"id":"unresolved_early_days","columns":"rugged, rug_dt_s, dev_first_sell_dt_s, peak_rs, terminal_rs","issue":"On 2026-09-01..09-04 a large share of SOL-quoted launches never resolved: null rugged / rug_dt_s / dev_first_sell_dt_s / peak_rs / terminal_rs on 21.8 % of 09-01, 63.9 % of 09-02, 43.9 % of 09-03 and 12.8 % of 09-04 (44,866 rows; 08-31 has none and later days a few percent); 462 of them are labelled graduated and 968 have curve_complete = 1 (measured 2026-10-01 on the 31 day files). The cause was not traced; the days coincide with the label recall dips below.","what_to_do":"Drop rows with a null outcome from any outcome model, or drop those four days; never read the nulls as 'did not rug'."},{"id":"graduated_label_recall_by_day","columns":"graduated","issue":"Against the chain's own complete flag the graduated label's recall is 98.5 % over the month but 97.4 % on 09-01, 89.5 % on 09-02, 94.8 % on 09-03, 97.2 % on 09-04 and 97.8 % on 09-15; precision is 99.98 % on every day (measured 2026-10-01). The dips fall on the unresolved early days above.","what_to_do":"For a graduation label use curve_complete on SOL-quoted, non-mayhem launches where it is present, and graduated elsewhere."},{"id":"recorder_restart_seam_2026-09-29","columns":"migrate_dt_s","issue":"The recorder was restarted at 2026-09-29T10:56:23Z and migrate records now appear at the migration transaction instead of the pool's first swap, so migrate_dt_s is systematically shorter after that moment (the median shifts from 09-26 on as the change rolled out through late rows).","what_to_do":"Do not compare seconds-to-graduation across 2026-09-29T10:56Z without allowing for the seam."}],"validation":{"what":"our `graduated` label against the curve account's `complete` flag, on launches quoted in SOL that are not mayhem mode and whose curve account was read","days":59,"classic_sol_launches":1379897,"chain_complete":42893,"labelled_graduated":42403,"both":42333,"recall":0.9869,"precision":0.9983},"note":"Every launch our own capture saw that day; outcomes follow the label rules documented at /v1/labels and settle within three days, so the last three days are rebuilt nightly. Facts from public on-chain activity, not advice."}