cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
Статья

ADAMANT Bounty Bot: Интерактивные кампании с автоматическими криптоплатежами

ADAMANT Bounty Bot: Интерактивные кампании с автоматическими криптоплатежами

ADAMANT Bounty Bot — это инструмент с открытым исходным кодом, предназначенный для криптопроектов, чтобы проводить бонусные кампании и airdrop’ы интерактивно через чат в ADAMANT Messenger. Он автоматизирует проверку заданий и выплаты, устраняя необходимость в отдельном менеджере по бонусам и убирая задержки в выплатах участникам.

Зачем нужен отдельный бот для бонусов

Традиционные бонусные кампании зависят от менеджеров, которые публикуют условия на форумах, таких как Bitcointalk, и вручную проверяют выполнение условий участниками по окончании кампании. Такой подход неудобен для пользователей и дорог для владельцев проектов. ADAMANT Bounty Bot упрощает процесс: участники взаимодействуют с ботом напрямую в чате, бот автоматически проверяет выполненные задания и немедленно выплачивает вознаграждения в ADM, ETH или токенах ERC-20.

В настоящее время бот поддерживает кампании в Twitter (подписка на аккаунты, ретвиты с комментариями, упоминание друзей и использование хештегов), а также реферальные кампании ADAMANT, в которых пользователи приглашают других присоединиться. Поддержка дополнительных социальных сетей может быть добавлена участниками, так как бот является открытым.

Как это работает

Бот постоянно работает на сервере. После установки вы настраиваете параметры кампании: на какие аккаунты Twitter должны подписаться участники, какой твит нужно ретвитнуть и что должен содержать комментарий к ретвиту. Бот отслеживает сообщения пользователей, проверяет выполнение заданий, выплачивает вознаграждения и собирает статистику. Он также выявляет дублирующиеся аккаунты в социальных сетях, чтобы один пользователь не мог получить награду дважды.

Требования

Для запуска бота требуются базовые навыки работы с Linux и Node.js. Требования к серверу минимальны — подойдёт любой VPS с Ubuntu (например, Digital Ocean, Ramnode, Scaleway, Hetzner). Установка полного узла ADAMANT не обязательна, но рекомендуется на машинах с объёмом диска более 40 ГБ и ОЗУ 1 ГБ для поддержки децентрализации. Вам также понадобится кошелёк ADAMANT для бота, кошельки с криптовалютой для выплат (учтите, что комиссии за перевод ERC-20 оплачиваются в ETH, поэтому кошелёк бота в ETH должен быть пополнен), ключи API Twitter (если проводятся кампании в Twitter) и установленная на сервере MongoDB.

Команды

Бот отвечает на несколько команд пользователей и администраторов. Пользователи могут отправлять /help для получения информации о кампании, /rates — для просмотра рыночных цен токенов, /calc — для конвертации криптовалют. Администраторы могут использовать /balances для проверки баланса кошельков бота и /test для диагностики, например /test twitterapi.

Установка

Бот следует устанавливать под пользователем adamant. Если вы ранее устанавливали узел ADAMANT, этот пользователь уже существует. Склонируйте репозиторий и установите зависимости:

su - adamant
git clone https://github.com/Adamant-im/adamant-bountybot.git
cd ./adamant-bountybot
npm i

Настройка

Откройте файл config.json в текстовом редакторе. Ниже описаны ключевые параметры.

passPhrase — секретная фраза для аккаунта ADM бота. Всегда создавайте новый аккаунт для бота, не используйте существующий.

"passPhrase": "scatter tomato doctor also stay tell success pause gift clip hungry october",

twitter_follow — аккаунты Twitter, на которые участники должны подписаться, чтобы получить вознаграждение. Установите пустой массив, чтобы отключить.

"twitter_follow": [
  "@adamant_im",
  "@BitZ_Group"
],

twitter_retweet_w_comment — определяет твит, который нужно ретвитнуть с комментарием. Параметр min_mentions задаёт количество упоминаемых друзей; hashtags — обязательные хештеги. Установите пустой массив, чтобы отключить.

"twitter_retweet_w_comment": [
  {
    "tweet": "https://twitter.com/adamant_im/status/1272945640574722048",
    "min_mentions": 3,
    "hashtags": [
      "#privacy",
      "#decentralization"
    ]
  }
],

adamant_campaign — количество новых пользователей, которых участник должен пригласить в ADAMANT (min_contacts). Приглашённый пользователь засчитывается, если его первое сообщение не старше трёх дней и отправлено участнику кампании. Установите 0, чтобы отключить.

"adamant_campaign": {
  "min_contacts": 3
},

rewards — суммы и валюты выплат каждому пользователю, выполнившему все задания.

"rewards": [
  {
    "currency": "ADM",
    "amount": 100
  },
  {
    "currency": "ETH",
    "amount": 0.01
  }
],

twitter_api — ваши учётные данные API Twitter из панели разработчика. Оставьте пустым, если кампания в Twitter не проводится.

"twitter_api": {
  "consumer_key": "jsoQSRzVYWTUE88t",
  "consumer_secret": "6l7w0vqHCEIkmjbdR8ubTxzhJZRk1JUlSUonu5",
  "access_token_key": "86823450088-il17SnfGmxQCYW9bAGAnFB2aW4",
  "access_token_secret": "W0k1armrFUL8ATzJwAJ2x9yuxojKIEtRaphT"
},

admin_accounts — ваш личный адрес ADM, чтобы бот принимал от вас команды администратора. Он должен отличаться от адреса самого бота.

"admin_accounts": [
  "U14818108337685946763"
],

welcome_string и help_message — приветственное сообщение и справочный текст для пользователей. Оба поддерживают Markdown и могут ссылаться на переменные конфигурации (например, ${config.rewards_list}, ${config.twitter_follow_list}).

adamant_notify и slack — необязательные, но рекомендуемые каналы уведомлений. При использовании уведомлений ADAMANT укажите адрес, отличный от admin_accounts.

"adamant_notify": "U48110833768594688888",
"slack": "https://hooks.slack.com/services/T7YUJW/LKHHD/rDKFJZ94FOhbkn49eOfq",

Запуск бота

Используйте менеджер процессов pm2 для запуска бота. Если вы устанавливали узел ADAMANT, pm2 уже доступен; в противном случае установите его с помощью sudo npm install -g pm2.

pm2 start --name bountybot app.js

Проверьте логи, если бот не отвечает на сообщения:

pm2 logs bountybot

Чтобы бот перезапускался после перезагрузки сервера, добавьте запись в cron:

crontab -e

Добавьте следующую строку и сохраните:

@reboot cd /home/adamant/adamant-bountybot && pm2 start --name bountybot app.js

Интерактивный бот-бонус от ADAMANT для криптопроектов