Kas yra ERC-20
- ERC-20 (EIP-20) standartas sukurtas 2015 m. lapkričio 19 d. ir turi galutinio standarto statusą; jis apibrėžia funkcijas totalSupply, balanceOf, transfer, transferFrom, approve, allowance ir įvykius Transfer bei Approval.
- USDC ir USDT sutartys Ethereum tinkle 2026 m. spalio 13 d. grąžino decimals reikšmę 6, todėl 1 USDC sutartyje yra 1 000 000 mažiausių vienetų; dauguma kitų žetonų naudoja 18.
- 2026 m. spalio 13 d. 56 USDC ir USDT pervedimai Ethereum tinkle sunaudojo 40 348–63 209 gas vienetų, mediana apie 45 600.
- Esant 1 gwei gas kainai ir ETH kainai 2 253,69 €, didžiausias išmatuotas ERC-20 pervedimas (63 209 gas) kainuoja apie 0,14 €, o esant 20 gwei – apie 2,85 €.
- ERC-20 žetono tinklo mokestis mokamas ne pačiu žetonu, o tinklo moneta – Ethereum tinkle ETH.
- Ethereum blokas sukuriamas kas 12 sekundžių, o operacija tampa galutinė po dviejų epochų, maždaug po 12,8 minutės.
ERC-20 išsamiai
ERC-20 – tai taisyklių rinkinys, kurį turi įgyvendinti išmanioji sutartis, kad ją kaip žetoną vienodai suprastų visos piniginės, biržos ir programėlės. Standartas vadinamas pagal Ethereum pasiūlymo numerį (angl. Ethereum Request for Comments 20), sukurtas 2015 m. lapkričio 19 d. ir turi galutinio (angl. Final) standarto statusą. Dauguma stabiliųjų monetų, valdymo žetonų ir projektų žetonų Ethereum tinkle yra ERC-20.
Verslui ERC-20 svarbus dėl paprastos priežasties: kai pirkėjas sako „moku USDT“ ar „moku USDC“, jis beveik visada turi omenyje konkretų ERC-20 žetoną konkrečiame tinkle. Kad mokėjimas būtų priimtas be klaidų, reikia žinoti, kaip žetonas veikia, kas moka tinklo mokestį ir kaip atskirti tikrą žetoną nuo padirbto.
Kas yra ERC-20 žetonas paprastai
ERC-20 žetonas yra ne atskira kriptovaliuta su savo blokų grandine, o įrašų lentelė išmaniojoje sutartyje. Sutartis saugo, kiek žetonų turi kiekvienas adresas, ir leidžia juos perduoti. Pervedimas yra sutarties funkcijos iškvietimas: jūsų kripto piniginė pasirašo operaciją „sutartie, perkelk 80 vienetų iš mano adreso į šį adresą“, tinklas ją įvykdo ir sutartis atnaujina abu balansus.
Iš to kyla esminis skirtumas nuo tinklo monetos (Ethereum atveju – ETH). Tinklo mokestis (gas) visada mokamas tinklo moneta, todėl norint išsiųsti USDT ar USDC Ethereum tinkle, piniginėje turi būti ir šiek tiek ETH. Pirkėjai, turintys tik USDT, dažnai negali sumokėti būtent dėl šios priežasties.
ERC-20 funkcijos ir įvykiai
Standartas apibrėžia šešias privalomas funkcijas, du įvykius ir tris neprivalomas funkcijas, kurias vis dėlto įgyvendina beveik visi žetonai.
| Funkcija ar įvykis | Ką daro | Kada svarbu verslui |
|---|---|---|
| totalSupply | Grąžina bendrą žetonų kiekį | Tikrinant, kiek žetonų išleista |
| balanceOf | Grąžina adreso likutį | Tikrinant, ar mokėjimas gautas |
| transfer | Perveda žetonus iš siuntėjo adreso | Įprastas pirkėjo mokėjimas |
| approve | Leidžia kitam adresui nurašyti iki nurodytos sumos | Mokėjimų sutartys, prenumeratos, DeFi |
| allowance | Grąžina likusį leidimą | Tikrinant, kam esate davę leidimus |
| transferFrom | Nurašo žetonus pagal leidimą | Kai sutartis nurašo mokėjimą pati |
| Transfer (įvykis) | Žurnale fiksuoja kiekvieną pervedimą, net 0 vertės | Mokėjimų stebėjimas ir apskaita |
| Approval (įvykis) | Fiksuoja kiekvieną leidimą | Saugumo auditas |
| name, symbol, decimals | Pavadinimas, simbolis, dešimtainių vietų skaičius (neprivaloma) | Teisingas sumų rodymas |
Standartas reikalauja, kad iškvietėjai apdorotų atvejį, kai funkcija grąžina „false“. Kai kurios senesnės sutartys, įskaitant USDT Ethereum tinkle, reikšmės iš viso negrąžina, todėl rimtos integracijos naudoja patikrintas bibliotekas, kurios abu atvejus apdoroja saugiai.
Dešimtainės vietos: kodėl 80 USDC yra 80 000 000
Sutartys nesaugo trupmenų – visos sumos laikomos sveikais skaičiais mažiausiais vienetais. Lauke decimals nurodoma, kiek skaitmenų yra po kablelio. Daugumos žetonų reikšmė 18, bet 2026 m. spalio 13 d. tiesiogiai patikrinome Ethereum tinkle: USDC ir USDT sutartys grąžina 6. Vadinasi, 80 USDC sutartyje yra 80 000 000 vienetų, o 80 žetonų su 18 dešimtainių vietų – 80 su 18 nulių. Programuojant mokėjimo sumą klaida dėl dešimtainių vietų reiškia milijoną kartų per mažą ar per didelę sąskaitą, todėl ji tikrinama kiekvienam žetonui atskirai.
USDT ERC-20, TRC-20 ir kiti tinklai
Tas pats emitentas savo stabiliąją monetą dažnai išleidžia keliuose tinkluose. „USDT ERC-20“ reiškia USDT Ethereum tinkle, „TRC-20“ – Tron tinkle, o USDT TON tinkle išleidžiamas pagal TON žetonų standartą. Su Ethereum suderinami tinklai – Polygon, Arbitrum, Base, BNB Smart Chain – naudoja tą pačią ERC-20 sąsają, nors BNB Smart Chain žetonus kartais vadina BEP-20. Tai skirtingi žetonai su skirtingais sutarčių adresais: USDC Polygon tinkle nėra tas pats objektas kaip USDC Ethereum tinkle, ir pervedimas iš vieno tinklo į kitą tiesiogiai neįmanomas – reikia tilto (angl. bridge) arba keitimo per CASP.
| Tinklas | Žetonų standartas | Tinklo moneta mokesčiams | Adreso pavidalas |
|---|---|---|---|
| Ethereum | ERC-20 | ETH | 0x… (42 simboliai) |
| Polygon, Arbitrum, Base | ERC-20 (ta pati sąsaja) | POL, ETH | 0x… |
| BNB Smart Chain | BEP-20 (ERC-20 suderinamas) | BNB | 0x… |
| Tron | TRC-20 | TRX | T… |
| TON | Jetton (TEP-74) | GRAM (buv. Toncoin) | UQ… arba EQ… |
Kiek kainuoja ERC-20 pervedimas
Mokestis = sunaudotas gas × gas kaina. 2026 m. spalio 13 d. išanalizavome 56 naujausius USDC ir USDT pervedimus Ethereum tinkle: jie sunaudojo nuo 40 348 iki 63 209 gas vienetų, mediana – apie 45 600. Didžiausias kiekis buvo tada, kai gavėjo likutis prieš pervedimą buvo nulinis – sutarčiai reikia sukurti naują saugyklos įrašą. Bazinis mokestis tą dieną buvo apie 0,063 gwei, o daugumoje operacijų bendra kaina su arbatpinigiais validatoriui siekė iki 2,06 gwei. Esant 1 gwei ir ETH kainai 2 253,69 €, 63 209 gas pervedimas kainuoja apie 0,14 €. Tinklo apkrovai išaugus kelis kartus, kaina proporcingai didėja, todėl mažiems mokėjimams verta siūlyti ir pigesnį tinklą.
Leidimai (approve): naudingi ir pavojingi
Funkcija approve leidžia kitai sutarčiai nurašyti jūsų žetonus. Taip veikia decentralizuotos biržos, prenumeratos ir kai kurie mokėjimų protokolai: vieną kartą duodate leidimą, o sutartis vėliau pati iškviečia transferFrom. Problema – daugelis programėlių prašo neriboto leidimo. Jei tokia sutartis vėliau įsilaužiama arba buvo sukčių, ji gali nurašyti visą to žetono likutį be jokio papildomo jūsų patvirtinimo. Patartina duoti tik reikiamos sumos leidimą ir periodiškai atšaukti nebereikalingus (nustatant leidimą 0). Patobulinimas EIP-2612 (permit) leidžia leidimą pasirašyti be atskiros operacijos, bet tuo pačiu sukčiai naudoja netikrus „prisijungimo“ parašus, kurie iš tikrųjų yra leidimai.
Kaip atpažinti tikrą ERC-20 žetoną
Žetono pavadinimą ir simbolį gali pasirinkti bet kas: Ethereum tinkle yra daugybė sutarčių, kurios vadinasi „USDT“ ar „USDC“. Tikrą žetoną atpažinsite tik pagal sutarties adresą, paskelbtą emitento svetainėje. USDC Ethereum tinkle – 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, USDT – 0xdAC17F958D2ee523a2206206994597C13D831ec7. Mokėjimų sistema turi tikrinti sutarties adresą, ne simbolį. Kita dažna schema – „adreso nuodijimas“: sukčius nusiunčia 0 vertės pervedimą iš adreso, kurio pradžia ir pabaiga sutampa su jūsų tikro partnerio adresu, tikėdamasis, kad kitą kartą nukopijuosite adresą iš istorijos.
Kaip el. parduotuvė priima ERC-20 mokėjimą
- Sistema kiekvienam užsakymui sukuria unikalų gavimo adresą arba unikalią sumą, kad mokėjimą būtų galima susieti su užsakymu.
- Pirkėjui parodoma suma žetonais, tinklas ir adresas (dažnai QR kodu); kursas fiksuojamas ribotam laikui, pvz., 15 minučių.
- Serveris stebi tinklą ir ieško Transfer įvykio į tą adresą, patikrindamas sutarties adresą ir sumą.
- Užsakymas pažymimas apmokėtu po pasirinkto patvirtinimų skaičiaus. Ethereum blokas sukuriamas kas 12 sekundžių, o galutinumas (angl. finality) pasiekiamas po dviejų epochų – maždaug 12,8 minutės.
- Lėšos pagal tvarką perkeliamos į atsargų piniginę arba keičiamos į eurus per licencijuotą CASP.
Jei nenorite to daryti patys, šiuos žingsnius atlieka mokėjimų tarpininkas – žr. kripto mokėjimų priėmimo įrašą.
ERC-20 ir MiCA: ar žetono išleidimui reikia leidimo
Techninis standartas nieko nesako apie teisinį statusą. Pagal MiCA ERC-20 žetonas gali būti elektroninių pinigų žetonas (pvz., USDC ir EURC, susieti su viena valiuta, žr. stabilioji moneta), su turtu susietas žetonas arba „kitas kriptoturtas“. Viešai siūlant „kitą kriptoturtą“ ES, reikia baltosios knygos, nebent taikoma išimtis, pvz., pasiūlymas mažiau nei 150 asmenų vienoje valstybėje narėje ar iki 1 000 000 € per 12 mėnesių. Elektroninių pinigų žetonus gali leisti tik kredito ar elektroninių pinigų įstaigos. Lojalumo taškai, kurių negalima perleisti, kriptoturtu nelaikomi.
Pavyzdys: 80 € užsakymas apmokamas USDC – sumos, vienetai ir tinklo mokestis
Prielaidos (2026 m. spalio 13 d. duomenys): 1 USDC = 0,8947 € (CoinGecko), ETH = 2 253,69 €, USDC Ethereum tinkle turi 6 dešimtaines vietas. Pervedimas į naują gavimo adresą sunaudoja 63 209 gas. Polygon tinkle USDC pervedimas kainuoja apie 0,002 €.
| Žingsnis | Skaičiavimas | Rezultatas |
|---|---|---|
| Užsakymo suma USDC | 80 € ÷ 0,8947 € | 89,41 USDC |
| Suma sutarties vienetais | 89,41 × 1 000 000 | 89 410 000 |
| Tinklo mokestis Ethereum, 1 gwei | 63 209 × 1 gwei = 0,000063209 ETH × 2 253,69 € | 0,14 € |
| Tinklo mokestis Ethereum, 20 gwei | 63 209 × 20 gwei = 0,00126418 ETH × 2 253,69 € | 2,85 € |
| Tinklo mokestis Polygon | matavimas | apie 0,002 € |
| Mokestis kaip užsakymo dalis, Ethereum 20 gwei | 2,85 € ÷ 80 € | 3,6 % |
Išvada: ramiu metu Ethereum mokestis 80 € užsakymui nereikšmingas (0,18 %), bet apkrovos metu gali viršyti kortelės mokestį. Kadangi mokestį moka pirkėjas, verta siūlyti du tinklus – Ethereum ir pigesnį su EVM suderinamą tinklą – ir aiškiai pažymėti, kuriuo tinklu siunčiama.
Dažniausios klaidos
- Tikrinti mokėjimą pagal žetono simbolį, o ne sutarties adresą. Netikrų „USDT“ ir „USDC“ sutarčių yra tūkstančiai.
- Neįvertinti dešimtainių vietų: USDC ir USDT turi 6, dauguma kitų žetonų – 18. Klaida reiškia milijoną kartų netikslią sumą.
- Nurodyti tik „USDT“ be tinklo. Pirkėjas gali išsiųsti Tron ar TON tinklu, o jūsų sistema stebi tik Ethereum.
- Duoti neribotą leidimą (approve) nepažįstamai sutarčiai. Ji gali bet kada nurašyti visą to žetono likutį.
- Kopijuoti adresą iš operacijų istorijos. Adreso nuodijimo schemoje sukčius įterpia į istoriją panašų adresą.
- Pažymėti užsakymą apmokėtu iškart pamačius operaciją tinklo eilėje. Laukite bent įtraukimo į bloką, didesnėms sumoms – galutinumo.
ERC-20 Lietuvoje
Lietuvoje ERC-20 žetonų priėmimas mokėjimui nėra atskirai licencijuojamas – įmonė gauna apmokėjimą už savo prekes. Licencijos reikia, jei įmonė pati keičia klientų žetonus į eurus, saugo juos klientų vardu ar perveda kitiems, t. y. teikia MiCA kriptoturto paslaugas. Lietuvos banko licencijuotų CASP yra šeši (ESMA registras, atsisiųsta 2026-10-13), iš jų keitimo į lėšas paslaugą turi UAB Decentralized (CoinGate), Nuvei Liquidity UAB (Simplex) ir UAB Micar assets.
Elektroninių pinigų žetonų baltąsias knygas ESMA registre iš Lietuvos turi UAB BLUE EMI LT ir Newrails, UAB. Jei Lietuvos įmonė planuoja išleisti savo ERC-20 žetoną bendruomenei ar lojalumo programai, pirmiausia reikia įvertinti, ar jis apskritai yra kriptoturtas, ar taikoma baltosios knygos išimtis, ir tik tada rašyti sutartį. Apskaitos ir mokesčių klausimais – VMI paaiškinimai ir apskaitos žinynas.
Susiję terminai
- Įdiegiame ERC-20 mokėjimų stebėjimą pagal sutarties adresą, sumą ir patvirtinimų skaičių, susietą su užsakymų sistema.
- Parenkame tinklus, kuriuose pirkėjams siūlyti USDC ar EURC, ir aiškiai pateikiame juos apmokėjimo puslapyje.
- Peržiūrime išmaniųjų sutarčių leidimų srautą (approve, permit), kad pirkėjas duotų tik reikiamos sumos leidimą.
- Prijungiame licencijuotą tarpininką, jei ERC-20 mokėjimus norite gauti eurais.
Dažni klausimai
Kas yra ERC-20?
ERC-20 – Ethereum žetonų standartas, nustatantis, kokias funkcijas ir įvykius turi turėti išmanioji sutartis, kad ją kaip žetoną suprastų visos piniginės ir biržos. Pagal jį veikia USDC, USDT ir dauguma kitų Ethereum žetonų.
Kas yra USDT ERC-20?
Tai USDT stabilioji moneta, išleista Ethereum tinkle kaip ERC-20 žetonas. Ją siųsti galima tik į Ethereum adresą, o tinklo mokestis mokamas ETH.
Kuo skiriasi ERC-20 ir TRC-20?
ERC-20 žetonai veikia Ethereum tinkle, TRC-20 – Tron tinkle. Tai skirtingi tinklai su skirtingais adresais ir mokesčiais, todėl USDT TRC-20 negalima tiesiogiai išsiųsti į Ethereum adresą.
Kodėl negaliu išsiųsti USDT, nors jų turiu?
Dažniausiai trūksta tinklo monetos mokesčiui sumokėti. Ethereum tinkle ERC-20 pervedimui reikia ETH, Polygon – POL, Tron – TRX.
Kiek kainuoja ERC-20 pervedimas?
2026 m. spalio 13 d. ERC-20 pervedimas Ethereum tinkle sunaudojo 40 348–63 209 gas. Esant 1 gwei kainai tai apie 0,14 €, esant 20 gwei – apie 2,85 €. Kaina priklauso nuo tinklo apkrovos.
Ar ERC-20 adresas tas pats kaip Ethereum adresas?
Taip. ERC-20 žetonai gaunami į tą patį 0x… Ethereum adresą. Tas pats adresas veikia ir Polygon, Arbitrum ar Base tinkluose, bet ten tai skirtingi žetonai.
Kaip atšaukti ERC-20 leidimą?
Pasirašykite naują approve operaciją tai pačiai sutarčiai su suma 0. Daugelis piniginių ir blokų naršyklių turi leidimų peržiūros įrankį, kuris tai padaro vienu veiksmu; operacija kainuoja įprastą tinklo mokestį.
Ar išleisti savo ERC-20 žetoną legalu Lietuvoje?
Taip, bet viešai siūlant jį ES taikomas MiCA: dažniausiai reikia baltosios knygos, o elektroninių pinigų žetonus gali leisti tik licencijuotos įstaigos. Lojalumo taškai, kurių negalima perleisti, kriptoturtu nelaikomi.
Šaltiniai
- ERC-20: Token Standard – Ethereum Improvement Proposals
- ERC-2612: Permit Extension for EIP-20 Signed Approvals – Ethereum Improvement Proposals
- Gas and fees – ethereum.org
- Proof-of-stake (PoS) – ethereum.org
- USDC token contract (Ethereum) – Etherscan
- USDT token contract (Ethereum) – Etherscan
- Reglamentas (ES) 2023/1114 dėl kriptoturto rinkų – EUR-Lex
- Interim MiCA register – CASPS.csv – ESMA
- Global cryptocurrency market data API – CoinGecko