Launch Tape

持续记录中 Solana · pump.fun · 每天,每一笔交易

Solana 新币发行,全程记录。

先找到能赚钱的策略,再开始。

先用每一笔真实的 pump.fun 成交测试你的机器人规则,再投入一分钱。

常规回测+2.3%每笔交易2026 年 10 月 10 日,14:00-16:00 UTC,67 个币
同样的规则,用真实成交数据回测-0.9%每笔交易2026 年 10 月 10 日,14:00-16:00 UTC,67 个币

完整一天,2026 年 10 月 12 日,775 个币:真实成交数据每笔 -3.9%,常规回测 -0.9%。

来自我们测试页面的示例规则:毕业后 15 秒买入,3 分钟后或跌 20% 卖出,每笔 0.1 SOL。基于真实成交记录的回测会模拟延后一个区块成交、计入手续费,以及下单量对池子价格的影响。

毕业后 30 分钟7,771 个 pump.fun 毕业币,2026 年 10 月 3-14 日,相对毕业后 10 秒的价格
仍在上涨24.7%
翻倍或以上9.0%
下跌 90% 或以上57.6%

大约每 4 个里有 1 个,30 分钟后仍在上涨。大多数不是。在买入之前找出是哪几个,才是关键,而唯一诚实的办法,就是看每一笔真实发生过的成交。

获取最新的完整一天,$10 免费测试我的规则 免费 2 小时样本

每一笔交易 · 可在 ChatGPT 中打开 · 文件打不开就退款

只是看看?先免费看看数据长什么样(能直接丢进 ChatGPT/Claude,手机上也行):2 小时的毕业币,一币一行(19 KB CSV),或一个币,30 分钟,每一笔交易(0.4 MB CSV)。然后用完整一天来测试:$10。 拿到样本后怎么做

试试这个

把 graduates-2026-10-10-1400-1600utc.csv 丢进 ChatGPT 或 Claude,然后问:哪些币在前 10 分钟内涨到过 2 倍,它们有什么共同点?哪些币跌了 80%,第一笔大额卖单是什么时候出现的?

完整一天就是同样的表格,大约 200 KB,照样放得进 App:$10。

  1. 下载免费样本,或你买的某一天数据
  2. 丢进你的 AIChatGPT、Claude,或你自己写的代码
  3. 问问实际结果这些币后来怎么走,你的机器人按这套规则交易会有什么结果(提示词在这里)

自 2026 年 10 月 3 日起开始记录,每天增加一天的数据。数据缺口会标记在文件里,绝不编造填补。

为什么有这个网站

我们用 AI 做了一个 pump.fun 机器人。纸面回测看起来很好。然后我们用真钱跑了完全相同的规则。

四个钱包,在新毕业币上做了 139 笔真实交易:净亏 US$17.45。第二个机器人在新池子里提供流动性:65 个真实仓位,净亏 US$134.70。本来就是小钱,但这堂课还是花了大约 US$150。

真实成交比信号晚一个区块;每一次买卖来回大约要付 2% 的手续费和滑点;而且在 9 月 23 日之前,我们自己的价格记录混用了两个相差约 6% 的数据源,所以纸面机器人“抓到”的一些波动根本不存在。

问题出在数据,不在 AI。所以我们开始从链上记录每一次发币,连同成交和手续费,按天出售。

也许有比我们更好的规则。现在没人知道。这份记录就是找出答案的方法。

01

我们记录什么

大白话说明 · 右边是对应的数据集名称

全部数据直接从链上读取,全天候持续记录,缺口会标记出来,绝不藏着掖着。每个数据集每天一个文件。

我们不记录什么:不提供钱包标签,也不判断谁是跑路项目方(rugger),不碰社交媒体。

02

数据集

7 个数据集 · 搭建交易机器人最先需要的两个数据集,另外还有五个
gradtrades 自 2026-10-03

每个毕业币的前 30 分钟,逐笔交易

每次毕业后 30 分钟内 PumpSwap 上的每一笔买卖:钱包、代币数量、SOL 数量、实际成交价、交易后的资金池储备、交易者交易前的余额,以及全部三种手续费。

每日行数
~5,034,000(2026 年 10 月 10 日)
行类型
trade 417,347 · grad 105 · end 88 · down 2 · up 2

每日文件:gradtrades-YYYY-MM-DD.jsonl.gz 和 .parquet,外加 graduates-YYYY-MM-DD.csv,一天汇总成一张表(各列说明)。跟踪的币:毕业时市值 300–600 SOL,同一时间最多跟踪 30 个币。失败的交易不计入。

一天汇总成一张表:graduates-YYYY-MM-DD.csv

UTC 当天每个 pump.fun 毕业币一行,每天大约 200 KB,由当天的 gradtrades 构建而成(背后是谁则来自 pregrad)。可以在 Google Sheets 或手机上的 Numbers 打开,也可以直接丢进 ChatGPT 或 Claude app 问发生了什么。每个数字都来自你拿到的文件;来源缺失的列就留空,绝不瞎猜。免费样本:graduates-2026-10-10-1400-1600utc.csv(105 个币,19 KB)。百分比是纯数字(−80 = 下跌 80%);时间为 UTC。

mint该币的 token mint
symbol, name代号和名字(来自 pregrad 对该币的记录;没有时留空)
grad_time_utc毕业时间,YYYY-MM-DD HH:MM:SS
pool它的 PumpSwap 资金池
cap_sol_at_grad毕业时以 SOL 计的市值(price × 1e9;普通毕业币约为 496)
followed1 = 我们跟踪了它的交易(市值 300–600 SOL,且及时发现);0 = 未跟踪,交易相关列留空
curve_fill_sec从创建到毕业所花的秒数(低于 5 秒 = 通过捆绑交易快速完成的发币)
dev_hold_pct_at_grad毕业时创建者仍持有的供应量百分比
tape_sec当天文件涵盖的毕业后交易时长(秒),最多 1800;若该币在当天最后 30 分钟毕业,或我们提前停止跟踪,数值会更小。低于 600 时,10 分钟相关列数据不完整
trades_10m, buyers_10m, sellers_10m前 10 分钟的交易数,以及买入 / 卖出的不同钱包数
ref_cap_sol参考价格,以 SOL 市值表示:按链上顺序,截至毕业后第 10 秒的最后一笔交易完成后的池内价格(若那之前没有交易,则用第一笔交易之后的价格)。下面所有百分比都是相对它计算的,和我们帖子里用的参考一致
low_10m_pct, high_10m_pct从参考交易起到毕业后 10 分钟为止,池内价格相对参考价的涨跌幅(%)的最低点和最高点(−50 = 腰斩;100 = 2 倍),按链上顺序逐笔交易读取
touched_minus80_10m, touched_2x_10m最低点达到 −80% 或更差 / 最高点达到 2 倍或更高时为 1
first_big_sell_sec, first_big_sell_pool_pct10 分钟内第一笔占资金池代币 10% 或以上的单笔卖出发生的时间(毕业后秒数),以及这笔卖出占资金池的比例;没有这种卖出时留空
dump_sec来自 pregrad 的 outcome 行:记录器第一次标记为“抛售”的卖出发生的时间(创建者抛售、毕业所在 slot 的最大买家抛售,或按规模规则判定的大额抛售);也就是我们帖子里说的“大户抛售”。没有出现或没有 outcome 行时留空
end_10m_pct, end_30m_pct10 / 30 分钟内最后一笔交易之后池内价格相对参考价的涨跌幅(%)
data_gap该币的 30 分钟窗口内出现过记录器缺口时为 1(延迟采集、重启,或数据源断线)。此时统计结果可能漏算部分交易;缺口会标记出来,绝不编造填补

2026 年 10 月 10–12 日这张表统计了 2,194 个已跟踪且有交易记录的毕业币:823 个(37.5%)在 10 分钟内触及 −80%,307 个(14.0%)触及 2 倍。pregrad 自己的 outcome 行给出的数字是 2,193 个里的 835 和 330(也就是我们帖子里用的数字):它还把 +10 秒参考点之前的那几秒也算进去(2 倍上的差距大多是这几秒里的高点),它的时钟给部分币种设定的参考点早了几百毫秒,而且它统计到了一些售出文件里没有的交易。

pregrad 自 2026-10-04

每个新币背后是谁,结局又如何

创建者及其资金来源、创建者自己的买入、邦定曲线上的买家、毕业那一刻的买家、曲线市值的走势,以及毕业后 10 秒到 10 分钟的价格。只记录原始事实:地址、金额、时间。不贴钱包标签。

每日行数
~194,000(2026 年 10 月 10 日)
行类型
ctrade 9,678 · create 4,110 · curvex 285 · grad 105 · migrate 103 · record 69 · outcome 67

在文件末尾附近毕业的币,它的 outcome 行(+10 分钟)会出现在下一个文件里。

