Полноценный блокчейн-dApp внутри мессенджера на примере NEAR Tip Bot

Ru-гильдия NEAR Protocol
4 min readFeb 17, 2021

--

Чем хорош телеграм-бот? Тем, что он всегда под рукой, можно с телефона или компьютера проверить обновления и сделать разные полезные штуки.

Чем хороши децентрализованные приложения? Тем, что живут в блокчейне, не требуют центра доверия, но позволяют надежно работать с финансами за счет мощной криптографии. Только вот сложная криптография требует сложных интерфейсов, подписи всего подряд в метамаске или на экранчике леджера.

Можно ли сделать так, чтобы вы смогли управлять финансами внутри телеграм-бота, запускать смарт-контракты одним касанием экрана, оплачивая за выполнение операций малые доли цента, а сам бот при этом не имел бы даже теоретической возможности украсть ваши средства?

Да, если вы работаете в блокчейне 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:

  1. Переходим к боту @nearup_bot и смотрим доступный баланс командой /mytips
  2. Если у нас есть NEAR-аккаунт, то логинимся в бота шагами 1–2 из предыдущего списка и делаем /withdraw для вывода
  3. Если у нас нет NEAR-аккаунта, то вызываем /withdrawLinkDrop которая создаст ссылку на генерацию аккаунта, на котором уже будут лежать пожертвования за вычетом стоимости регистрации аккаунта (1 NEAR).

Внимание! В боте ведется 2 разных баланса:

  • Депозит (от относится к аккаунту NEAR)
  • Баланс чаевых в телеграм (относится к учетной записи в телеграм)

Это сделано для того, чтобы уметь возможность отправлять чаевые даже тем, у кого еще нет NEAR-аккаунта, и отправлять чаевые не только в телеграм, но и других социальных сетях.

Когда вам отправляют чаевые, вы получаете их на баланс чаевых. Чтобы иметь возможность отправляет эти токены в виде чаевых другим пользователям, надо перевести их на депозит командой /transferTipsToDeposit.

Хотите обсудить?

Заходите в @near_protocol

Полезные ссылки

Код контракта: https://github.com/zavodil/tipbot

Операции по контракту видны в блокчейне: https://explorer.mainnet.near.org/accounts/tipbot.app.near

--

--

Ru-гильдия NEAR Protocol
Ru-гильдия NEAR Protocol

Written by Ru-гильдия NEAR Protocol

Русскоязычное сообщество NEAR Protocol

Responses (1)