Сервис доступен по адресу https://vk.com/app51712830.
Сделать пробный сервис для проведения розыгрышей, раздач, лотерей с помощью блокчейна Siberium на базе VK mini apps.
Проблема: в крупных розыгрышах от игроков требуется доверие к организаторам для проверки результатов и честного распределения шансов среди всех участников. С помощью блокчейна и смарт-контрактов каждый сможет проверить на какой адрес и когда поступил тот или иной билет, а за счет идентификации в ВК определить и конкретного человека. Также с помощью генерации псевдослучайных чисел в смарт-контракте удостовериться, что выигрышный билет выбран действительно случайно. И при желании гарантированно получить выигрыш в токенах сети через смарт-контракт.
В рамках данного проекта были допущения:
- используется один адрес смарт контракта токена ERC-721 с одним владельцем
- каждый пользователей VK может получить один билет на любой адрес в сети Siberium
- функциональность сведена к минимуму - минту и просмотру NFT по адресу
- функциональность для организатора отсутствует
- генерация случайных чисел с выбором победителя и выплата призов производится вовне.
В теории организатор приходит в сервис с желанием провести розыгрыш, выбирает нужные параметры: количество билетов, сроки проведения, призы, требования к участникам и прочее. Организатору предаставляются уникальные коды для минтинга NFT в сервисы, которые он затем раздает участникам. Которые в свою очередь авторизируясь через сервис получают NFT билеты на свои кошельки. К окончанию проведения происходит снапшот кошельков, выбор победителя и раздача призов.
solidity 0.8.19, openzeppelin, ipfs
python 3.10 - Flask, Web3, Sqlite
react, vkontakte/vkui
Потенциально любые физлица, компании, которые проводят розыгрыши своей продукции в социальных сетях, как например "баллы от Магнита за вступление в группу Вк", могут использовать сервис и платить отчисления за проведение розыгрышей.
Ivan Agafonov - developer - github - telegram
Для блокчейна.
- Опубликовать смарт-контракт data/LotteryNFT.sol в сети.
Для backend.
- Заполнить data/config.ini.
- Выполнить
flask run
илиpython app.py
.
Для frontend.
npm start
.