Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
日本語の概要は準備中です。原文の説明を表示しています。
Constant-product AMM bonding curve math for Pump token pricing — buy/sell quoting, fee-aware calculations, market cap computation, tiered fees, ceiling division, virtual vs real reserves, and edge-case handling.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Implement and maintain the constant-product AMM bonding curve math that powers Pump token pricing — including buy/sell quoting, fee-aware calculations, market cap computation, reserve management, and edge-case handling for new, active, and migrated curves.
Pump tokens are priced using a constant-product bonding curve ($x \times y = k$) where $x$ = virtual SOL reserves and $y$ = virtual token reserves. The bonding curve determines token prices during the pre-graduation phase. Once market cap reaches a threshold, the token "graduates" and migrates to a PumpAMM pool.
src/bondingCurve.ts — all bonding curve math functions (buy/sell quoting, market cap)src/fees.ts — fee computation (basis points, tiered fees, ceiling division)src/state.ts — BondingCurve, Global, FeeConfig, FeeTier interfaces$$x \times y = k$$
Buy (tokens out for SOL in): $$\text{tokensOut} = \frac{dx \times Y}{X + dx}$$
Where $dx$ = SOL input (after fees), $X$ = virtual SOL reserves, $Y$ = virtual token reserves.
Sell (SOL out for tokens in): $$\text{solOut} = \frac{dy \times X}{Y + dy}$$
Where $dy$ = tokens sold, $X$ = virtual SOL reserves, $Y$ = virtual token reserves.
Fees are deducted from the SOL amount before applying the bonding curve formula:
inputAmount = (amount - 1) * 10000 / (totalFeeBps + 10000)
The - 1 before fee stripping is intentional to handle rounding edge cases.
$$\text{marketCap} = \frac{\text{virtualSolReserves} \times \text{mintSupply}}{\text{virtualTokenReserves}}$$
Where mintSupply defaults to ONE_BILLION_SUPPLY ($1 \times 10^{15}$ — 1B tokens with 6 decimals).
When a FeeConfig exists, fees are market-cap-dependent. Fee tiers are iterated in reverse order — the first tier from the end whose marketCapLamportsThreshold ≤ currentMarketCap is selected.
interface FeeTier {
marketCapLamportsThreshold: BN;
fees: { lpFeeBps: BN; protocolFeeBps: BN; creatorFeeBps: BN };
}
$$\text{ceilDiv}(a, b) = \frac{a + b - 1}{b}$$
function ceilDiv(a: BN, b: BN): BN {
return a.add(b).sub(new BN(1)).div(b);
}
| Reserve Type | Includes | Used For |
|---|---|---|
virtualSolReserves | Real SOL + protocol-added virtual offset | AMM formula calculation |
virtualTokenReserves | Real tokens + virtual offset | AMM formula calculation |
realTokenReserves | Actual tokens available | Buy output cap |
realSolReserves | Actual SOL deposited | Withdrawal limit |
| Case | Behavior |
|---|---|
| Zero amount | Returns BN(0) |
Migrated curve (complete === true, zero reserves) | Returns BN(0) |
| Null bonding curve | Creates a fresh curve via newBondingCurve(global) |
| Tokens exceed real reserves | Caps at realTokenReserves |
| Creator fee | Only charged if bondingCurve.creator != PublicKey.default or it's a new curve |
interface BondingCurve {
virtualTokenReserves: BN;
virtualSolReserves: BN;
realTokenReserves: BN;
realSolReserves: BN;
tokenTotalSupply: BN;
complete: boolean; // true = graduated to AMM
creator: PublicKey;
isMayhemMode: boolean;
}
BN (bn.js) for arbitrary-precision integer arithmetic — never use JavaScript numberceilDiv) for fee computation to ensure the protocol never loses dustbondingCurve.complete before building trade instructionscomplete === true) will fail on-chainmintSupply not tokenTotalSupplygetBuySolAmountFromTokenAmountQuote adds + 1 to the result to ensure sufficient SOLまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
日本語の概要は準備中です。原文の説明を表示しています。
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks SolanaOS to add a note, list notes, search notes, or manage note folders.
日本語の概要は準備中です。原文の説明を表示しています。
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
日本語の概要は準備中です。原文の説明を表示しています。
Create, search, and manage Bear notes via grizzly CLI.
日本語の概要は準備中です。原文の説明を表示しています。
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
日本語の概要は準備中です。原文の説明を表示しています。
BluOS CLI (blu) for discovery, playback, grouping, and volume.
日本語の概要は準備中です。原文の説明を表示しています。