Meme Atlas AZ · pump-bonding-curve-fields
Bonding curve pump.fun: hesabdakı sahələr, complete bayrağı və PumpSwap-a miqrasiya
Pump.fun-da hər yeni koin bonding curve üzərində alınıb-satılır; hər koinin öz əyri hesabı var, orada virtual və real ehtiyatlar və complete bayrağı saxlanılır. Bu mətn rəsmi proqram sənədi əsasında həmin sahələri bir-bir oxuyur.
- Dərc edilib
- Yenilənib
- Redaksiya məsuliyyəti
- Meme Atlas AZ
Solana-da yeni yaradılmış meme koinin səhifəsində çox vaxt "bonding curve progress" adlı bir faiz görünür. Bu faizin arxasında birja sifariş kitabı yoxdur. Arxasında Pump proqramının həmin koin üçün açdığı bir zəncir hesabı, o hesabda isə bir neçə rəqəm və bir bayraq dayanır.
Bu mətn pump.fun-un GitHub-da açıq saxladığı proqram sənədlərinə əsaslanır (pump-fun/pump-public-docs deposu, oxunan vaxt son commit 2026-10-08 tarixli idi). İngiliscə sitatlar orijinaldır, izahlar bu mətnin öz ifadəsidir. «Bu mətnin hesablaması» kimi qeyd olunan rəqəmləri sənəddəki dəyərlərdən özümüz çıxarmışıq.
Pump.fun nədir: koin yaradan proqram və bir əyri
Sənəd Pump proqramını belə təqdim edir: "Pump program allows creating SPL coins that are instantly tradeable on a bonding curve without having to seed liquidity." Koini yaradan şəxs əvvəlcədən likvidlik qoymur; koin yaranan kimi alınıb-satıla bilir, qarşı tərəf isə proqramdakı əyridir.
Sonrakı iki cümlə yolun sonunu göstərir: "When the coin hits a certain market cap the liquidity from the bonding curve is migrated to PumpSwap (an AMM on Solana). The LP tokens received from the PumpSwap pool are then burnt."
Qiymət qaydası da bir cümlədir: "The bonding curve formula is based on Uniswap V2 and uses synthetic x and y reserves to ensure that there is liquidity for the coin." Yəni sabit hasil düsturu işləyir, amma ehtiyatların bir hissəsi proqramın təyin etdiyi virtual dəyərdir.
Sənəddə proqramın ünvanı `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` kimi verilir, Mainnet və Devnet-də eynidir.
Hər koinin əyri hesabı: beş rəqəm və bir bayraq
Sənədə görə hər koinin bonding curve hesabı var və ünvanı `["bonding-curve", mint]` toxumlarından törəyir. Əsas sahələr bunlardır:
- `virtual_token_reserves`, `virtual_sol_reserves`: qiymət hesabı üçün virtual ehtiyatlar.
- `real_token_reserves`, `real_sol_reserves`: əyridə həqiqətən qalan token və SOL.
- `token_total_supply`: koinin ümumi təklifi.
- `complete`: əyrinin satılıb qurtarıb-qurtarmadığı.
Alış zamanı sənədin ifadəsi belədir: "`virtual_sol_reserves` and `real_sol_reverses` increase with the same lamports amount according to the bonding curve formula" (orijinalda reserves sözü reverses kimi yazılıb, olduğu kimi verilir). Token ehtiyatlarının ikisi də eyni miqdarda azalır. Satışda istiqamət tərsinədir. Virtual və real ehtiyat həmişə birlikdə və eyni qədər dəyişir, fərq yalnız başlanğıc nöqtəsindədir.
Sonrakı yeniləmələr hesabın sonuna yeni sahələr əlavə edib: `creator`, `quote_mint`, `is_holder_reward` və başqaları. Sənəd xəbərdarlıq edir ki, sahə əlavə olunmazdan əvvəl yazılmış hesablar daha qısadır və çatışmayan son sahələr `0`, `false` və ya `Pubkey::default()` kimi oxunmalıdır.
Başlanğıc dəyərləri oxunaqlı rəqəmə çevirək (bu mətnin hesablaması)
Hər yeni koinin əyrisi başlanğıc dəyərlərini proqramın yeganə `Global` hesabından alır. Sənəddə göstərilən `Global` məzmunu belədir:
- `initial_virtual_token_reserves`: 1073000000000000
- `initial_virtual_sol_reserves`: 30000000000
- `initial_real_token_reserves`: 793100000000000
- `token_total_supply`: 1000000000000000
Bunlar ən kiçik vahidlərdir. `create_v2` təlimatının hesab cədvəlində yeni mint hesabının "initialized with `decimals = 6`" olduğu yazılıb; Solana-nın rəsmi terminlər səhifəsi lamport üçün "A fractional native token with the value of 0.000000001 sol" deyir. Bu iki məlumatla (bu mətnin hesablaması):
- Ümumi təklif 1 milyard koindir.
- Əyridəki real token ehtiyatı 793,1 milyon koinlə başlayır, bu ümumi təklifin 79,31 faizidir.
- Fərq 206,9 milyon koindir, yəni 20,69 faiz. Deponun README faylı son alışdan danışarkən bu hissəni "the tokens that would have gone into the PumpSwap pool" adlandırır.
- Virtual SOL ehtiyatı 30 SOL, virtual token ehtiyatı 1,073 milyard koinlə başlayır. Sabit hasil düsturunda kənar qiymət virtual SOL-un virtual tokenə nisbətidir; başlanğıcda bu, bir koin üçün təxminən 0,000000028 SOL edir.
Bu, sənəddə göstərilən `Global` nüsxəsidir. Sənəd həm də yazır ki, `set_params` təlimatı "allows updating all the `Global` account fields". Ona görə başlanğıc parametrlər üçün zəncirdəki cari `Global` hesabı əsasdır. `quote_mint` sahəsi isə göstərir ki, koin SOL-dan başqa aktivlə də cütləşə bilər.
Əyri satılıb qurtaranda təxminən hansı vəziyyətdədir (bu mətnin hesablaması)
Düstur Uniswap V2-yə əsaslandığı üçün yuxarıdakı başlanğıc dəyərlərlə əyrinin son vəziyyətini təxmin etmək olar. Aşağıdakıların hamısı bu mətnin hesablamasıdır, komissiya nəzərə alınmayıb və başlanğıc parametrlərin sənəddəki kimi olduğu fərz edilib.
Sabit hasil o deməkdir ki, virtual SOL ilə virtual tokenin hasili alış-satışdan əvvəl və sonra eyni qalır. Başlanğıcda bu, 30 vurulsun 1,073 milyarddır. Real token ehtiyatı sıfıra enəndə virtual token ehtiyatı 793,1 milyon azalır və 279,9 milyon qalır; hasil dəyişmədiyi üçün virtual SOL ehtiyatı təxminən 115,01 SOL-a qalxmalıdır.
- Virtual SOL 30-dan təxminən 115,01-ə qalxır; aradakı təxminən 85,01 SOL alıcıların əyriyə ödədiyi real SOL-dur.
- Bu anda kənar qiymət bir koin üçün təxminən 0,00000041 SOL olur, yəni başlanğıc qiymətin təxminən 14,7 misli.
Bu rəqəmlər iki işə yarayır. Birincisi yoxlamadır: `complete` dəyəri `true` olan, SOL ilə cütləşmiş əyridə `real_sol_reserves` bu miqyasdan çox uzaqdırsa, əvvəlcə başlanğıc parametrlərin dəyişib-dəyişmədiyinə və koinin başqa aktivlə cütləşib-cütləşmədiyinə baxmaq lazımdır. İkincisi qiymətin başa düşülməsidir: ilk alışla son alış arasında əyridəki qiymət on dəfədən çox fərqlənir və bunu düsturun özü müəyyən edir.
Alış və satış təlimatlarındakı iki hədd
Sənəddəki təlimat təsvirləri interfeysdəki slippage ayarının harada oturduğunu da göstərir.
Alış təlimatı belə təsvir olunur: "`buy(user, associated_user, mint, amount, max_sol_cost)` allows a `user` to buy the exact `amount` of coins from the bonding curve of the given `mint`, using at most `max_sol_cost` lamports." Yəni alınacaq koinin dəqiq miqdarı və ən çox nə qədər ödəniləcəyi göstərilir.
Satış simmetrikdir: "`sell(user, associated_user, mint, amount, min_sol_output)` allows a `user` to sell the exact `amount` of coins to the bonding curve of the given `mint`, receiving at least `min_sol_output` lamports."
`create` təlimatında asan səhv salınan bir yer var. Sənədə görə `user` və `creator` adətən eyni ünvandır, amma fərqli də ola bilər; misal "free coin creation" axınıdır: "the first coin buyer also creates the coin on-chain". Bu halda yaratma əməliyyatını göndərən ilk alıcıdır, `creator` isə ilkin yaradıcıdır və həmin əməliyyatı imzalamaya da bilər. Tədqiqat qeydində koini kimin yaratdığı yazılacaqsa, əyri hesabındakı `creator` sahəsi oxunmalıdır.
İnterfeysdəki "progress" haradan hesablanır
Oxuduğumuz sənədlərdə əyri hesabında progress adlı sahə yoxdur. Hesablamaq üçün yararlı sahə `real_token_reserves`-dir: başlanğıc dəyərdən sıfıra qədər enir. Bu mətnin düsturu belədir:
satılmış pay = 1 − `real_token_reserves` ÷ başlanğıc `real_token_reserves`
Fərz olunan bir oxunuş: `real_token_reserves` 396550000000000-dir, bu başlanğıc dəyərin tam yarısıdır, satılmış pay 50 faiz olur. Hər interfeys öz faizini necə təyin edir, bunu həmin interfeysin öz izahından öyrənmək lazımdır.
complete: əyrinin satılıb qurtardığı an
`complete` əvvəlcə `false` olur. Sənəd onun dəyişdiyi anı belə yazır: "It is set to `true` at the end of a `buy` instruction, when `real_token_reserves == 0`, so there are no more real tokens left in the bonding curve."
Satılıb qurtardıqdan sonra və miqrasiyadan əvvəl əyri dayanır. README-yə görə həddi keçən alışdan sonra "no buys or sells are possible on the curve until the migration happens".
PumpSwap-a miqrasiya: istənilən istifadəçi başlada bilər
Miqrasiyanı `migrate` təlimatı edir. Sənədə görə o, "allows any `user` to migrate the liquidity of a completed bonding curve of the given `mint` to PumpSwap AMM"; şərt `complete == true` və `real_token_reserves == 0` olmasıdır. Təlimat idempotentdir: artıq köçürülmüş əyri üzərində təkrar icra olunsa, heç nə dəyişmir.
Köhnə mətnlərdə Raydium-a keçiddən danışılır. Sənəddə bu, `withdraw` təlimatı ilə bağlıdır: o, "a now-disabled instruction" kimi təsvir olunur. Cari sənəddə hədəf PumpSwap-dır.
PumpSwap sənədi onu "a constant-product AMM" adlandırır, proqram ünvanı `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA`-dır. Tədqiqat qeydi üçün iki detal vacibdir:
- Hovuzun indeksi. Hovuz ünvanı `["pool", index, creator, baseMint, quoteMint]` toxumlarından törəyir və sənədə görə `migrate` ilə yaradılan hovuzun indeksi 0-dır. Eyni sənəd `create_pool` təlimatında indeksin eyni cüt üçün bir neçə hovuz yaratmağa imkan verdiyini də yazır. Deməli, bir koinin birdən çox PumpSwap hovuzu ola bilər və hansının miqrasiyadan yarandığını ayırmaq lazımdır.
- LP təklifi. Pump sənədinə görə miqrasiyadan alınan LP tokenlər yandırılır. Hovuz hesabındakı `lp_supply` isə "the total supply of the `lp_mint` without burns and lock-ups" kimi təyin olunub. LP-nin yandırıldığını yoxlamaq üçün `lp_mint`-in zəncirdəki öz təklifinə baxmaq lazımdır.
Tədqiqat qeydində hansı xanalar olmalıdır
- Mint ünvanı, token proqramı və decimals. `create_v2` cədvəlinə görə yeni mint Token-2022 proqramındadır və yaradılarkən `mint_authority` Pump proqramının bir PDA-sıdır; sonrakı icazə vəziyyəti birbaşa mint hesabından oxunmalıdır.
- Əyri hesabının ünvanı, oxunma vaxtı, `complete`, `real_token_reserves`, `quote_mint`.
- Miqrasiya olubsa: PumpSwap hovuzunun ünvanı, indeksi və `lp_mint`-in zəncirdəki təklifi.
- Komissiya faizini köhnə mətndən köçürməyin. O, `Global` hesabında və depodakı fee program sənədində yazılıb, oxunan anda yoxlanmalıdır.
- Sənədin versiyası: deponun commit tarixi.
Oxunma vaxtı yazılmayıbsa, bu qeydi başqasının oxunuşu ilə tutuşdurmaq olmur, çünki əyridəki rəqəmlər hər əməliyyatla dəyişir.
Bu mətn yalnız məlumatın necə oxunmasından bəhs edir, pump.fun-u, PumpSwap-ı və ya hər hansı tokeni qiymətləndirmir və alqı-satqı tövsiyəsi deyil.
Məzmun mənbələri
- pump-fun/pump-public-docs — READMENaşir: pump.funBaxış tarixi:
- pump-fun/pump-public-docs — Pump programNaşir: pump.funBaxış tarixi:
- pump-fun/pump-public-docs — PumpSwap (Pump AMM) programNaşir: pump.funBaxış tarixi:
- pump-fun/pump-public-docs — Coin Creation AccountsNaşir: pump.funBaxış tarixi:
- Solana Documentation — TerminologyNaşir: Solana FoundationBaxış tarixi: