Пламенный хабропривет! Это лонгрид от двух Иванов из VK: Ивана Расторгуева, который знает всё про платформу VK Mini Apps, и Ивана Бойченко, который развивает направление NFT ВКонтакте. Недавно мы провели первый собственный Web3 онлайн-хакатон VK NFT × Definition и хотим поделиться с вами его результатами и своими планами развития NFT-технологий в наших сервисах.  ВКонтакте развивает Web3-направление и планирует сделать NFT массовой технологией, которая будет доступна всем пользователям и авторам контента. Для её развития и масштабирования отлично подходит платформа VK Mini Apps, на которой можно реализовывать практически любые механики с использованием публичного API. На хакатон мы пригласили разработчиков попробовать свои силы в создании и развитии NFT-сервисов, решая реальные задачи от ВКонтакте. Результатами довольны и будем ещё проводить подобные мероприятия: чтобы больше участников смогли начать, развивать и монетизировать свои решения, а возможно — попасть в нашу команду и развивать NFT уже внутри соцсети. Мы как соцсеть стремимся к тому, чтобы NFT-технологии стали понятными и простыми в использовании и давали нашим пользователям новые возможности самовыражения и монетизации. Сейчас мы интегрируем NFT ВКонтакте с помощью платформы мини-приложений — это удобный способ добавить в соцсеть любое новое решение. Уже сейчас в приложении VK NFT пользователи могут отобразить токены в своём профиле — поставить NFT на аватар или выложить их на витрину. Можно посмотреть уникальные свойства токенов: автора, название коллекции, уровень редкости, адрес контракта. Это позволяет проверить подлинность изображения и убедиться, что оно действительно принадлежит автору, а не найдено им в интернете.  ВКонтакте планирует стать основной площадкой в России и СНГ, где можно развивать технологии NFT и предлагать любые нестандартные решения для пользователей. Именно поэтому мы и решили сформулировать часть задач, которые стоят перед нами на ближайшее время, и провести хакатон. На мероприятии талантливые разработчики решали реальные задачи по развитию внутренних инфраструктурных инициатив, связанных с интеграцией технологий NFT ВКонтакте. Мы предложили им интегрировать в соцсеть решения, связанные с цифровым искусством, коллекционированием, билетами, доступом к контенту и в сообщества, а также с благотворительностью. Самые удачные и близкие к рабочим проекты будут доработаны до готовых решений и идеи участников опробуют десятки тысяч людей, которыми будут пользоваться миллионы людей.  Это было первое собственное мероприятие для NFT-разработчиков от ВКонтакте — и оно сразу же стало самым масштабным Web3-событием России и СНГ. Мы получили 850 заявок на участие, а в финале наградили 12 самых интересных (по мнению жюри) проектов, у которых на руках были жизнеспособные MVP.  На хакатоне было три трека: два посвящены конкретным заданиям, а третий — на выбор участников:  Разработать мини-приложение ВКонтакте, в котором пользователь может создать контент с уникальным текстом, изображением, ссылкой — и закрыть доступ к нему через NFT. Другие люди, в свою очередь, смогут увидеть превью контента от пользователя А, но получить доступ к нему могут только те, кто добавлен автором контента в белый список. Разработать мини-приложение ВКонтакте, в котором один пользователь может создать NFT-билет, а другой — получить NFT и выполнить on-chain валидацию его наличия. Придумать, как Web3-технологии могли бы сделать платформу ещё интереснее и привлекательнее для пользователей.  И отдельно трех победителей наградила блокчейн-платформа Solana. Компания подготовила три гранта для лучших решений, которые команды разработали на этом блокчейне. Как это было, можно посмотреть в ролике: В победителях оказались такие крутые идеи, что мы убедились: хакатон провели не зря! Ниже — о проектах, которые субъективно больше остальных понравились двум Иванам, а все призовые места можно посмотреть здесь. В приложении можно выпустить NFT-билеты на любое событие: гаражную распродажу, кукольный спектакль, поставленный вашими детьми, концерт любимого исполнителя или групповую медитацию. NFT-билеты защищены от подделок и двойного использования, а также в них можно зашить бонусы для гостей мероприятия. Помимо этого, блокчейн — это про неотъемлемое право владения. Для примера — при помощи такого типа приложений пользователи могут управлять торговлей электронными билетами на вторичном рынке, программно установив комиссию 10% в пользу организатора мероприятия.  Также благодаря им организаторы получат удобные инструменты для аналитики продаж, а пользователи — открытость, если мы говорим про публичные блокчейны, в которых известна вся история транзакций. Это может дополнительно привлечь рекламодателей и представителей концертных площадок. Интерфейс приложения простой и понятный: С самого начала разработки команда ориентировалась на вводное руководство по разработке VK Mini Apps. Алгоритмически приложение раздаёт пользователям токены с помощью дерева Меркла. Ребята из Web9000 добавили так называемые метатранзакции — это позволяет не тратить газ и повышает удобство пользования блокчейном, не уводя пользовательский трафик на криптобиржу. За хостинг статичных данных отвечает платформа VK Mini Apps.  Особенности приложения: Создатель NFT в одно действие создаёт белый список, который основан на механике merkle airdrop. Поддерживаются многомиллиардные дропы. Пользователям не нужна криптовалюта, чтобы отправлять транзакции. Издержки перекладываются на сервис без ущерба безопасности и безотказности. При этом децентрализация сохраняется. Протокол поддерживает и обычные транзакции, напрямую с газом. Оптимизированы транзакционные комиссии (для сервиса). Выпускаемые коллекции билетов интегрируемы в другие NFT-площадки. Можно интегрировать в существующий DEFI, соблюдается принцип DEFI LEGO. Легко интегрировать механизм покупки NFT-билетов. On-chain верификация по QR может быть принята даже смарт-контрактом. Билет после прохода на событие не сжигается, его можно коллекционировать. On-chain защита от двойного использования билета без дополнительных транзакций. Гибкая настройка уровней доступа благодаря механике «у каждого токена свои метаданные». Какие технологии использовали для прототипа:  Hardhat и Solidity — для смарт-контрактов. Ethers.js и Web3 Wallet (Metamask) — для клиента на VK Mini Apps. Express, RocksDB и Ethers.js — API-сервис для хранения дерево Меркла данных и ретрансляции метатранзакций. Бэкенд с механикой merkle airdrop нечувствителен к взлому — даже если данные украдут, злонамеренно воспользоваться ими не получится. Однако нельзя допускать полной потери данных  с Merkle-деревьями, поэтому для защиты необходимо дополнительное хранилище данных с обязательным резервным копированием.  Web9000 подготовят к запуску в эксплуатацию всю написанную функциональность, доделают мелочи и создадут нормальный фронтенд с продуманным UI/UX. И в начале апреля планируют запустить первую версию MVP с билетами на пробные события. Благодаря приложению пользователи смогут превращать свои публикации ВКонтакте в NFT — например, старый, но ценный для них пост на стене, своё первое граффити или признание в любви. Получившиеся цифровые активы можно будет сохранить у себя на витрине или продать на маркетплейсе.  Благодаря специальной библиотеке от ВКонтакте — VK Bridge, приложение с разрешения пользователя получает информацию о нужных постах и предлагает сделать из них NFT.  Сноска: Библиотека VK Bridge представляет собой специальный метод, позволяющий приложениям использовать API ВКонтакте и API операционной системы, установленной на устройстве пользователя. Сначала выбираем свой кошелёк: Затем выбираем публикацию, генерируем токен и выкладываем на витрину: Сейчас приложение позволяет:  Заминтить NFT из своего поста. Посмотреть коллекцию NFT-постов, в том числе полученных от кого-то, во вкладке «Мои токены». Сделать трансфер поста в другой кошелёк — у пользователя ВКонтакте он отобразится во вкладке «Мои токены». Посмотреть витрину всех NFT-постов, сделанных через мини-приложение. «Сжечь» NFT, чтобы он больше не отображался в «Мои токены». В работе ребятам из PRIMATES Team помогли такие инструменты для разработчиков: Метод wall.get — возвращает список записей со стены пользователя или сообщества. Метод wall.getById — возвращает список записей со стен пользователей или сообществ по их идентификаторам. VKWebAppOpenWallPost — открывает в отдельном окне (поверх мини-приложения или игры) запись, опубликованную на стене пользователя или сообщества. В приложении ощущается небольшой избыток криптоспецифики, но она не мешает, а наоборот — дополняет впечатление от работы с NFT и открывает больше возможностей.  Решение этой команды помогает пользователю создать «цифровую личность» (Soulbound-токен), заминтить себе в NFT-кошелёк и использовать её как единый профиль на разных сайтах и сервисах. Но при этом управлять приватностью и безопасностью пользователь будет самостоятельно и централизованно.   Сноска: Soulbound-токены («связанные с душой токены», SBT) — это непередаваемые токены, представляющие личность человека при помощи технологии блокчейна. Они могут содержать информацию о здоровье, резюме и другие данные, характеризующие человека или организацию. Такие токены выпускаются и хранятся на кошельке под названием Soul («Душа»). У каждого человека может быть несколько таких кошельков, которые отражают разные сферы его жизни. Это что-то вроде аналога социальных кнопок «Войти с (какой-нибудь хайповый сервис)», только в NFT. В своё время социальные кнопки стали мощным драйвером роста для сервисов Web 2.0, а сегодня SBT играет подобную роль для Web3. Авторы также видят своё приложение ключом к любым блокчейн-сервисам: достаточно один раз авторизоваться через свой кошелёк, а потом спокойно взаимодействовать напрямую со смарт-контрактами.  Управление авторизацией в сторонних сервисах — не единственная функция приложения. В ней также можно: управлять подписками и их оплатой; применять систему достижений для отображения рейтинга специалистов и участников различных сообществ; взаимодействовать с DApp’ами (децентрализованными приложениями) вне ВКонтакте: голосования внутри сообществ, участие в митапах и получение рассылок с отчётами. В приложении нужно подключить свой кошелёк и заминтить токен. В нём содержатся on-chain данные (репутационные достижения) и off-chain данные (интеграции с различными сервисами). Этот токен можно подключить к своему аккаунту ВКонтакте, и другие пользователи увидят все ваши ачивки. Отдельно отметим грамотную и сбалансированную реализацию хранения данных on-chain и off-chain, что позволило команде быстро решить задачу и не застрять на полдороге к победе. И похвалы заслуживает качественно проработанный, интуитивно понятный интерфейс с ожидаемым поведением. За время хакатона при помощи ментора и открытой документации VKSOUL сделали MVP и сайт-пример с интеграцией решения. На сайте-примере можно авторизоваться через SBT и купить билет на концерт. Сейчас идёт работа над обновлением дизайна и смарт-контрактов, чтобы в скором времени выйти в продакшн с решением, поддерживающим сразу пять блокчейнов.  Исторически практическое применение NFT началось с игр, и команда Sporty Beavers  решила пойти по этому пути. Так ребята планируют мотивировать пользователей постигать мир Web3, научиться пользоваться кошельками и блокчейном, при этом занимаясь спортом и разными активностями для укрепления ментального здоровья.  Команда проделала большую работу и фактически вдохнула жизнь в отдельное технологическое направление криптоигр на платформе VK Mini Apps. В игре Sporty Beavers объединены лучшие практики классических батлеров Free-to-Play и набирающих популярность Free-to-Earn NFT-игр — всё для того, чтобы стимулировать заниматься спортом людей, которым скучно просто выполнять упражнения.  Авторы переработали и грамотно объединили две известные механики типичных Web3-игр: вы можете при первом входе в игру получить сгенерированного персонажа-бобра и заминтить его в свой кошелёк. Почему бобр? Коты уже заняты, а бобры умные и прикольные — и в подобных играх ещё не встречались. В конфигураторе можно будет настроить своего бобра: выбрать цвет, рост, форму ушей и лап, разные аксессуары; а позднее можно будет покупать во внутриигровом магазине одежду или другие аксессуары. Выполняя физические упражнения из приложения, вы стараетесь побеждать персонажей других пользователей по принципу «камень-ножницы-бумага» — сила-ловкость-выносливость. В случае победы получаете игровые монеты, с помощью которых можно прокачать своего бобра, а в будущем появится возможность продать его на маркетплейсе.  В приложении можно будет оплачивать создание токенов рублями через VK Pay. Если приобрести внутриигровые предметы для персонажа, можно будет ускорить прокачку бобра и, таким образом, получить преимущество в состязаниях с другими пользователями. Павел Захаров, СЕО проекта Sporty Beavers: “На российском рынке это будет первая подобная игра. Сейчас у ВКонтакте около 100 млн MAU во всём мире, и после модерации игра на платформе VK MIni Apps сможет сразу выйти на большую аудиторию — это сильно облегчает жизнь стартапам. А на мировом рынке таких игр-конкурентов мало и ни одна не адаптирована для пользователей из СНГ». Конструктор с простым заполнением договора или билета реквизитами, стоимостью и порядком расчётов. После этого конструктор создаёт невзаимозаменяемый токен, выполняет on-chain поверку и сохраняет в нём информацию о документе. Такой сервис создания и модерации договоров на основе NFT упростит создание юридически значимой документации и взаимоотношения между контрагентами. Команду одним из грантов отметила блокчейн-платформа Solana. Допустим, пользователь занимается бизнесом, например, продажу, сдачу в аренду имущества или оказание услуг. С помощью приложения Dокер на платформе VK Mini Apps он сможет создать соответствующие шаблоны договорных документов или бланков строгой отчётности. После того, как клиент пишет запрос на предоставление услуг, приложение отсылает ему предзаполненный шаблон в виде ссылки на документ прямо в сообщении ВКонтакте. Этот шаблон клиент может заполнить, внести нужные правки и подписать. После подписания на стороне клиента, договор возвращается исполнителю, где он подписывает его и выпускает токен одним нажатием.  Регистрация договоров с помощью NFT: Архитектура приложения Dокер: Приложение играет роль белого списка: чтобы получить доступ к какому-то авторскому контенту, пользователям нужно сначала купить привязанный к нему NFT. Доступ вам могут прислать в виде подарка, но для его открытия нужно будет привязать криптокошелёк, например Metamask.  В приложении пользователь может создать контент в виде NFT и указать человека, который сможет его посмотреть. Информация о контенте запечатывается динамическим ключом шифрования который формируется при создании NFT контента — прочитать метаданные, которые использовались для создания токена может только пользователь, которому адресован этот контент. C помощью приложения можно: Продавать билеты на мероприятия и открывать доступ к уникальному NFT-контенту для людей, которые купили билет.  Создавать своё творчество в NFT и делать его доступным для определённой группы людей (например, для тех, кто подписался на ваше сообщество).  Хранить документы, переводя их в NFT и открывая только для тех, с кем вы хотите ими поделиться.  WhiteList откроет новые возможности для сообществ и контент-мейкеров — они смогут управлять доступом к своему уникальному контенту, надёжнее защищать интеллектуальную собственность и получать дополнительную монетизацию своего творчества.  В работе над проектом команда Unknown brand использовала документацию Metamask и Ethers.js. Проблем с интеграцией не возникло благодаря применению классического TypeScript. В будущем планируют популяризировать свой продукт и развивать его технически и функционально. Хотели бы получить возможность подключения Metamask на мобильных устройствах (для обхода iframe), поддержки Ethereum VM и TON FunC. Вы уже можете предлагать и создавать продвинутые NFT-проекты на платформе VK Mini Apps. Соприкоснуться с VK NFT сейчас можно в мини-приложении, позволяющем устанавливать аватары и токены на витрину. Все новости продукта можно найти в официальном сообществе VK NFT HUB, там появятся анонсы будущих мероприятий для разработчиков. Команда открыта к новым предложениям и готова помочь с развитием сторонних приложений на платформе.  А мы продолжим улучшать наши технологии. В 2023 году перед командой VK NFT стоит несколько глобальных целей — расширение списка поддерживаемых блокчейнов, открытие NFT для сообществ и поддержка собственного маркетплейса. Поэтому задач у разработчиков будет много, и вы всегда сможете найти для себя то, что по душе.   Developer Relations