更多数据集(5 个):其他发射平台、Meteora 资金池、邦定曲线、币种元数据、大户持仓
padfeed其他发射平台:Meteora DBC 和 Raydium LaunchLab 的毕业事件、资金池余额、大户持仓自 2026-10-03

Meteora DBC(Bags、Jupiter Studio 等)和 Raydium LaunchLab(bonk.fun)上的毕业事件:币种基本信息、20–30 分钟内每隔几秒的资金池余额、+1 分钟和 +5 分钟持仓最多的 20 个账户,以及每种计价代币的美元价格。

每日行数
~32,500(2026 年 10 月 10 日)
行类型
px 3,091 · qpx 239 · holders 136 · grad 136

以计价单位表示的价格是 q / b;用最接近的 qpx 行换算成美元。

meteora-pools大约 200 个 Meteora DLMM 资金池的逐分钟指标自 2026-10-06

大约 200 个 Meteora DLMM 资金池(TVL 超过 5 万美元),逐分钟记录:价格、TVL、24 小时交易量和手续费,以及当分钟实际赚到的手续费。

每日行数
~287,000(2026 年 10 月 10 日)
行类型
pool 23,794

行里不含代币 mint 和名字;需要通过资金池地址自己查。

curvetape每一笔邦定曲线交易,从发行到毕业自 2026-10-13

每个 pump.fun 邦定曲线上的每一笔交易,从币种创建到毕业或沉寂为止:钱包、代币数量、不含手续费的 SOL、两种手续费、每笔交易后的市值和曲线储备。另外还有每次创建(名字、代币符号、起始储备)、每次内盘完成募资及迁移至 PumpSwap 的事件,以及早期交易的手续费情况。

每日行数
~4,480,000(2026 年 10 月 13 日)
行类型
trade 456,540 · end 6,358 · create 4,416 · adopt 2,978 · migrate 121 · complete 105 · gap 1

SOL 金额不含手续费(买家实际支付的是 sol + fee + cfee)。以其他代币计价的曲线用 quote、qAmt 和原始储备代替 SOL 字段,绝不用假的 0 填充。数据源断线记作 gap 行;从 2026-10-14 起会用完整区块修补(src: "backfill")。

launchmeta每个新币的元数据和图片指纹自 2026-10-13

对每个新的 pump.fun 币种,在创建时和毕业时各记录一次:它链接背后的元数据 JSON(名字、代号、描述、网站、是否挂了 Twitter 或 Telegram),以及图片字节的 SHA-256,方便比对重复使用的图片和仿盘发币。图片本身从不保存。

每日行数
~44,300(2026 年 10 月 13 日)
行类型
meta 4,597

不含社交账号:Twitter / Telegram 链接简化成 hasTwitter / hasTelegram。抓取失败会记成带 err 的行,绝不瞎猜。

gradholders毕业币在 +1、+10 和 +60 分钟时持仓最多的 20 个账户自 2026-10-14

每个 pump.fun 毕业币在毕业后 1、10、60 分钟:最大的 20 个代币账户及其持有人、数量和占比,哪个是 PumpSwap 资金池或旧曲线,持有人是否是程序地址,以及排除资金池和曲线后的前 10 / 前 20 占比。

每日行数
~3,700(每个毕业币每个时间点一条)
行类型
holders 251

不提供持币地址总数(需要扫描所有代币账户)。读取失败的快照会记成带 err 且没有持仓数据的行,绝不瞎猜。自 2026-10-14 起上线销售:2026-10-13 那天公共 RPC 拒绝了所有持仓读取请求。

先免费看看数据长什么样

从这里开始 能直接丢进 ChatGPT/Claude

试试这个

把 graduates-2026-10-10-1400-1600utc.csv 丢进 ChatGPT 或 Claude,然后问:哪些币在前 10 分钟内涨到过 2 倍,它们有什么共同点?哪些币跌了 80%,第一笔大额卖单是什么时候出现的?

完整一天就是同样的表格,大约 200 KB,照样放得进 App:$10。

用完整一天来测试:$10 UTC 一天,gradtrades + pregrad,JSON lines 和 Parquet,一次付费,无订阅 拿到样本后怎么做

7 个数据集逐字段的说明都在下面的“开发者:完整字段说明”里,以及 README 中。两个免费文件都是从 10 月 10 日的 gradtrades 当天文件(14:00–16:00 UTC)切出来的,用和出售文件相同的导出流程生成。

开发者:完整字段说明

gradtrades

示例行(来自样本)
grad
{"type":"grad","t":1791640841373,"bt":1791640840,"slot":455281028,"sig":"45ZhqvZwD3SC18TUZ8wQjR1uWHQn91cqTJyiftnyFnJkeoyqoiRXopZTxhHo1TpopAi6HFSwEzsSEUMPcpTfuJWQ","mint":"9pAbYE6q9t5F8tDdrJWrVyMKEYhZnPLwB6hNEHPSnkkt","pool":"2uNzE8XXwRksCymmGtyPfg7oYBYn5E2Kg1hrgP3GteK4","coinCreator":"CfZELPLk52fdxb5DTwfEnZqepPv8vjWsfJZMnGRXLgJP","poolBase":198060505.73945,"poolQuote":88.783503748,"virtualQuote":17.584505653,"price":5.37048e-7,"capSol":537.05,"curveSol":88.783503748}
trade
{"type":"trade","t":1791640800002,"bt":1791640787,"slot":455280784,"sig":"5QxGRXZWhMUGwHbYMf4rzZYBRKZ3735w5QhfYVX56kTzJPTsXGeGuwYQqLveKdzMmnQZjuUWbQNd9Xy7gLtW4tGG","i":0,"mint":"95ccfn4UAUu3mQSvi7NJSJkHEnoLdW58qcRwwzmepump","side":"buy","user":"Doofp8oxQrc3BL5xCtiSADYM5BdTvgRqRTPX9EunRAPE","baseAmount":3475.693603,"quoteAmount":0.000977776,"price":2.81318e-7,"poolBase":250399895,"poolQuote":53.41453236,"priceAfter":2.81322e-7,"userTokensBefore":1480831.488923,"lpFee":1.96e-7,"protocolFee":0.000009094,"creatorFee":0.000002934,"ix":"buy_exact_quote_in_v2"}
end
{"type":"end","t":1791640817904,"mint":"R22RNSXj4ambV2wNFJJkLEuvUa54CPTCbqkwkBZpump","why":"window","buys":2799,"sells":3186}
down / up
{"type":"down","t":1791640822088}
{"type":"up","t":1791640823203}

这对 down / up 是真实发生的:14:00:22.088 UTC 数据源连接断开,1.1 秒后恢复。这一秒内的交易可能缺失。缺口会原样记录成行,绝不编造填补。

字段说明

每一行都有 type 和 t(自 1970 年 UTC 起的毫秒数,即我们的记录器收到这条数据的时间)。SOL 数量以 SOL 计,代币数量以枚为单位(保留 6 位小数)。数据来源:Solana 公共 RPC(PumpSwap 程序日志)。

gradtnumber毕业时间(毫秒;延迟发现的币用链上区块时间)
gradbtnumber区块时间(秒)
gradslot, signumber, string毕业(迁移)交易的 slot 和签名
gradmintstring该币的 token mint
gradpoolstring它的 PumpSwap 资金池
gradcoinCreatorstring收取该币创建者手续费的钱包
gradpoolBase, poolQuotenumber资金池起始代币数量 / SOL 数量
gradvirtualQuotenumberPumpSwap 价格公式里额外的虚拟 SOL(2026 年 10 月约 17.6 SOL)
gradpricenumber毕业时每枚代币的 SOL 价格
gradcapSolnumberprice × 1e9(以 SOL 计的市值,普通毕业币约为 496)
gradcurveSolnumber邦定曲线募集到的 SOL
gradlatebool延迟采集到的;followFrom 之前的交易缺失
gradfollowFromnumber毫秒;从这个时间点起交易记录是完整的
gradfollowboolfalse = 未跟踪该币(市值不在 300–600 SOL 区间,或发现太晚)
tradebt, slot, sig, inumber, number, string, number区块时间(秒)、slot、签名、该笔 PumpSwap 交易在整笔交易中的序号。sig 若是 64 个 1,表示 RPC 没有返回签名(很少见:百万行里才几行)
trademintstring币种
tradeside"buy" / "sell"方向
tradeuserstring交易的钱包
tradebaseAmountnumber买入或卖出的代币数量
tradequoteAmountnumber买入时支付的 SOL(含手续费)或卖出时收到的 SOL(扣除手续费后)
tradepricenumberquoteAmount / baseAmount(实际成交价,含手续费)
tradepoolBase, poolQuotenumber交易后资金池的代币数量 / 真实 SOL 数量
tradepriceAfternumber交易后资金池价格:(poolQuote + virtualQuote) / poolBase
tradevirtualQuotenumber仅在资金池虚拟 SOL 发生变化时出现(很少见)
tradeuserTokensBeforenumber该钱包在交易前持有这个币的余额
tradelpFee, protocolFee, creatorFeenumber手续费,以 SOL 计
tradecreatorbool交易者就是该币创建者时为 true
tradeixstring指令变体,例如 buy_exact_quote_in;普通买入时此字段缺失
traderecoveredbool日志被截断;该笔交易是从完整交易中读取的
endmint, why, buys, sellsstring, string, number, number不再跟踪该币:window(30 分钟已到)、evicted(超过 30 个币的上限)、budget(数据预算用完);附带计数
down, uptnumber数据源连接断开 / 恢复:中间的交易可能缺失
resumemintstring重启后重新开始跟踪该币;t 之前的空档缺失

