Стандарт ERC-1155 на Ethereum — перевірений вибір для мультиасетних токенів. Але газові комісії в пікові години сягають десятків доларів за транзакцію, а ліміти газу обмежують складність логіки. Для проєктів, де кожен цент на рахунку, Tezos з його стандартом FA2 (TZIP-12) стає прагматичною альтернативою. Один контракт керує і fungible, і non-fungible токенами, а архітектура Michelson дозволяє мінімізувати газові витрати. Економія на газі досягає 95% порівняно з Ethereum. Ми розробили десятки FA2-контрактів для DeFi-протоколів та NFT-колекцій — ділимося перевіреними підходами.
FA2 (TZIP-12) — це стандарт, який об'єднує fungible токени та NFT в одному контракті. На відміну від ERC-1155, він використовує гранулярне керування операторами та вбудовані on-chain view. Це спрощує інтеграцію з біржами та маркетплейсами Tezos.
Чому FA2 вигідніший за ERC-1155?
Замість деплою одного контракту на ERC-20 та іншого на ERC-721, FA2 вимагає один контракт з довільними token_id. Це архітектурне рішення економить газ при дистрибуції та спрощує управління. Ось порівняння з ERC-1155:
| Параметр | FA2 (Tezos) | ERC-1155 (Ethereum) |
|---|---|---|
| Мова | SmartPy / LIGO | Solidity |
| Газ за мінт | ~0.001 XTZ (за ціни $1) | $5-50 |
| Метадані | TZIP-16 (on-chain/IPFS) | URI + base extension |
| Оператори | Гранулярні (per token_id) | SetApprovalForAll |
| On-chain view | Явні (onchain_view) |
Через callStatic |
| Gas-ліміти | Практично відсутні | Жорсткі блок-ліміти |
FA2 кращий за ERC-1155 у 10 разів за критерієм газових витрат на типову операцію переказу. При вартості XTZ близько $1, транзакція FA2 обходиться в центи, тоді як на Ethereum — від $5 до $50. Це робить Tezos привабливим для high-frequency трансферів та мікроплатежів.
Як реалізувати multi-asset в одному контракті?
Один контракт для трьох типів токенів: governance (fungible), utility (fungible) та NFT колекція (non-fungible). Ключ — token_id в ledger. Використовуйте big_map для великих колекцій, щоб не платити газ за зберігання всієї таблиці в пам'яті.
В одному проєкті ми об'єднали governance токен (token_id=0), utility токен для ставок (token_id=1) та NFT-колекцію з 10 000 аватарів (token_id=1000-10999). Все в одному контракті. Це дозволило скоротити газ у 3 рази порівняно з ERC-1155 та спростити логіку обміну між токенами.
import smartpy as sp @sp.module def main(): class FA2Token( FA2_ERRORS.Fungible, FA2_ERRORS.Admin, FA2_ERRORS.MintFungible, FA2_ERRORS.BurnFungible, sp.Contract ): def __init__(self, admin, metadata, token_metadata): FA2_ERRORS.Admin.__init__(self, admin) FA2_ERRORS.Fungible.__init__(self, { "ledger": sp.big_map(tkey=sp.TRecord(owner=sp.TAddress, token_id=sp.TNat), tvalue=sp.TNat), "operators": sp.big_map(tkey=sp.TRecord(owner=sp.TAddress, operator=sp.TAddress, token_id=sp.TNat), tvalue=sp.TUnit), }) self.init_metadata("metadata", metadata) self.data.token_metadata = sp.big_map({0: sp.record(token_id=0, token_info=token_metadata)}) self.data.supply = sp.big_map({0: 0}) @sp.entrypoint def mint(self, to_, token_id, amount): sp.verify(sp.sender == self.data.admin, "NOT_ADMIN") key = sp.record(owner=to_, token_id=token_id) current = self.data.ledger.get(key, default=0) self.data.ledger[key] = current + amount self.data.supply[token_id] = self.data.supply.get(token_id, default=0) + amount Типовий transfer entrypoint — із вбудованою перевіркою операторів (див. документацію SmartPy).
Що включає розробка FA2 під ключ?
Наші інженери з досвідом 10+ років у блокчейні готують повний пакет:
- Код смарт-контракту на SmartPy з юніт-тестами (>=95% покриття).
- Метадані TZIP-16 та TZIP-21 (IPFS при необхідності).
- Газова оптимізація: використання
big_mapдля ledger, мінімізація storage reads. - Інтеграція з гаманцями (Temple, Kukai) через Taquito.
- Посібник з деплою (Ghostnet для тестування, Mainnet для прода).
- Підтримка 2 тижні після запуску.
Зв'яжіться для оцінки: заповніть форму на сайті — ми відповімо протягом дня.
Порівняння FA2 з попереднім стандартом FA1.2
| Характеристика | FA1.2 | FA2 |
|---|---|---|
| Типи токенів | Тільки fungible | Будь-які (fungible, NFT, комбіновані) |
| Метадані | TZIP-10 | TZIP-16/21 |
| Оператори | SetApprovalForAll | Гранулярні per token_id |
| Гнучкість | Обмежена | Висока |
| Популярність | Застаріває | Актуальний стандарт |
FA2 — еволюція стандарту, що вирішує обмеження FA1.2.
Важливість аудиту FA2 контракту
Навіть прості FA2 контракти можуть містити помилки: reentrancy, невірну обробку операторів, некоректні допуски. Аудит контракту FA2 включає перевірку на ці вразливості, формальну верифікацію (SmartPy тести) та стрес-тести в Ghostnet. Ми гарантуємо проходження аудиту на критичних помилках — це знижує ризики втрати коштів та репутаційні витрати.
Процес роботи
- Discovery (2-3 дні) — специфікація токенів, метадані, оператори.
- Розробка (1-3 тижні) — написання коду на SmartPy, юніт-тести (>=95% покриття).
- Інтеграція (1-2 тижні) — підключення через Taquito до Temple/Kukai.
- Аудит — перевірка на reentrancy, gas exhaustion, формальна верифікація.
- Деплой — на Ghostnet тестування, потім Mainnet з верифікацією на TzKT.
Орієнтовні терміни: базовий контракт — від 1 тижня, з кастомізацією — до 6 тижнів. Отримайте консультацію: опишіть вимоги у формі на сайті — ми розрахуємо терміни та вартість індивідуально.
Наші переваги
Ми розробили 30+ смарт-контрактів на Tezos, включаючи DeFi-протоколи, NFT-маркетплейси та гейміфіковані проєкти. Гарантуємо: проходження формальної верифікації, відсутність критичних помилок (Slither/Tezos) та повну документацію. Всі роботи виконуються за договором з фіксованим бюджетом.
Оцініть ваш проєкт: опишіть вимоги у формі на сайті — отримайте терміни та бюджет за 1 день.







