Sieťové Poplatky
Tento dokument vysvetľuje štruktúru poplatkov a mechaniku v koncentrovaných likviditných pooloch BiatecCLAMM.
Prehľad
BiatecCLAMM implementuje viacúrovňový systém poplatkov navrhnutý na kompenzáciu poskytovateľov likvidity pri zachovaní udržateľnosti protokolu. Poplatky sa zbierajú počas swap operácií a distribuujú sa medzi poskytovateľov likvidity a protokol.
Používatelia platia dva typy poplatkov:
- Protokolové Poplatky: Obchodné poplatky, ktoré idú poskytovateľom likvidity a protokolu (momentálne 20% z LP poplatkov ide Biatec)
- Sieťové Poplatky: Poplatky blockchainu Algorand potrebné na spracovanie transakcií
Algorand Sieťové Poplatky
Okrem protokolových poplatkov musia používatelia platiť sieťové poplatky blockchainu Algorand za každú transakciu. Tieto sa platia v ALGO a pokrývajú výpočtové náklady na spracovanie transakcií v sieti.
Minimálne Transakčné Poplatky
- Základný Poplatok: 1,000 microAlgos (0.001 ALGO) za transakciu
- Volania Aplikácií: Dodatočné poplatky na základe zložitosti a využitia zdrojov
- Zoskupené Transakcie: Každá transakcia v skupine platí minimálny poplatok
Poplatky za Vytvorenie Poolu
Vytvorenie nového likviditného poolu vyžaduje viacero transakcií a má najvyššie sieťové poplatky kvôli Minimálnym Požiadavkám na Zostatok (MBR) pre nový pool účet. Poznámka: Vytvorenie poolu vyžaduje značnú počiatočnú investíciu ~5 ALGO na dodržanie MBR.
Rozpis Transakcií:
- Transakcia nasadenia poolu: 10,000 microAlgos (0.01 ALGO) statický poplatok
- NOOP volania pool providera: 2 × 1,000 microAlgos (0.002 ALGO)
- Minimálna Požiadavka na Zostatok (MBR): 5,000,000 microAlgos (5 ALGO) - potrebné pre pool účet
- Bootstrap krok 2: 5,000 microAlgos (0.005 ALGO) extra poplatok
Celkový Sieťový Poplatok: ~5.018 ALGO (vrátane požiadavky MBR) Celkový Počet Transakcií: 4-6 transakcií v skupine
Poplatky za Pridanie Likvidity
Pridanie likvidity do existujúceho poolu:
Rozpis Transakcií:
- Hlavné volanie pridania likvidity: 8,000 microAlgos (0.008 ALGO) statický poplatok
- Transakcie transferu aktív: 1-2 × 1,000 microAlgos (0.001-0.002 ALGO)
- NOOP volanie pool providera: 1,000 microAlgos (0.001 ALGO)
- Opt-in LP tokenov (ak potrebné): 1,000 microAlgos (0.001 ALGO)
Celkový Sieťový Poplatok: ~0.011-0.013 ALGO Celkový Počet Transakcií: 3-5 transakcií v skupine
Swap Poplatky
Vykonanie výmeny (swapu) tokenov:
Rozpis Transakcií:
- Hlavné swap volanie: 12,000 microAlgos (0.012 ALGO) statický poplatok
- Transakcia transferu aktíva: 1,000 microAlgos (0.001 ALGO)
Celkový Sieťový Poplatok: ~0.013 ALGO Celkový Počet Transakcií: 2-3 transakcie v skupine
Poplatky za Odobratie Likvidity
Výber likvidity z poolu:
Rozpis Transakcií:
- Hlavné volanie odobratia likvidity: 12,000 microAlgos (0.012 ALGO) statický poplatok
- Transfer LP tokenu: 1,000 microAlgos (0.001 ALGO)
Celkový Sieťový Poplatok: ~0.013 ALGO Celkový Počet Transakcií: 1-2 transakcie v skupine
Optimalizácia Poplatkov
Protokol používa zoskupovanie transakcií na minimalizáciu sieťových poplatkov:
- Atomické Transakcie: Všetky operácie v skupine buď uspejú, alebo zlyhajú spoločne
- Zdieľané Referencie: Box a app referencie sú zdieľané naprieč zoskupenými transakciami
- Efektívny Prístup k Stavu: Minimálny počet on-chain čítaní a zápisov stavu
Odhad Poplatkov v Kóde
Pri odhadovaní celkových nákladov používateľa zahrňte protokolové aj sieťové poplatky:
// Odhad protokolového poplatku
const protocolFee = (swapAmount * lpFeeRate) / SCALE;
// Odhad sieťového poplatku (približný)
const networkFee = 13000; // microAlgos pre swap operácie
// Celkové náklady používateľa
const totalCost = swapAmount + protocolFee + networkFee / 1_000_000; // Konverzia na ALGO
Typy Poplatkov
1. Poplatky Poskytovateľov Likvidity (LP)
Definícia: Poplatky účtované pri swap transakciách, ktoré kompenzujú poskytovateľov likvidity za poskytnutie kapitálu do poolu.
Konfigurácia:
- Nastavuje sa pre každý jednotlivý pool (nie globálne)
- Rozsah: 0 % až 100 % (reprezentované na 9 desatinných miest)
- Príklad: 10 % poplatok =
100_000_000(0.1 * 10^9) - Uložené v stave kontraktu poolu ako
fee
Výpočet: Aplikuje sa na prichádzajúcu sumu swapu pred výpočtom výstupu swapu.
// Výpočet poplatku vo funkcii swap
const feesMultiplier = (s - ((this.fee.value as uint256) * (user.feeMultiplier as uint256)) / (user.base as uint256)) as uint256;
const inAssetAfterFee = (inAssetInBaseScale * feesMultiplier) / s;
2. Protokolové Poplatky Biatec
Definícia: Percento z LP poplatkov, ktoré protokol vyberá na prevádzkovú udržateľnosť.
Konfigurácia:
- Nastavuje sa globálne v kontrakte
BiatecConfigProvider - Aktuálna sadzba: 20 % z LP poplatkov
- Maximum: 50 % z LP poplatkov, Minimum: 0 % z LP poplatkov (vynútené kontraktom)
- Uložené ako
biatecFeev konfiguračnom kontrakte - Príklad: 10 % z LP poplatkov =
100_000_000(0.1 * 10^9)
Distribúcia: Keď sú Biatec poplatky povolené, vyzbierané poplatky sa rozdeľujú medzi používateľov a protokol:
if (biatecFee === 0n) {
const usersLiquidityFromFeeIncrement = diff;
this.LiquidityUsersFromFees.value = this.LiquidityUsersFromFees.value + usersLiquidityFromFeeIncrement;
} else {
const usersLiquidityFromFeeIncrement = (diff * (s - biatecFee)) / s;
const biatecLiquidityFromFeeIncrement = diff - usersLiquidityFromFeeIncrement;
this.LiquidityUsersFromFees.value = this.LiquidityUsersFromFees.value + usersLiquidityFromFeeIncrement;
this.LiquidityBiatecFromFees.value = this.LiquidityBiatecFromFees.value + biatecLiquidityFromFeeIncrement;
}
3. Používateľské Násobitele Poplatkov
Definícia: Zľavy alebo prirážky na poplatkoch na základe úrovne overenia identity používateľa a jeho aktivity.
Konfigurácia:
- Určené verifikačnou triedou identity a úrovňou aktivity používateľa
- Rozsah: 1.0 až 2.0 (násobiteľ aplikovaný na základné LP poplatky)
- Základný násobiteľ: 2.0 (anonymní používatelia platia 2x základný LP poplatok)
- Overení používatelia môžu získať zľavy až na 1.0x (bez prirážky)
- Aplikuje sa ako násobiteľ na základné LP poplatky
Určenie na základe aktivity:
- Anonymní používatelia: 2.0x násobiteľ (dvojnásobné poplatky)
- Overený Basic: 1.5x násobiteľ (50 % prirážka)
- Overený Advanced: 1.2x násobiteľ (20 % prirážka)
- Overený Premium: 1.0x násobiteľ (bez prirážky)
Zdroj: Získavané z kontraktu BiatecIdentityProvider počas swap operácií.
Proces Zberu Poplatkov
Počas Swapov
- Vstupná Suma: Používateľ odošle tokeny na swap
- Odpočítanie Poplatku: LP poplatky sa odpočítajú zo vstupnej sumy
- Používateľský Násobiteľ: Aplikuje sa násobiteľ poplatkov podľa identity
- Výpočet Swapu: Výstupná suma sa vypočíta z upraveného vstupu
- Aktualizácia Likvidity: Likvidita poolu sa zvýši o sumu poplatku
- Distribúcia Poplatku: Poplatky sa rozdelia medzi používateľov a Biatec (ak je nakonfigurované)
Účtovanie Poplatkov
Poplatky sa evidujú v stave poolu ako dodatočná likvidita:
LiquidityUsersFromFees: Poplatky patriace poskytovateľom likvidityLiquidityBiatecFromFees: Poplatky vyzbierané protokolom
Tieto hodnoty predstavujú nerealizovanú poplatkovú likviditu, ktorá zvyšuje hodnotu LP tokenov.
Výber Poplatkov
Pre Poskytovateľov Likvidity
LP poplatky sú automaticky zahrnuté pri výbere likvidity. Výpočet výberu zohľadňuje narastanie poplatkov:
// Výpočet výberu upravený o poplatky
const percentageOfL = (lpAmount * s) / totalLpSupply;
const assetAOut = (assetABalance * percentageOfL) / s;
const assetBOut = (assetBBalance * percentageOfL) / s;
Pre Protokolové Poplatky
Protokolové poplatky môže vybrať určená výkonná adresa poplatkov (addressExecutiveFee) pomocou metód removeLiquidityAdmin, distributeExcessAssets alebo withdrawExcessAssets.
Mechanizmy Ochrany Poplatkov
Ochrana Pred Novými LP
Aby sa zabránilo novým poskytovateľom likvidity nárokovať si historické poplatky, protokol pri mintovaní LP tokenov diskontuje prírastok likvidity existujúcim pomerom poplatkov a rozdiel pripisuje do LiquidityUsersFromFees:
X = delta * distributedLp / (distributedLp + LiquidityUsersFromFees)
Tým sa zaručuje, že noví LP nemôžu okamžite vybrať historické poplatky, ktoré patria existujúcim poskytovateľom (pozri Ochrana likviditných poplatkov a Agregácia poplatkov viacerých strán).
Správanie Zaokrúhľovania
- Výpočty LP tokenov používajú zaokrúhľovanie nadol (flooring) v prospech existujúcich poskytovateľov likvidity
- Malé rozdiely zo zaokrúhľovania zostávajú v poole
- Výbery môžu vrátiť o niekoľko základných jednotiek menej ako vklad kvôli ochrane poplatkov
Príklady Poplatkov
Príklad 1: 1 % LP Poplatok, Bez Biatec Poplatku
Vstup swapu: 100 USDC
LP poplatok: 1 % = 1 USDC
Efektívny vstup: 99 USDC
Výstup: Vypočítaný na základe 99 USDC
Poplatok pridaný do poolu: likvidita v hodnote 1 USDC
Distribúcia: 100 % pre poskytovateľov likvidity
Príklad 2: 1 % LP Poplatok, 20 % Biatec Poplatok
Vstup swapu: 100 USDC
LP poplatok: 1 % = 1 USDC
Biatec poplatok: 20 % z LP poplatku = 0.2 USDC
Používateľský poplatok: 80 % z LP poplatku = 0.8 USDC
Efektívny vstup: 99 USDC
Výstup: Vypočítaný na základe 99 USDC
Distribúcia: 0.8 USDC pre LP, 0.2 USDC pre protokol