跳到正文
fevou.独立加密知识站

pump.fun 内盘、外盘是什么意思?毕业前后的卖出价格与限制

在 pump.fun,内盘卖回联合曲线,毕业后通常在 PumpSwap 池子里卖出。这里用 SOL 配对的币讲清报价、迁移空档和 LP 销毁的作用。

图中标题为“内盘卖回曲线,外盘卖进池子”,下方三格分别写着“曲线还剩多少”“迁移前后”“池子与费用”
pump.fun 的两个交易阶段:内盘卖回联合曲线,毕业迁移后在 PumpSwap 池子中兑换。

在 pump.fun 上,「内盘」指币还挂在联合曲线(bonding curve)上:你买,是程序按曲线报价把币卖给你;你卖,是把币卖回给这条曲线。对面没有人挂单,对手方就是这个币在 Pump 程序里的曲线账户。「外盘」指曲线完成、流动性迁移进 PumpSwap 这个自动做市商(AMM)池子之后,买卖改成跟池子里的储备成交。圈里把这次迁移叫「毕业」。

曲线尚未完成时,持币者可以提交卖出,报价由曲线算,卖得越多均价越差,每笔另收手续费。能否执行还要满足最低到手数量等条件。毕业那一刻有个空档:曲线被买空之后、迁移执行之前,曲线上既不能买也不能卖。迁移完成后能不能顺利卖出,要看池子多深、按哪一档收费、路由经过哪些池子。

内盘的对手是一段程序,不是发币的人

pump.fun 在 GitHub 公开了一套 pump-public-docs 文档。其中 Pump program 说明页开头就写:这个程序让人创建 SPL 代币,币一建好就能在联合曲线上交易,不需要谁先往池子里放流动性。同页接着说,曲线公式基于 Uniswap V2,用的是合成(synthetic)的 x、y 储备,也就是虚拟储备。

落到账户上,每个币创建时都有一个 BondingCurve 账户,里面记着虚拟代币储备、虚拟 SOL 储备、真实代币储备、真实 SOL 储备,外加一个 complete 标志。报价用虚拟储备套恒定乘积:两边储备相乘保持不变。你买走代币,代币一侧变少、SOL 一侧变多,价格往上走;你把币卖回去,方向反过来,价格往下走。真实储备记的是曲线手里实际还剩多少币、实际收进多少 SOL,说明页写明真实 SOL 储备在建币时是 0。

报价跟储备走,创建者的卖单也用这套公式。拿着币并不等于卖单一定成功,数量、账户和最低到手限制仍要满足。

发币者持有大量代币时,卖出会沿曲线压低价格。发币的人能对行情造成多大影响,取决于他和关联地址手里有多少币、代币还留着哪些权限,查法见持币集中度怎么看。

下文以 SOL 配对的币为主。别的平台可能换一套曲线和毕业条件;pump.fun 的其他计价币种及特殊模式,也不能直接套用全部细节。

在内盘卖一单,能拿回多少 SOL

卖回曲线和在 v2 式池子里卖是同一套算法,只是用来报价的换成了虚拟储备。用一组假设数字算一单:曲线虚拟代币储备 6 亿枚,虚拟 SOL 储备 60 SOL,当前价 = 60 ÷ 6 亿 = 每枚 0.0000001 SOL,也就是每 100 万枚 0.1 SOL。

不算手续费时,卖出 Δx 枚换回的 SOL = 60 × Δx ÷ (6 亿 + Δx)

均价比当前价低的幅度 = Δx ÷ (6 亿 + Δx)

假设卖出按当前价算的账面值不计手续费能换回均价比当前价低
1,000 万枚1 SOL约 0.9836 SOL约 1.64%
6,000 万枚6 SOL约 5.4545 SOL约 9.09%
1 亿枚10 SOL约 8.5714 SOL约 14.29%

拿第二行复算:60 × 6,000 万 ÷ 6.6 亿 ≈ 5.4545;6,000 万 ÷ 6.6 亿 ≈ 9.09%。账面 6 SOL,实际拿回不到 5.46,少掉的那半个多 SOL,是这一单自己沿曲线往下砸出来的。同一条曲线越往后走,虚拟 SOL 储备越大,按 SOL 计同样大小的一单,冲击会小一些;具体某个币的储备是多少,要读它曲线账户当时的数。

换回数量还要扣手续费。pump.fun 费用页(页面更新于 2026 年 10 月 8 日,本文于同月查阅)列出的 SOL 配对联合曲线费用是:创建者 0.300%、协议 0.95%、LP 0%,合计 1.25%。同页说明费用一律收在计价资产上,SOL 配对的币就收 SOL,不收你卖的那个币。按换回数量的 1.25% 粗算,第二行到手约 5.4545 × 0.9875 ≈ 5.386 SOL,网络费另计。费率以后可能调整,提交时再对照费用页与交易明细;实际扣费由合约执行。