pregrad

示例行(来自样本)
create
{"type":"create","t":1791640827094,"mint":"EYrWRPj4umi4AyUgiG2S6YjKhpu3oz6hc4wFNKPypump","creator":"7mHmNh6BFNWpFp5qh2VXRNzsK63zZ5ZQGQY77khANBQW","sig":"f6etp6K3nBnA6P5fhrupy8CZafaMQ9NQ7UQN1ZZbUwEvwEdi2uMndc3d1aYTz3mBYC5hqXTqg8KFJqynwqEgTx5","name":"beer","sym":"beer","devTokens":2442400.964047,"devSol":0.068442865,"capSol":28.087,"curve":"BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s","mayhem":true}
curvex
{"type":"curvex","t":1791640818055,"slot":455280896,"curve":"9UfpfsVkwAi9ynZHq6Wi7WjZEzL2Kp8jEbDdfWfjs5gV","mint":"9pAbYE6q9t5F8tDdrJWrVyMKEYhZnPLwB6hNEHPSnkkt","cap":304.08,"cross":300,"sol":68.935,"sinceFirstS":196.7}
ctrade
{"type":"ctrade","t":1791640836449,"bt":1791640836,"slot":455281007,"sig":"eMR2wKhSwrcTvpdLLxRkTpAJ91PYf8EHNvhJJGVuBQaJtVSqeQQsad4QWQxNHp6VQurGi4KRUToU6tzV7F7FcQJ","i":0,"mint":"9LcWKxyvcWTbzwumh7cHaUakgy4eKW4B7pWo4ZLcVM64","side":"buy","user":"E2ridaSSvdWMDJ2YfiH1X6TYSurf2gTZpDFLJ9qMmQLk","sol":0.048888888,"tokens":244185.00765,"capAfter":200.334,"curveSol":50.304208}
migrate
{"type":"migrate","t":1791640841042,"mint":"9pAbYE6q9t5F8tDdrJWrVyMKEYhZnPLwB6hNEHPSnkkt","sig":"45ZhqvZwD3SC18TUZ8wQjR1uWHQn91cqTJyiftnyFnJkeoyqoiRXopZTxhHo1TpopAi6HFSwEzsSEUMPcpTfuJWQ","pool":"pump-amm"}
grad
{"type":"grad","t":1791640841373,"mint":"9pAbYE6q9t5F8tDdrJWrVyMKEYhZnPLwB6hNEHPSnkkt","slot":455281028,"capSol":537.05,"creator":"CfZELPLk52fdxb5DTwfEnZqepPv8vjWsfJZMnGRXLgJP"}
record
{"type":"record","t":1791640859732,"mint":"4DpjsfKA8uSzscqWsyZqqZJ83wvopfBmmmAsqJpnH7Kd","sym":"Ed","name":"Ed","pool":"22FiEsj8GfHYp7vDC88gFy833mXzqDpKuvPZ574hgLv4","slot0":455281034,"sig0":"3HikNGkRwodBdHgDgsvpcGnTpJqYBTVqNKRpRry3dsxQFk86Mt5EMscKCsT2goZLQFqX48R9nu3B8NACCeqqiJiy","t0":1791640842431,"bt0":1791640842000,"src":{"first":"pumpportal","gradRow":true,"migrate":1791640842431,"curveCompleteS":0.68},"creator":"DPZpMGnuq44KE77yCjS1oq6UdqhNNSAURcB1AzQeQQTf","create":{"t":1791640165488,"sig":"3b4RzKnmb1MsYXJB1AAeFQevWMcioQMm5DSCy15kznu47kD8735q9fVT2vLvoyAuKeHdtKc93E5vhpQ7deTY3EeE","src":"pumpportal","mayhem":false,"capSol":33.957},"ageS":676.9,"instant":false,"cap0":511.65,"curveSol":86.467621472,"devBuyTokens":99366691.529599,"devBuyPct":9.937,"devBuySol":3.061728394,"creatorPctAtGrad":9.937,"creatorInfo":{"txs50":14,"capped":false,"oldestS":331,"nBefore10m":0,"funder":null,"fundSol":0,"fundedBeforeS":331,"fundMemo":false,"priorCoins24h":0,"priorCoins72h":0},"gradSlot":{"pct":0,"sol":0.002,"nWallets":1,"nTx":1,"buys":[{"w":"27HFmP7ccLadGswvQfvea4o3juLw75cPF4V6jWpHM3MX","tokens":46.135,"pct":0,"sol":0.0015,"sig":"tzo2Mdn6uvEN6MMf2pk9bfEFNEnwLMzVBdSKFbxXmXqqfLuZ2DnsJVVb6pUisqDhoUfPdT7JXMWL3CepUkQ8Fo4","bundleSize":1,"payer":"27HFmP7ccLadGswvQfvea4o3juLw75cPF4V6jWpHM3MX","signers":1,"slotOffset":1}],"whale":{"w":"27HFmP7ccLadGswvQfvea4o3juLw75cPF4V6jWpHM3MX","pct":0,"sol":0.0015,"bundleSize":1,"creatorInTx":false,"gainers":[],"txs25":25,"oldestS":399,"lastTxKind":"pamm","funder":null,"fundSol":null,"fundedBeforeS":null,"fundSig":null,"fundMemo":null}},"curve":{"coverage":"partial","holders":[{"w":"9AkbDBmPKNt8SvZRMF7wYDz33WYMnRFfsBnVE18naFpD","pct":0.045,"sol":0.0978,"creator":false},{"w":"Ej6eGdvP1VYJg45FyxpjtXLag1AEG4r2JLNxaq8F3ws7","pct":0.004,"sol":0.0094,"creator":false}],"creationSlot":null,"bundleEst":null,"estimated":false,"top1NcPct":0.045,"top5NcPct":0.049,"nOver3Pct":0,"bundleWallets":0,"bundlePct":0,"creatorPct":9.937,"path":{"firstCap":57.8,"firstS":674.2,"maxCap":410.9,"updates":948,"completeS":0.68,"t100S":668.7,"t200S":316.2,"t300S":65.7,"t400S":3.7},"trades":{"fromCap":216.2,"fromT":1791640569831,"n":5,"buys":2,"sells":3,"wallets":5,"maxCap":216.7,"lastCap":215.9,"completeT":1791640842431,"topBuyers":[{"w":"9AkbDBmPKNt8SvZRMF7wYDz33WYMnRFfsBnVE18naFpD","tokens":451685.64,"pct":0.045,"sol":0.0978},{"w":"Ej6eGdvP1VYJg45FyxpjtXLag1AEG4r2JLNxaq8F3ws7","tokens":43399.248,"pct":0.004,"sol":0.0094}]}}}
outcome
{"type":"outcome","t":1791641308603,"mint":"HXFYuYYfJ7TKMLp8KZ2vcw5jq6DaxWL8Tq7QdhDqCXbX","sym":"Aramco","t0":1791640703550,"recT":1791640712803,"capAt":{"10":3177.45,"45":3218.37,"60":3249.5,"120":3341.85,"180":3442.58,"300":3771.26,"600":5507.02},"maxGain":74,"minDrop":-78.3,"crashed":true,"trades":8684,"dump":{"tS":601.9,"w":"5NpcZzQoiARZjuPPZGRo33YwyWzhAq7R8vx1jXsKbTzo","frac":1.833138,"rule":"big-sell","sol":199.72990449,"capAfter":689.757,"tokensFrom":{"kind":"transfer","tokens":66050028.897,"pct":6.605,"from":"4imgFChpdw6YyjPw6cRxrtJpBHZS8LNrQZgbyVTfirP4","for":"5NpcZzQoiARZjuPPZGRo33YwyWzhAq7R8vx1jXsKbTzo","sig":"Atfch84VwkJckSuXqjRqBqDKuHoibeWzEMPn7nAJKkRZ7ehmM534Byp5hriqaV13JERN9M2S1mphnp87GcvdjCC","bt":1791640717,"account":"Hnzdxe8VcjXvoBmoEPRWf6EMpqsa29RVMivt3g75RpBx","accountTxs":11,"beforeDumpS":588,"afterGradS":13}},"firstBigSell":{"tS":601.9,"w":"5NpcZzQoiARZjuPPZGRo33YwyWzhAq7R8vx1jXsKbTzo","frac":0.3928,"sol":199.72990449,"capAfter":689.757,"tokensFrom":{"kind":"transfer","tokens":66050028.897,"pct":6.605,"from":"4imgFChpdw6YyjPw6cRxrtJpBHZS8LNrQZgbyVTfirP4","for":"5NpcZzQoiARZjuPPZGRo33YwyWzhAq7R8vx1jXsKbTzo","sig":"Atfch84VwkJckSuXqjRqBqDKuHoibeWzEMPn7nAJKkRZ7ehmM534Byp5hriqaV13JERN9M2S1mphnp87GcvdjCC","bt":1791640717,"account":"Hnzdxe8VcjXvoBmoEPRWf6EMpqsa29RVMivt3g75RpBx","accountTxs":11,"beforeDumpS":588,"afterGradS":13}},"bigSells":[{"tS":601.9,"w":"5NpcZzQoiARZjuPPZGRo33YwyWzhAq7R8vx1jXsKbTzo","frac":0.3928,"sol":199.72990449}],"src":"gradtrades"}

