Разработчикам приложений и игр необходим протокол для работы с собственными токенами, выпускаемые на проверяемом слое поверх VIZ.
Предлагаю рассмотреть протокол Gems как базовый механизм для токенов, как делимых (fungible), так и неделимых (not-fungible).
Gems — адаптивные токены на блокчейне VIZ
В прошлой публикации я затронул вопрос NFT на VIZ, после чего в публичном чате и в приватных были вопросы: «а как же обычные токены?». На самом деле базовые возможности не сильно отличаются для обоих видов токенов.
Базовые свойства Gems
- Fungible — делимый ли токен (boolean);
- Owner — аккаунт, провайдер токена (account);
- Transferable — возможность передавать токен (boolean);
- Trustline — необходимость оказать доверие провайдеру токена, чтобы владеть им (boolean);
- Agreement — ссылка на соглашение по использованию токена (string);
- Tradable — возможность открывать сделку для обмена токена на VIZ (boolean);
- Limit transfer — возможность лимитировать передачу токена для отдельного аккаунта (boolean);
- Limit trade — возможность лимитировать обмен токена (boolean);
- Removable — возможность провайдеру токенов изымать их у текущего владельца, аналог удаления (boolean).
Fungible Gems — Свойства делимых токенов
- Name — название токена (string);
- Description — описание токена, назначение (string);
- Icon — ссылка на иконку токена (string);
- Precision — точность (количество знаков после запятой, минимум: 0, максимум: 8);
- Max supply — максимальный объем, 0 — без ограничений (integer);
- Issuable — возможность провайдеру выпускать актив (boolean);
- Collateral — требование по обеспечению актива через залог VIZ комитету (boolean);
- Collateral issuable — возможность выпускать актив любому участнику под залог VIZ комитету (boolean);
- Collateral ratio — соотношение токена по обеспечению в процентах (integer).
Not-Fungible Gems — Свойства неделимых токенов NFT
- Category — категория токена (string);
- Name — название токена (string);
- Icon — ссылка на иконку токена, опциональное (string);
- Image — ссылка на изображение токена, опциональное (string);
- Data location — ссылка на JSON параметры токена, опционально если провайдер хочет контролировать параметры актива централизованно (string);
- Data — JSON параметры токена, необходим при отсутствии data location (array);
- Durability — количество секунд действия токена, по умолчанию 0 — не разрушается (integer);
- Limit — максимальное количество токенов данного типа, по умолчанию 0 (integer);
- Count — количество выпущенных токенов данного типа, используется для нумерации каждого токена (integer);
- Collateral — требование по обеспечению актива через залог VIZ комитету (boolean);
- Collateral issuable — возможность выпускать актив любому участнику под залог VIZ комитету (boolean);
- Collateral amount — количество VIZ необходимых для выпуска актива, число без точности (integer).
Операции для работы с токенами VIZ Gems
Протокол Gems (для минимизации будет использоваться название G) можно построить на custom операции, используя методы:
- Create — создание актива с указанием необходимых параметров в ассоциативном массиве;
- Issue — выпуск нового актива (с указанием названия актива, количества и получателя);
- Trustline — акт доверия провайдеру с названием актива;
- Transfer — передача актива другому аккаунту с указанием провайдера актива, наименования, количества (дополнительно категорию в случае передачи NFT Gems);
- Trade — заявка на обмен конкретному аккаунту с указанием провайдера, наименование актива, количество, цена в VIZ (отложенная операция, обработка необратимых блоков);
- Cancel trade — отмена сделки (отложенная операция, обработка необратимых блоков, приоритет у transfer операций для учета совершенных сделок в том же блоке);
- Transfer ownership — передача владения актива другому аккаунту, смена провайдера (заявка);
- Accept ownership — получение под управление актив от другого аккаунта (подтверждение);
- Remove — изъятие актива у аккаунта по названию актива, количеству и цели;
Для того, чтобы была возможна торговля активами Оракулу необходимо обеспечить отложенную обработку методов trade и cancel trade после учета операций transfer. Это позволит исключить конфликтную ситуацию, когда актив приобретается в том же блоке, где содержится отмена сделки.
Оракулу для создания базы учета VIZ Gems необходимо будет обрабатывать операции custom (для внутренних методов) и transfer (для учета обмена актива на VIZ и выпуску актива с переводом залога VIZ комитету).
Залоговые актива — опциональны. Комитет в данном случае выступает в роли доверенного лица на случай прекращения хождения актива.
Буду рад комментариям и обсуждению по предложенному протоколу VIZ Gems. Запуск и обслуживание данного протокола даст возможность инфраструктурного роста для всей экосистемы проектов запускаемых на VIZ.