卖出前还有一个参数要看。仓库 docs/instructions/SELL.md 的 SELL 指令说明里,卖家设的 min_sol_output 是「扣掉协议费和创建者费之后,愿意接受的最低换回数量」。报价到上链之间,别人的买卖会改动储备,到手低于这个数,交易就不执行。该页要求卖出数量大于 0、且不超过余额,另列了账户、计价资产和费用接收地址等校验。满足数量限制,不代表绕过了这些校验;报错时先读交易日志,不能只凭 complete 为 false 判断一定能卖。

毕业:最后一笔买单把曲线清空以后

官方给「完成」下的定义很具体。complete 标志初始为 false;某笔买入指令执行到最后,如果真实代币储备 real_token_reserves 变成 0,就被设为 true。完成的曲线 = complete 为 true,且真实代币储备为 0。也就是曲线里能卖的币被买光,内盘就到头了。说明页开头只说币「达到一定市值」后迁移,没有在这里写死一个金额,所以判断一个币离毕业还有多远,看曲线里还剩多少真实代币储备,比记某个市值数字靠谱。

仓库里的 docs/SYNTHETIC_MIGRATION.md(合成迁移说明)讲了最后那一笔怎么处理。对非 Mayhem 模式的币,新版 v3 买入指令允许清空曲线的那笔买单超过曲线剩余量。曲线上剩的部分按曲线价格成交;多出来的部分,从本该进 PumpSwap 池子的那份币里买,用 PumpSwap 同样的恒定乘积公式、按那个池子的储备定价,手续费仍按曲线收。池子之后就在这笔买单停下的价格开盘。

Mayhem 模式不走这段合成迁移;旧版买入指令也保留原处理方式,超出剩余量会失败,或按其 partial_fill 设置只买剩下的部分。

接着是空档。README 写明,这笔之后曲线上不能再买也不能再卖,直到迁移发生。Synthetic migration 说明说得更直接:这期间曲线上每一笔买卖都会以 BondingCurveComplete 报错失败,这是程序里的限制,交易者选不了。文档没有给这段空档的时长,别默认它一定很短。在毕业边上追涨买入或者想卖出,都可能撞上这个窗口:交易发出去被拒,币还在钱包里。

迁移靠 migrate 指令完成。Pump program 说明页写,任何用户都可以对一条已完成的曲线调用 migrate,把流动性迁到 PumpSwap;对已经迁移过的曲线再调一次,什么也不会发生。费用页提到,执行迁移的账户通常是 pump.fun。迁移本身收 0.015 SOL:SOL 配对的币从联合曲线里扣,其他计价的由执行迁移的账户用 SOL 付,如果是某个用户的交易触发了迁移,就由这个用户付。新池子按最后那笔买单留下的储备建立,SOL 配对时计价一侧会先减去这笔迁移费。

LP 凭证被销毁,管得住哪一头

GitHub 上 pump-fun/pump-public-docs 仓库 docs/PUMP_PROGRAM_README.md 页面顶部,标题 Pump program,第一段写着币可在联合曲线上即时交易、达到一定市值后流动性迁移到 PumpSwap、从池子拿到的 LP 代币随后被销毁,下方是基于 Uniswap V2 和合成储备的公式说明及程序部署地址
Pump program 说明页顶部:首段说明迁移至 PumpSwap 后销毁 LP,下一段说明曲线使用合成储备,下方列出程序地址。来源:pump-public-docs,2026 年 10 月截图。

说明页第一段最后一句:从 PumpSwap 池子拿到的 LP 代币随后被销毁。LP 凭证是池子发给流动性提供者的份额凭证。仓库 docs/PUMP_SWAP_README.md 的 PumpSwap 说明页写,从池子取回资产要走 withdraw 指令,同时烧掉对应数量的 LP 代币。迁移得到的那份 LP 被销毁,就没有人握着这份凭证,也就没有人能用 withdraw 把迁移进去的那份流动性取走。圈里说「LP 烧了、撤不了池」,指的就是这一层。

它管不到的地方更多:

  • 卖单拦不住。创建者、早期地址仍可以提交卖出,LP 销毁只保证没人能凭 LP 把迁移进去的那份流动性提走,不保证价格不跌。
  • 池子深度会变。PumpSwap 有 deposit 和 withdraw,别人后来加进去的流动性,凭他们自己手里的 LP 照样能撤。
  • 代币权限另算。增发、冻结这类权限挂在代币本身,和池子的 LP 是两码事,查法见在区块浏览器上查代币管理权限。
  • 同一个币可能不止一个池子。PumpSwap 说明页写,经 migrate 建出来的池子用的 index 是 0,费用页把它叫 canonical pool(经迁移建出的那个主池),另列了非 canonical 池子的费率。别的池子 LP 在谁手里、有没有锁,要逐个查,方法见流动性池锁仓怎么查。

