Полноценный блокчейн-dApp внутри мессенджера на примере NEAR Tip Bot
Чем хорош телеграм-бот? Тем, что он всегда под рукой, можно с телефона или компьютера проверить обновления и сделать разные полезные штуки.
Чем хороши децентрализованные приложения? Тем, что живут в блокчейне, не требуют центра доверия, но позволяют надежно работать с финансами за счет мощной криптографии. Только вот сложная криптография требует сложных интерфейсов, подписи всего подряд в метамаске или на экранчике леджера.
Можно ли сделать так, чтобы вы смогли управлять финансами внутри телеграм-бота, запускать смарт-контракты одним касанием экрана, оплачивая за выполнение операций малые доли цента, а сам бот при этом не имел бы даже теоретической возможности украсть ваши средства?
Да, если вы работаете в блокчейне NEAR.
Причина в том, что в NEAR есть уникальная возможность создавать ключи доступа с ограниченным функционалом внутри вашего аккаунта. Для Tip Bot я написал смарт-контракт для управления чаевыми, который можно пополнить токенами, эти токены можно отправлять в виде чаевых под сообщениями, а чаевые можно выводить себе на кошелек. Чтобы связать бота с вашем аккаунтом в NEAR, мы сгенерируем новый ключ, который сможет запускать вызовы лишь для этого контракта, не сможет вызывать другие контракты и уж тем более не сможет потратить ваши токены. Ключ находится в вашем распоряжении и вы можете удалить его из NEAR-аккаунта в любой момент. Но пока он активен, он позволит телеграм-боту отправлять чаевые настолько простым способом, насколько это только возможно в мессенджере.
Мы можем отправить чаевые пользователю даже не зная его адреса, чаевые чаевые смогут накапливаться и будут закреплены за его телеграм-аккаунтом и как только он зайдет к боту, то получит предложение точно также подключить свой блокчейн-аккаунт и вывести токены. А если у него нет NEAR-аккаунта, то бот поможет создать linkdrop-ссылку, которая переведет на страницу генерации аккаунта, при этом покроет небольшую плату за хранение аккаунта и остатки чаевых сразу зачислит на баланс.
Как добавить бота в публичный чат? Просто взять и добавить как обычного пользователя, лишь бы он мог читать и писать. И это сразу превратит чат в интерфейс децентрализованного приложения, где за полезные сообщения можно получать награду в токенах NEAR.
Как найти бота nearup_bot в телеграм?
Проходим по ссылке https://t.me/nearup_bot или открываем Telegram-клиент, в поиске пишем nearup_bot. Кликаем на имя бота, убедившись, что его username — именно nearup_bot.
Как начать отправлять чаевые:
1. Переходим к боту @nearup_bot и логинимся в аккаунт командой /loginTipBot.
- Указываем желаемую сеть (скорее всего это будет Mainnet).
- Вводим имя своего аккаунта в NEAR вида name.near. Вы должны иметь доступ к этому аккаунту через кошелек http://wallet.near.org/, то есть биржевые аккаунты не подойдут.
- Далее будет создана ссылка, по которой вы сможете связать аккаунты. Кликните на неё, залогиньтесь если надо в свою учетную запись в web-wallet. Убедитесь, что у данного доступа не будет возможности тратить токены и вызывать методы других контрактов. Нажмите Authorize/Принять.
2. Вернёмся к боту и подтвердим привязку ключа (это можно сделать кнопкой Start, нажатием на кнопку под полем ввода или вводом любого текста). Выполняется проверка в блокчейне, после чего создается ключ ограниченного доступа.
3. Переходим на сайт, логинимся своим аккаунтом NEAR, использованном ранее и пополняем баланс приложения. Эти токены вы сможете жертвовать в чате.
4. Идём в телеграм-чаты, где присутствует бот, например, в @near_protocol и пишем ответ (reply) на сообщение того автора, кого мы хотим премировать, /near 1 или /near 0.5. Cмарт-контракт всякий раз изменяет данные в блокчейне.
Что делать если вам дали чаевые в NEAR Tip Bot:
- Переходим к боту @nearup_bot и смотрим доступный баланс командой /mytips
- Если у нас есть NEAR-аккаунт, то логинимся в бота шагами 1–2 из предыдущего списка и делаем /withdraw для вывода
- Если у нас нет NEAR-аккаунта, то вызываем /withdrawLinkDrop которая создаст ссылку на генерацию аккаунта, на котором уже будут лежать пожертвования за вычетом стоимости регистрации аккаунта (1 NEAR).
Внимание! В боте ведется 2 разных баланса:
- Депозит (от относится к аккаунту NEAR)
- Баланс чаевых в телеграм (относится к учетной записи в телеграм)
Это сделано для того, чтобы уметь возможность отправлять чаевые даже тем, у кого еще нет NEAR-аккаунта, и отправлять чаевые не только в телеграм, но и других социальных сетях.
Когда вам отправляют чаевые, вы получаете их на баланс чаевых. Чтобы иметь возможность отправляет эти токены в виде чаевых другим пользователям, надо перевести их на депозит командой /transferTipsToDeposit.
Хотите обсудить?
Заходите в @near_protocol
Полезные ссылки
Код контракта: https://github.com/zavodil/tipbot
Операции по контракту видны в блокчейне: https://explorer.mainnet.near.org/accounts/tipbot.app.near