record 行每个毕业币一条,在毕业后 10–40 秒写入。outcome 行在 10 分钟后跟上;这个例子里,币的市值从 +10 秒时的 3,177 SOL 涨到 +10 分钟时的 5,507 SOL,然后一笔 200 SOL 的卖出(代币是毕业后 13 秒通过转账收到的)把它打到了 690 SOL。

字段说明

数据来源:通过公共 RPC 读取的 Solana 链上日志(创建、迁移;自 2026 年 10 月 14 日起,此前为 PumpPortal 免费 websocket),Solana 公共 RPC(邦定曲线、交易)。金额以 SOL 计;pct = 占 1,000,000,000 总供应量的百分比;时间以毫秒计,除非字段名以 S(秒)结尾。

createt, mint, signumber, string, string币种创建
createcreatorstring创建者钱包
createname, symstring币种名字 / 代号
createdevTokens, devSolnumber创建者在创建时自己的买入
createcapSolnumber创建后曲线的市值
createcurvestring邦定曲线账户
createmayhemboolpump.fun“混乱模式(mayhem)”发行
curvexslot, curve, mintnumber, string, string/null邦定曲线市值跨过某个市值阈值(尚未匹配到币种时 mint 为 null)
curvexcap, cross, sol, sinceFirstSnumber当前市值(SOL)、跨过的市值阈值(100/200/300/400 SOL)、曲线内 SOL 数量、首次发现以来经过的秒数
ctradebt, slot, sig, i, mint, side, user同 gradtrades接近毕业的币在邦定曲线上的交易(从市值 200 SOL 起读取);i 是该币的买卖在这笔链上交易内的序号,所以 (sig, mint, i) 是唯一键
ctradesol, tokens, capAfter, curveSolnumber该笔交易的 SOL 和代币数量,交易后的市值和曲线内 SOL
migratemint, sig, poolstringPumpPortal 观察到的迁移(pool = 目标 AMM)
gradmint, slot, capSol, creatorstring, number, number, string链上观察到的毕业事件
recordmint, sym, name, pool, slot0, sig0, t0, bt0mixed每个毕业币一条,在毕业后 10–40 秒写入(t0 = 毕业时间)
recordsrcobject哪个数据源最先发现;curveCompleteS = 内盘在 t0 之前多久完成募资
recordcreator, createstring, object创建者钱包;创建交易(t、sig、mayhem、capSol)
recordageSnumber从创建到毕业的秒数
recordinstantbool创建后 5 秒内就毕业
recordcap0, curveSolnumber毕业时 PumpSwap 市值;募集到的 SOL
recorddevBuyTokens, devBuyPct, devBuySolnumber创建者创建时的买入
recordcreatorPctAtGradnumber/null毕业时创建者的持仓比例
recordcreatorInfoobjecttxs50(交易数,上限 50)、capped、oldestS、nBefore10m、funder、fundSol、fundedBeforeS、fundMemo、priorCoins24h、priorCoins72h
recordgradSlotobject/null毕业时段内的 PumpSwap 买入:pct、sol、nWallets、nTx、buys[](w、tokens、pct、sol、sig、bundleSize、payer、signers、slotOffset、creatorInTx),whale = 这些买入里最大的一笔,附带其钱包信息(txs25、oldestS、lastTxKind、funder、fundSol、fundedBeforeS、fundSig、fundMemo、gainers[])
recordcurveobjectcoverage(full/partial/none)、holders[](前 10 名:w、pct、sol、creator)、creationSlot、bundleEst、estimated、top1NcPct、top5NcPct、nOver3Pct、bundleWallets、bundlePct、creatorPct、path(t100S..t400S、maxCap、updates、completeS)、trades
outcomemint, sym, t0, recTmixed毕业后 +10 分钟
outcomecapAtobject+10/45/60/120/180/300/600 秒时的 PumpSwap 市值(SOL)
outcomemaxGain, minDropnumber/null前 10 分钟内相对毕业后 10 秒价格的最佳 / 最差涨跌幅(%);触及 -80% 即 minDrop <= -80,触及 2 倍即 maxGain >= 100;没观察到交易时为 null。从 2026-10-14 03:40 UTC 起,从区块补回的毕业区块交易(价格在那笔大额毕业买入之前)会让部分币的 minDrop 明显偏低(10 月 14 日:569 个里 349 个显示触及 -80%,实际只有 195 个);请改用 graduates CSV 里按链上顺序计算的 low_10m_pct / high_10m_pct
outcomecrashedbool前 10 分钟内出现过价格跌到当时最高点 60% 或更低的交易,也就是从高点下跌 40% 以上(不是跌 80%:那个用 minDrop <= -80 判断)
outcometradesnumber统计到的 PumpSwap 交易数
outcomedump, firstBigSell, bigSells[]object第一笔触发固定规模规则的卖出,以及所有大额卖出:tS、w、frac(卖出占资金池的比例)、sol、capAfter、rule、tokensFrom
outcomesrcstring交易数据的读取来源

padfeed