外盘怎么卖:按池子储备成交,费率按市值分档

迁移以后,买卖的对手从曲线换成 PumpSwap 池子。PumpSwap 说明页把它定为恒定乘积 AMM,程序地址 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA。卖得越多均价越差的道理没变,变的是储备的来源:内盘看曲线的虚拟储备,外盘看池子的储备。同一页还有一个容易漏掉的式子:定价用的计价储备 = 池子计价代币账户的余额 + 池子的 virtual_quote_reserves。这份文档同时说明,当前所有池子的 virtual_quote_reserves 都是 0,因此当前有效计价储备等于账户余额;这个字段是为以后可能出现的非零值准备的,不能拿它解释眼下所有报价差异。这一单相对池子有多大、能换回多少,估法在DEX 卖币提示价格影响太高那篇。

费率也换了一套。按同一份费用页,SOL 或 USDC 配对币迁移建出的 canonical 池子按市值分档收费,市值 = 币的当前价格 × 10 亿枚。SOL 计价的档位节选如下:

市值(SOL)创建者协议LP合计
0–4200.300%0.930%0.020%1.250%
420–14700.950%0.050%0.200%1.200%
4420–98200.750%0.050%0.200%1.000%
98240 以上0.050%0.050%0.200%0.300%

上面节选自 SOL 表,完整表有二十多档;费用页另列 USDC 表。其他资产配对的 Custom Pair 不用市值档位,而按固定表收费,Holder Rewards 模式还要看该币设定的持有人奖励费率。非 canonical 的 PumpSwap 池子是另一套:创建者 0%、协议 0.05%、LP 0.25%,合计 0.3%。费用照样收计价资产。对照内盘的 1.25%,市值还在最低一档(0–420 SOL)的币,外盘每笔合计费率和内盘一样;市值往上走,费率才降下来。

钱包或聚合器报价时,路线可能只走 PumpSwap 那个池子,也可能经过其他 DEX 上另建的池子。这一单的到手取决于路线经过哪些池子、每个池子多深,所以确认页上的路由和最低到手要看清,别只盯着一个价格。

动手之前,链上核这五样

  1. 程序地址。Pump 程序是 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P,PumpSwap 是上面那串 pAMM 开头的地址,两份说明页都写了主网和测试网用同一地址。你在浏览器里看到的曲线账户或池子不归这两个程序管,就不是本文说的这套机制。
  2. 合约地址。名字和图标别的币都能照抄;内盘和外盘是同一个 mint(Solana 上代币的铸币地址,认币就认它)。用合约地址找币,别用名字搜。
  3. 曲线状态。找到这个币的 BondingCurve 账户。仓库里公开了程序的 IDL(接口描述文件),浏览器如果能按它解析账户数据,就能看到 complete 和 real_token_reserves。complete 为 false、真实代币储备不为 0:还在内盘。complete 为 true、且尚未建成该币的迁移池:处在曲线停止交易的空档。不要用任意一个同名池子代替迁移池。解析不出来,就别对着一串原始数据硬猜。
  4. 池子。已经毕业的币,确认 PumpSwap 上由迁移建出的那个池子地址,看两侧储备、LP 代币的去向;路由里出现别的池子,也一并看它的深度和 LP。
  5. 你这一单有多大。拿你打算卖的数量,跟曲线或池子当时的储备比一比,按前面的公式粗算均价要低多少,再加上对应阶段的费率,和确认页的预期到手对一下。差得多,回头查是不是看错了储备或路线。

毕业前后的几个小问题

内盘买的币毕业以后,要不要换成「外盘币」?

不用。Pump program 说明页写的是把某个 mint 已完成曲线的流动性迁到 PumpSwap,搬走的是流动性,币还是同一个合约地址,钱包里的余额不需要兑换。如果有人让你去某个页面「兑换外盘币」或给钱包授权,先停手,核对合约地址。

股票软件里的内盘、外盘,和这里说的是一回事吗?

不是一回事。股票盘口里,外盘一般指按卖出价成交的主动买入量,内盘指按买入价成交的主动卖出量,说的是成交方向。meme 币圈的内盘、外盘说的是在哪里成交:还在联合曲线上,还是已经迁到 DEX 池子里。

内盘买进、外盘卖出,手续费收几次?

买入和卖出各自计费。对 SOL 配对币直接在曲线买入、毕业后直接在 canonical 池子卖出的情况,费用页所列曲线合计费率为 1.25%;外盘卖出按当时市值档计费,最低市值档为 1.250%。多池路由和第三方界面还可能增加费用,要看整条路线的费用明细。