示例行(来自样本)
grad
{"type":"grad","t":1791642704526,"pad":"ray","platform":"Fo1dp1JYQQWgYgAdiZWfmJpA7KRreCdCEyEEVcE1Q2TN","mint":"BwVPtfz4g8TcmmuVyQWnQEx8X3Zhr3W24McKEvztfEe1","quote":"So11111111111111111111111111111111111111112","pool":"27XKWhuX5rKrJJxr5ebQc3ZKDXSCgZVMR329aGZDXrC9","curveAuth":"6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX","baseVault":"B7xSvh15d1aXre2bFKcRpqRG9zdbEECFR6981tiRyn5w","quoteVault":"38VBuRZUGNTGkH8WxkmnsLH7YBiC2n5FseTmBuGZq5Us","b":206900000,"q":85.000000062,"px":4.108264865248912e-7,"supply":1000000000,"decimals":6,"tokenProgram":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb","feeBps":null,"freeze":null,"mintAuth":null,"sig":"2QN2S5rGhVv8sAZcYXT7MGVDvzAEvUYZrewBYSypMcDfksxTS2u413czrYXPiXoYwJEtRjsgoamt32kELbuVNm6p","blockTime":1791642704000,"lagMs":526}
px
{"type":"px","t":1791640800132,"mint":"7E9FWUo2mJK1LT53LPceXK8VHrDM4WhMFpBZYtyHaSC1","b":13932037.454196,"q":17.430408874,"pad":"dbc"}
holders  (此处仅展示 top20 的前 2 项;文件中包含全部 20 项)
{"type":"holders","t":1791640987253,"mint":"FJH9L1G1ezgVKymcKnVUARN9YH6oPFAJ19qTQ6mL7EXd","top10":0.7,"top20":[{"acct":"GCegNfWBkzpERkQVwZkBSJBdXxqMFMMdoLuvKgNr7PEF","owner":"FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM","amt":950264550.634002},{"acct":"FukAMJAHBU1rvWSYAB4MTiHzR2QnUwNNZGxm3ZxKyQc3","owner":"HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC","amt":18537186.696369}],"pad":"dbc"}
qpx
{"type":"qpx","t":1791640829727,"usd":{"98sMhvDwXj1RQi5c5Mndm3vPe9cBqPrbLaufMXFNMh5g":84.3142186577373,"So11111111111111111111111111111111111111112":109.78435044998537}}

上面这条 px 行:价格 = q / b = 17.43 / 13,932,037 = 每枚代币 1.25e-6 SOL;按最接近的 qpx 行里的 SOL 价格(109.78 美元)换算,是 0.000137 美元。

字段说明

dbc = Meteora 动态邦定曲线(Bags、Jupiter Studio 等)迁移到 DAMM v2 资金池;ray = Raydium LaunchLab(bonk.fun 等)迁移到 Raydium CPMM 资金池。每个币跟踪 20 分钟(dbc)/ 30 分钟(ray)。数据来源:Solana RPC;美元计价价格来自 Jupiter 免费价格 API。

alltnumber记录时的毫秒时间戳
gradpad"dbc" / "ray"发射平台
gradplatformstring平台配置 / 名称
gradmint, quotestring币种 mint;计价代币 mint(SOL,或是像 USD1 之类的代币 / 代币化股票)
gradpool, curveAuth, baseVault, quoteVaultstring/null资金池和金库账户;pool 在每条 dbc 行里都是 null(迁移消息传来时还不知道 DAMM v2 资金池是哪个,靠金库来识别),ray 行则有值
gradb, qnumber迁移时的金库余额(代币数量、计价单位数量)
gradpxnumber以计价单位表示的价格 = q / b
gradsupply, decimals, tokenProgramnumber, number, stringmint 的基本信息(Token 或 Token-2022)
gradfeeBps, freeze, mintAuthmixedToken-2022 转账手续费、冻结 / 铸造权限(null = 无)
gradsig, blockTime, lagMsstring, number, number迁移交易签名、它的区块时间(毫秒,不像别处的 bt 是秒)、以及我们在区块之后多久收到消息(毫秒)
pxpad, mint, b, qstring, string, number, number金库余额发生变化时记录(约每 6 秒一次,价格变化快的币约 2 秒);价格 = q / b
holderspad, mint, top10, top20[]string, string, number, array+60 秒和 +5 分钟:最大的 20 个代币账户(acct、owner、amt);top10 = 排除资金池金库和曲线后,前 10 名持有的比例
qpxusdobject每 30 秒一次:SOL 以及过去 2 小时内出现过的每个非 SOL 计价 mint 的美元价格,以 mint 为键

meteora-pools

示例行(来自样本)
pool
{"type":"pool","t":1791640862793,"pool":"3BCeknAQpHELGfKhUb9mnKuLC3Eg3qjJrZ5B7fqC1xSW","price":0.000006613131,"tvlUsd":59712.37,"vol24hUsd":621060.47,"fees24hUsd":17376.4,"vol24hDeltaUsd":94.68,"feesMinUsd":65.4599}
{"type":"pool","t":1791640862793,"pool":"5EStPSuAZB4TqBSWLpbGwiKFEuspdYjcc3EoRMgeMHGh","price":0.000026998604,"tvlUsd":54300.74,"vol24hUsd":268438.69,"fees24hUsd":14080.84,"vol24hDeltaUsd":-1688.1,"feesMinUsd":0}

同一分钟,两个资金池:第一个池子的 TVL 为 5.97 万美元,这一分钟赚取了 65.46 美元手续费;第二个什么也没赚到,它的滚动 24 小时交易量还下降了 1,688 美元(移出滚动 24 小时窗口的交易额,多于新计入的交易额)。

字段说明

每个资金池每分钟一行,TVL 5 万美元以上的 Meteora DLMM 资金池,按 24 小时手续费/TVL 取前 200 名。数据来源:Meteora 公共 DLMM API。不用 RPC,不涉及钱包。

type"pool"行类型
tnumber抓取时的毫秒时间戳
poolstringDLMM 资金池地址
pricenumber资金池当前价格(每个基础代币对应的计价单位,按 Meteora 报告的口径)
tvlUsdnumber总锁仓价值,美元
vol24hUsdnumber滚动 24 小时交易量,美元
fees24hUsdnumber滚动 24 小时手续费,美元
vol24hDeltaUsdnumber/null相对该资金池上一行,滚动 24 小时交易量的变化
feesMinUsdnumber/null自上一行以来实际赚到的手续费(Meteora 历史累计手续费的差值);资金池第一行或重置时为 null

curvetape

示例行(来自样本)
create
{"type":"create","t":1791900004668,"slot":456467223,"sig":"2f23Xpkm97zfNW33TkLj8JPbD6xPapa4UApK59Up5Bou17HJZQWWiuSzNDveStHJNJ7KM77Vj6x2aQyQdDjFRYbT","bt":1791900004,"mint":"6HFExtnceGjHTkURczNMrBXvW9mW9R8H3tTjPUdQRyjY","curve":"BzYvZ5e3PZLeRi1a6Qios3Vx2JG2fUWZsszMuFKRbe5T","user":"bwamJzztZsepfkteWRChggmXuiiCQvpLqPietdNfSXa","creator":"bwamJzztZsepfkteWRChggmXuiiCQvpLqPietdNfSXa","name":"Save The Orangutans","sym":"ORANGUTANS","uri":"https://md.sdfgsdfsdf.uk/metadata/yQ1HKDod","tokenProgram":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb","mayhem":false,"quote":null,"vt":1073000000000000,"vs":30000000000,"rt":793100000000000,"supply":1000000000000000,"vq":30000000000}
trade
{"type":"trade","t":1791900000073,"slot":456467204,"off":5277,"bt":1791899999,"sig":"3oHhesiuEZy6AEGibP29sLPwz4EE4jqb7ucAETkz4DijVrwyT9TdHdJF6rwcDYEjHUJZz4Lbpa8FLxQY2jYrAiLT","i":0,"mint":"13C3X9CJQd98H6nic3mTGE5a5wvKRQec4VaceMy9pump","side":"buy","wallet":"D4orPtC6p1VveJuVJXZCqDFDvLX5689bg3sPyT6L9L3U","tokens":2328278.127981,"sol":0.272278445,"capAfter":117.4642,"curveSol":31.491252689,"fee":0.002586646,"cfee":0.000816836,"vs":61491252689,"vt":523489102303982,"ix":"buy"}
migrate
{"type":"migrate","t":1791900007570,"slot":456467236,"sig":"2eA524jow1WmjWZtZL9oajTtsab7sLPMAiQh49A3N6jjNKjwbVkdK1oQkx5dbgMdd5vENVgdvBKu8pyvXL1ESrRu","bt":1791900007,"mint":"7HB5bziuo7maGzy24SS2KmEUnHfFkcgQPT8zt9NZpump","pool":"2HVdHvhk78x8yuhFiiLhy5MdH6dZ6wet3C32Euzyzu2N","quote":null,"solAmount":84.990359428,"mintAmount":206900000,"poolMigrationFee":0.015000001,"user":"7LCvF6K1Sp88qt9HJ6FRw4DJfXahJ72gZqqM3X9tDycU"}
end
{"type":"end","t":1791900007568,"mint":"7HB5bziuo7maGzy24SS2KmEUnHfFkcgQPT8zt9NZpump","why":"graduated","src":"create","trades":1074,"buys":903,"sells":171,"vol":172.633076653,"volQ":null,"lastCap":410.8802,"maxCap":410.8802,"firstT":1791899520492,"lastTradeT":1791900007568}
gap
{"type":"gap","t":1791902270272,"from":1791902148965,"to":1791902270272,"why":"boxcap","ms":121307}

上面这条 trade:买家向曲线投入 0.272278 SOL,支付了 0.002587 + 0.000817 SOL 的手续费,总共 0.275682 SOL;之后的市值是 117.46 SOL。这条 gap 是真实发生的:14:35:48 到 14:37:50 UTC 之间实时数据源断开(121 秒,为了不超出共享公共 RPC 的配额而主动退避),这段时间的交易不在此文件中。

字段说明

每行一个 JSON 对象,按 t 排序。SOL 金额以 SOL 计,代币数量以整枚计;vs、vt、rt、vq、supply 和带 Q 的字段都是原始整数。数据来源:Solana 链上数据(pump.fun 程序日志)。

createslot, sig, btnumber, string, number创建交易
createmint, curvestring该币及其邦定曲线账户
createuser, creatorstring发起创建的钱包 / 该币的创建者(收取创建者手续费)
createname, sym, uristring名字、代号、元数据链接,按链上写入的内容
createtokenProgramstringToken-2022 或经典版代币程序
createmayhemboolpump.fun“混乱模式(mayhem)”币种
createquotestring/nullnull = 以 SOL 计价;否则是该曲线计价所用的 mint
createvt, vs, rt, supply, vqnumber起始虚拟代币、虚拟 SOL、真实代币、总供应量、虚拟计价储备(原始值)
tradeslot, sig, i, btnumber, string, number, number该笔交易;i = 这笔交易在其中 pump.fun 交易里的序号,所以 (sig, i) 是唯一的
tradeoffnumber/null距离该币创建 slot 经过的 slot 数(未观察到创建时为 null)
trademint, side, wallet, tokensstring, "buy"/"sell", string, number谁交易了多少代币
tradesolnumberSOL 计价曲线:买入时投入曲线 / 卖出时流出曲线的 SOL,不含手续费(买家实际支付 sol + fee + cfee,卖家实际拿到 sol - fee - cfee)
tradefee, cfeenumberSOL 计价曲线:pump.fun 平台手续费 / 创建者手续费,以 SOL 计(2026 年 10 月为 0.95% / 0.30%;mayhem 币种不同)
tradecapAfter, curveSolnumberSOL 计价曲线:交易后以 SOL 计的市值(price x 1e9 供应量);交易后曲线内的真实 SOL
tradevs, vtnumber交易后的虚拟 SOL(仅 SOL 计价曲线)/ 虚拟代币储备(原始值)
tradequote, qAmt, vq, rq, feeQ, cfeeQstring, number以其他代币计价的曲线:计价代币的 mint;金额、虚拟 / 真实计价储备,以及两种手续费(原始单位)。这些行没有 sol / capAfter / curveSol / fee(绝不用假的 0 填充)。quote 为 “?” 表示金额无法读取
tradeixstring指令:buy、sell、buy_exact_sol_in、buy_exact_quote_in、multi_hop_swap(一条指令内经由曲线计价代币路由的兑换;几乎都出现在以其他代币计价的曲线上)
tradebyCreatorbool交易者是该币创建者时出现(true)
trademayhemboolmayhem 模式币种上出现(true)
tradetrunc, recbool该交易的日志被截断(其中后续交易会以从完整交易读取的 rec 行出现,或者缺失)
migratesolAmount, quoteAmount, mintAmount, poolMigrationFee, usernumber, string转入资金池的 SOL(或原始计价单位)和代币数量、迁移手续费(SOL)、发送方
endmint, why, srcstring不再跟踪该币:graduated、idle(60 分钟无交易)、evicted(同时跟踪的币超过 20,000 个);src 为 create / adopt
endtrades, buys, sells, vol, volQ, lastCap, maxCap, firstT, lastTradeTnumber跟踪期间的统计总量(SOL 计价曲线的 vol 以 SOL 计,否则用原始值 volQ;市值以 SOL 计)
txtxFee, prioFee, jitoTipnumber支付的网络手续费、其中的优先费(手续费减去每个签名 5,000 lamports)、发给 Jito 小费账户的 SOL;单位 SOL
txcuPrice, cuLimit, cuUsed, prioCfgnumber计算单元价格(微 lamports,v0 交易)、限额、实际用量;prioCfg = v1 交易自带的 priorityFee 设置
txfailedbool该交易失败了
gapfrom, to, why, msnumber, number, string, number实时数据源在 from 到 to 之间断开。why 取值:socket、yield413 / boxcap / selfcap(为不超出共享公共 RPC 配额而主动退避)、refused、start、stop。自 2026-10-14 起会跟一条 backfill 行:当它标注 complete: true 时,该窗口内没有任何缺失
create, trade, complete, migratesrc"backfill"自 2026-10-14 起:仅出现在缺口修补后、从完整区块读取的行上,字段和取值与实时行相同。实时行没有 src
backfillfrom, to, whynumber, number, string自 2026-10-14 起:一次从链上(通过付费 RPC 读取整个区块)修补的缺口:它的时间窗口(毫秒)和原因(restart = 记录器重启)
backfillslotFrom, slotTo, blocks, skipped, failed, txs, rowsnumber, object读取的 slot 范围、读取到的区块数、没有区块的 slot 数、读取失败的 slot 数、含 pump.fun 事件的交易数、按类型写入的行数
backfillcomplete, stopbool, stringcomplete: true = 窗口内每个 slot 都读取到了;false 时 stop 说明原因(nocredit、maxblocks、noslot、nohelius),slotTo 之后的 slot 仍然缺失

launchmeta

示例行(来自样本)
meta(创建阶段)
{"type":"meta","t":1791900032794,"phase":"create","src":"chain","mint":"3SrkocGC2RJRznw2HEyJBrRzoMcRDoJs5L52EWAfpump","tCreate":1791900032355,"createSig":"2vx9i7n4EpodmVcEgvX1VReULVPX3gXuKeZxzJPqr8RsHDexEqnrPz8cx6yrPSjASVskuQFV84XxmBD9NjJ2XUgA","creator":"7FVfSdnR9VPGjMtmBP1Hz9C2DFTpoNX8gVVRmnimnGt9","name":"up","sym":"up","uri":"https://ipfs.io/ipfs/QmZMeuCM42FErtBCZQd57DLcs1mpRNQLSqMVL21MRzQ8VE","uriKind":"ipfs","json":{"name":"up","symbol":"up","description":"grow up","image":"https://ipfs.io/ipfs/bafkreihb7ybjzblgsfzqzc4lv5v5kii5letvrah5xozqwziuqxnnsayl7q","showName":true,"createdOn":"https://pump.fun"},"metaSha":"8ab84aca67c8bbf27fe573ecbec4f0e94a2ec9b8f60ccf47d3493588b372aaa2","metaBytes":189,"imgUrl":"https://ipfs.io/ipfs/bafkreihb7ybjzblgsfzqzc4lv5v5kii5letvrah5xozqwziuqxnnsayl7q","imgSha":"e1fe029c856691730c8b8baf6bd5211d59275880fdbbb30b651485dad9030bfc","imgBytes":13381,"imgType":"image/gif","gwMeta":"ipfs.filebase.io","ms":165,"cachedImg":true}
meta(一次抓取失败)
{"type":"meta","t":1791900007185,"phase":"create","src":"chain","mint":"6aFPW6pS1AtxgKWc4yMf6ozePzrSdBBGHmUqEdPUtz5R","tCreate":1791899997001,"createSig":"5tCy8ZwcbzsWWPaEgtMcBpUDmNoBS23A1iiCyyrg5fNwTas2gwVZSSqDWuvhrYegowF132sqgBnxAmwteDdbQciU","creator":"5vurJzLBn6dryVxztHTc5TiRo7idbRQUznCp6S4qPQFL","name":"Pocket Node","sym":"PNOD","uri":"https://paste.rs/0Wpec?meta=json","uriKind":"http","ms":10088,"err":"meta: paste.rs URLError: <urlopen error timed out>"}

同一张图片不管背后挂的是什么链接,imgSha 始终一样;cachedImg: true 表示此前已提取过该链接对应图片的指纹。第二行是一个没有及时响应的元数据主机:原因写在 err 里,它本该填的字段就直接缺失。

字段说明

每行一个 JSON 对象,按 t 排序。数据来源:链上观察到的创建 / 迁移(我们的 curvetape 数据源)或 pregrad 记录器,以先到的为准;元数据和图片通过公共 IPFS 网关获取。

metaphase"create" / "grad"在创建时或毕业时抓取
metasrc"chain" / "pumpportal" / "chainlogs"最先报告创建 / 毕业的数据源:chain = 我们的 curvetape 记录器(链上的创建 / 迁移事件);pumpportal = PumpPortal 的免费数据源(经我们的 pregrad 记录器);chainlogs = pregrad 自己从链上日志检测到的,自 2026-10-14 起,pregrad 改为直接检测链上日志,不再通过 PumpPortal 检测这些事件。自 2026-10-14 起约每 400 行中有 1 行没有 src:当时没记录数据源
metamint, createSig, creator, name, symstring该币、它的创建交易、创建者钱包、链上名字和代号
metatCreate, tGradnumber观察到创建 / 毕业的时间(毫秒)
metauri, uriKind, uriFromstring元数据链接;ipfs / http / data / none / other(其他协议);grad 行:链接的来源(create、chain = 从 mint 读取、none)
metajsonobject元数据 JSON 的字段,每个仅在存在时出现:name、symbol、description(截断至 2,000 字符)、image、website、showName、createdOn,以及 hasTwitter / hasTelegram(JSON 里有这类链接时为 true;链接本身被去掉:不含社交账号)
metajsonKeysarray该 JSON 的其他顶层键(最多 20 个)
metametaSha, metaBytesstring, number元数据 JSON 字节的 sha256 和大小
metaimgUrlstringJSON 中的图片链接
metaimgSha, imgBytes, imgTypestring, number, string图片字节的 sha256、大小和 Content-Type(同一张图片 = 同一个 imgSha)
metagwMeta, gwImgstring响应的主机
metamsnumber抓取耗时
metacachedImgbool此前已提取过该链接对应图片的指纹(imgSha 相同)
metacached, changedboolgrad 行:复用了创建时的结果(IPFS 内容不会变)/ JSON 和创建时的不同(http 链接)
metaerrstring抓取失败的原因(meta: <host> <reason>、image: <reason>、noUri);一切正常时不出现
skipmint, phase, whystring未抓取:backlog(繁忙时段队列已满)

gradholders

示例行(来自样本)
holders(此处仅展示 top 的前 3 项;文件中最多包含 20 项)
{"type":"holders","t":1791950508411,"mint":"GUFGC9E1mtY5PB4qrr5GeyCcBJGBzMqs9bQvNon1pump","mark":10,"src":"chain","tGrad":1791949905766,"lagS":2.6,"slot":456698335,"supply":995031028.780416,"decimals":6,"pool":"AEM5qEJSYyEvqWnaajgxey5yBPXfLj5L1mLnu5Vsn2C9","n":20,"top":[{"acct":"HUVzPYCqGDz7qe46bKa6P5fuEahRaeFhTtEZGPipm6Ve","owner":"9qZvANPkPE6NHoj5W5BzJ4gb4byaVqvg1V4JCJBfiK2m","amt":129437610.107396,"pct":13.0084},{"acct":"49CVwy8EkACVqT9ASKwebaCykK4cLmzYZPbNgENPuZmu","owner":"AEM5qEJSYyEvqWnaajgxey5yBPXfLj5L1mLnu5Vsn2C9","amt":63052232.378713,"pct":6.3367,"role":"pool","pda":true},{"acct":"E3gjGe8o8mhj3hr6UScErijYrnvKS1ijwWcD5c9u41RY","owner":"BTmCme13XXrD3VLxXFChL9VnmicJ5PjkVUpAsjrooEYh","amt":2373829.971933,"pct":0.2386}],"top10Pct":13.6241,"top10PctAll":19.9136,"top20Pct":14.0483,"poolPct":6.3367,"curvePct":0,"tries":1}

毕业后 10 分钟,最大持仓者占供应量的 13.0%,资金池占 6.3%;top10Pct(13.6)排除了资金池和曲线,top10PctAll(19.9)把它们算进去了。

字段说明

每行一个 JSON 对象,按 t 排序。代币数量以整枚计;pct = 占供应量的百分比。数据来源:Solana RPC(getTokenLargestAccounts + getMultipleAccounts)。

holdersmint, markstring, number该币;毕业后的分钟数(1、10、60)
holderssrc, tGradstring, number最先报告毕业的数据源:chain(我们的 curvetape 记录器)、pumpportal(经 pregrad 的 PumpPortal 免费数据源),或自 2026-10-14 起的 chainlogs(pregrad 自己从链上日志检测到的);观察到的时间(毫秒)
holderslagSnumber快照实际读取时间,相对 tGrad + mark 晚了多少秒
holdersslotnumber读取时的链上 slot
holderssupply, decimalsnumber从 mint 读取的代币总供应量(整枚)和小数位数
holderspoolstring该币的标准 PumpSwap 资金池(以 SOL 计价的毕业币)
holdersnnumber返回的账户数(最多 20 个)
holderstoparray按持币数量从多到少排序:acct(代币账户)、owner(持有人)、amt、pct、role(只在 pool = 该币的 PumpSwap 资金池,或 curve = 它的旧邦定曲线时出现)、pda(只在为 true 时出现:持有人是程序地址,不是普通钱包)
holderstop10Pct, top20Pctnumber排除资金池和曲线后,前 10 / 20 大账户占供应量的百分比
holderstop10PctAllnumber前 10 大账户占比,全部计入
holderspoolPct, curvePctnumber资金池 / 曲线所占的百分比
holderstriesnumber读取尝试次数(0 = 第一次尝试前就放弃了)
holderserrstring快照失败(429 = 公共 RPC 拒绝读取,late = 没能在时间点附近得到响应);此时没有持仓字段
校验下载文件

每个免费文件的 SHA-256:

180badc1ad3c6ec08ea2269ec4ad5a4c34119556184918bd67e65ec676551e30  graduates-2026-10-10-1400-1600utc.csv
4fc56af0221a66f1e91b304743172eeda3d0551975337f1942edd45d01871268  one-coin-odyssey-2026-10-10-1442-1512utc.csv
9513e2258b8f9b4f8891fbe6f02612ad9cec9a406e9e4268bf240d1d7feeec77  one-coin-odyssey-2026-10-10-1442-1512utc.jsonl

把这些行存成 SHA256SUMS,放在下载文件旁边,运行 sha256sum -c SHA256SUMS;或者直接下载 SHA256SUMS 和 MANIFEST.json(每个免费文件的字节数、校验和与行数)。每份每日数据文件都附带同样的说明文件 <name>.manifest.json。

03

读取文件

JSON lines(gzip)· 也有 Parquet 格式 · 每天一个 CSV

两个时钟。每一行都有 t:自 1970 年 UTC 起的毫秒数,也就是我们的记录器收到这个事件的时间。从链上读取的行(trade、grad、ctrade)还带有 bt(以秒计的区块时间)和 slot。按 slot 再按 i(该笔买卖在所属链上交易内的序号)排序,得到链上顺序;用 t 判断实盘机器人何时能获知该事件。在样本里,t 比 bt 延迟的中位数约为 0.7 秒,第 99 百分位晚 1.4 秒。文件是按 t 切分的,所以区块时间刚好在 UTC 午夜之前的一笔交易,可能会出现在下一天文件的开头。

一个文件里混合了好几种行类型,各自字段不同,所以要让你的工具扫描每一行,而不是只看前几行。

也有 Parquet 格式:如何读取 Parquet 副本

Parquet。每个每日文件都有 .parquet 版本:同样的行、同样的顺序,每个字段对应一个有明确数据类型的列,ZSTD 压缩,发布前会与 .jsonl.gz 核对(行数相同,内容一致)。每个文件是一张表,列是每种行类型的每个字段;某一行没有的字段就是 null,所以先按 type 筛选。t 仍然是整数毫秒。嵌套对象是结构体(pandas 里是 dict),数组是列表。padfeed 的 usd 是一个以计价 mint 为键的映射。有些字段在一种行类型里是文本、在另一种里是对象或数字(pregrad 的 curve、src 和 cross),这种字段是文本列:要么原样是文本,要么是对象的 JSON 文本。同一个数据集每天的列都一样,所以一个文件夹里的多天数据能当一张表读。

Parquet: pandas

import pandas as pd

# 一天的 pregrad 数据不到一秒就能加载完(从 JSON lines 读要约 6 秒)
df = pd.read_parquet("pregrad-2026-10-12.parquet")
rec = df[df["type"] == "record"]
funders = rec["creatorInfo"].str["funder"]    # 嵌套字段是 dict

# gradtrades:只读你需要的列
cols = ["type", "bt", "slot", "i", "mint", "side", "user", "quoteAmount"]
trades = pd.read_parquet("gradtrades-2026-10-12.parquet", columns=cols)
trades = trades[trades["type"] == "trade"]

Parquet: DuckDB

-- 把所有日期的数据合并当作一张表读取
SELECT mint, count(*) AS trades, sum(quoteAmount) AS sol
FROM read_parquet('gradtrades-*.parquet')
WHERE type = 'trade'
GROUP BY mint ORDER BY sol DESC LIMIT 20;

-- padfeed 的美元价格:以计价 mint 为键的映射
SELECT t, usd['So11111111111111111111111111111111111111112'] AS sol_usd
FROM read_parquet('padfeed-2026-10-12.parquet')
WHERE type = 'qpx';
04

数据是怎么采集的

只用公开数据:Solana 链上数据(通过公共 RPC 读取,缺口修补和持仓快照用付费 RPC)、PumpPortal 的免费数据源、用于币种元数据的公共 IPFS 网关、Meteora 的公共 API,以及 Jupiter 的免费价格 API。没有私有数据,不登录任何账号,不涉及社交资料。

只记事实,不下结论。我们出售的是链上实际发生的事(地址、金额、时间),而不是我们对某个钱包的看法:不贴“内幕钱包”或“跑路项目方”之类的标签。我们自己的交易钱包会从每个文件里剔除。

发布前会核对。每一行都会解析并检查;格式错误的行会被丢弃。数据缺口(连接断开、因数据预算跳过某个币)会以行的形式写进文件(down、up、resume、带 why 的 end),绝不编造或瞎猜填补。

05

覆盖范围与限制

使用某个时段的数据前,先读这里

数据缺口会单独记录,不会靠猜测补齐

  • 数据源连接断开会记成一条 down 行和一条 up 行,附带各自的时间;中间的交易可能缺失。
  • 重启后重新开始跟踪的币会有一条 resume 行;此前缺失的交易数据不会重建。
  • 每个被跟踪的币都会以一条带 why 的 end 行结束:window(30 分钟已到)、evicted(30 个币的上限)、budget(数据预算)。
  • curvetape 每次实时数据源断开都会写一条 gap 行;launchmeta 和 gradholders 每次抓取或持仓快照失败都会写一条带 err 的行。
  • pregrad:新币和迁移数据源在 2026-10-14 09:31–13:01 UTC 以及 2026-10-14 15:16 至 2026-10-15 20:24 UTC 断开(故障,已修复)。这两段时间的毕业记录仍在,但大多缺少 ageS,不少缺少 sym/name 和 creatorPctAtGrad,priorCoins24h/priorCoins72h 为 0,且 create、migrate、curvex、ctrade 行缺失。
  • 不插值,不瞎猜。文件中存在数据缺口,就保留并标明;后来通过完整区块补回的数据,修补的行会标明(src: "backfill")。

gradtrades 不包含哪些数据

  • 只跟踪毕业时市值在 300 到 600 SOL 之间的币;其他币只会有一条 follow: false 的 grad 行,没有交易数据。
  • 同一时间最多跟踪 30 个币;第 31 个毕业时,最老的那个会被挤掉。
  • 每个币只跟踪毕业后 30 分钟,这个窗口之后不再记录。
  • 失败的交易不计入。
  • 延迟发现的币会有 late: true 和 followFrom;该时间之前的交易缺失。

出售前去掉了什么

  • 我们自己的交易钱包,从每个数据集里都去掉了。
  • 我们内部的“问题钱包”名单,以及由它衍生的每个字段:flags、priorRugged、抛售者的 role。
  • pregrad 中移除的内容:图片指纹和元数据链接(它们有自己的数据集 launchmeta,而且不保留社交链接)。
  • 心跳和统计行。
  • 不添加任何钱包标签。留下的只是链上发生的事:地址、金额、时间。

发布前的检查

  • 每一行都会解析为 JSON 并检查是否有 type 和 t;格式错误的行会被丢弃。
  • 文件按 UTC 日界切分,在当天结束后发布。
  • 免费文件是从同一批每日文件里用同样的导出流程切出来的;上面列出了 SHA-256 校验和,方便你核对下载内容。
  • 已知的限制都写在这里和 README 里,不会藏在脚注里。
06

购买

买一天或买套餐 · 在 Solana 上用 USDC 或 SOL 支付 · 几分钟内通过邮件收到下载链接

选择

单日

$10 一次性

用 USDC 或 SOL 支付

  • 任选一个 UTC 日,整天数据汇总成一张表(graduates CSV):手机能打开,也能直接丢进 ChatGPT 或 Claude
  • 同时包含:每个毕业币前 30 分钟的数据(gradtrades)和每个新币背后是谁(pregrad),JSON lines 和 Parquet 格式都有
  • 已填入当天文件名的测试提示词,以及示例规则当天的表现
  • 不是订阅

一周

$20 一次性

用 USDC 或 SOL 支付

  • 最近 7 天,全部数据集
  • 每天一张汇总表(graduates CSV),另有 7 天合并成一个文件,方便丢进 ChatGPT
  • 一次付费,无订阅

全部历史

$49 / 月

用 USDC 或 SOL 支付

  • 自 2026 年 10 月 3 日以来的每一天,每天早上新增一天

实时提醒 · $10 / 月

用 USDC 或 SOL 支付

每个 pump.fun 毕业币几秒内就推送到一个私密 Telegram 频道:开发者持仓占比、曲线速度、毕业所在区块、创建者历史,然后是它毕业后头 10 分钟的走势。只讲事实,不是建议。

免费预览,延迟 10 分钟:t.me/launchtape

30 天,一个 Telegram 账号;邀请链接通过邮件发给你。不会自动续费。

SOL 价格由 Jupiter 提供

单日和一周都是一次性付款。全部历史的一次付款覆盖 31 天;不会自动续费。到期前几天,我们会通过邮件发送续费链接。每天每个数据集都是一个独立文件,所以较长时段的历史数据要一个文件一个文件地下载(gradtrades 每天大约 0.8 GB)。只支持 Solana 网络;其他链可以联系我们。

如果文件打不开,或与描述不符,我们会把钱退给您。

用 Python 读取文件

Python: pandas

import pandas as pd

# gradtrades 每天大约 500 万行:分块读取,只保留需要的
chunks = pd.read_json("gradtrades-2026-10-10.jsonl.gz", lines=True, chunksize=500_000)
trades = pd.concat(c[c["type"] == "trade"] for c in chunks)
trades["ts"] = pd.to_datetime(trades["bt"], unit="s", utc=True)

DuckDB

-- sample_size=-1:扫描每一行,这样每种行类型的字段都会出现在 schema 里
SELECT type, count(*) AS n
FROM read_json_auto('gradtrades-2026-10-10.jsonl.gz', sample_size=-1)
GROUP BY type ORDER BY n DESC;

Shell: zcat + jq

# 各类型的行数
zcat gradtrades-2026-10-10.jsonl.gz | jq -r .type | sort | uniq -c

# 把交易导出成 CSV(自己选列)
zcat gradtrades-2026-10-10.jsonl.gz \
  | jq -r 'select(.type=="trade") | [.bt,.slot,.i,.mint,.side,.user,.baseAmount,.quoteAmount,.price] | @csv' \
  > trades-2026-10-10.csv

支付

手动支付

如果你的钱包不能用上面的支付按钮或扫码:先按上面的支付按钮拿到订单号和准确金额,然后用任意 Solana 钱包按该金额向下方地址转账,备注(memo)填订单号(例如 LT-7KQ2M9)。

5vf1PzK8LrF9D5bemYJYPsFYp4nHULSTA1biBampgU58
收款地址的二维码

这个二维码只包含地址:金额和备注需要你自己填。

你的钱包没有备注(memo)字段?仍可先完成转账,然后通过联系表单把交易签名和订单号发给我们:我们会在一天内手动核对。

07

常见问题

从哪里开始?

先免费看看数据长什么样:graduates CSV(105 个币,2 小时,19 KB)和一个币的每一笔交易(30 分钟,0.4 MB)。两个都能直接丢进 ChatGPT 或 Claude。然后花 $10 用完整一天来测试:UTC 一天里每个毕业币的每一笔交易,以及每次发行背后是谁。

付款后怎么拿到文件?

选好要购买的数据或套餐,填邮箱,按支付。浏览器钱包(Phantom、Solflare、Backpack)会弹出来,内容都已填好;在手机上,“在钱包 App 中打开”效果一样;在没装钱包的电脑上,用手机扫二维码。我们会在一两分钟内看到 Solana 网络上的付款,然后通过邮件发送专属下载链接。收件箱里没看到?检查一下垃圾邮件(和推广邮件)文件夹:新发件人发来的邮件经常会被归到这些文件夹;标记为“非垃圾邮件”,之后的邮件就会正常送达了。不需要账号,不需要登录。链接 7 天内有效(全部历史套餐是 14 天);每天的数据会以 .jsonl.gz 和 .parquet 两种格式提供,旁边附带 manifest(行数、SHA-256)。用别的方式付款但一直没收到东西?通过联系表单把交易签名发给我们,我们会手动核对。

一个文件具体是什么?

一个数据集、一个 UTC 日、gzip 压缩的 JSON lines:gradtrades-2026-10-10.jsonl.gz 包含 10 月 10 日 00:00:00 到 23:59:59 UTC 之间所有的 gradtrades 行,每行一个 JSON 对象。典型压缩后大小(2026 年 10 月 10–13 日):gradtrades 约 0.8 GB,curvetape 约 0.75 GB,pregrad 22–70 MB,meteora-pools 19 MB,launchmeta 14 MB,padfeed 3–4 MB,gradholders 约 1 MB。每天也提供 Parquet 格式,gradtrades-2026-10-10.parquet:相同记录按具有明确数据类型的列存储,适合 pandas、DuckDB、Polars 或 Spark,发布前会与 JSON lines 核对(同样这几天:gradtrades 约 0.6 GB,pregrad 19–22 MB,meteora-pools 约 3 MB,padfeed 2–3 MB)。每日订阅发的就是同样的文件,每天一套,在该 UTC 日结束后发出。

能退款吗?

如果文件打不开,或与描述不符,我们会把钱退给您。

08

许可

允许

  • 个人和研究用途。
  • 在你自己的团队内部使用。
  • 你用它做出来的东西(图表、论文、模型、策略)都归你所有。

不允许

  • 转卖文件。
  • 重新发布文件或其中的大量内容。
  • 分享给你团队以外的人。

保证

不是投资建议。文件按描述提供;见“支付”下方的保证。数据缺口会标记出来,不会填补;使用某个时段的数据前,请先阅读上面的限制说明。

09

联系我们

咨询、付款查单、定制需求 · 一天内回复

联系我们时,请提供以下信息

  • 付款问题:提供交易签名,方便我们找到你的转账。
  • 定制需求(其他日期、其他链、你需要的某个字段):说清楚你想要什么、用来做什么。
  • 我们会通过你留下的邮箱或社交账号回复你,通常一天内。你的留言只用来回复你。