Интеграция с Zealy (quest-платформа)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Zealy (quest-платформа)
Простая
~1 рабочий день
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Zealy (quest-платформа)

Zealy (бывший Crew3) — quest-платформа для Web3 сообществ. Основной сценарий интеграции: ваш dApp или бэкенд верифицирует выполнение кастомных заданий через Zealy API, или читает данные о пользователях и их XP для реализации on-chain наград.

Zealy API: что доступно

Zealy предоставляет REST API с ключом авторизации из настроек community:

Authorization: Basic <base64(apiKey:)>

Ключевые endpoints:

  • GET /communities/{subdomain}/users — список участников с XP
  • GET /communities/{subdomain}/users/{userId} — данные конкретного пользователя
  • GET /communities/{subdomain}/leaderboard — лидерборд
  • POST /communities/{subdomain}/users/{userId}/complete-quest — программное завершение кастомного квеста

Чтение данных пользователей

const ZEALY_API = 'https://api.zealy.io/communities';

async function getUserByWallet(subdomain: string, walletAddress: string) {
  const response = await fetch(
    `${ZEALY_API}/${subdomain}/users?ethAddress=${walletAddress.toLowerCase()}`,
    {
      headers: {
        'Authorization': `Basic ${Buffer.from(process.env.ZEALY_API_KEY + ':').toString('base64')}`,
      }
    }
  );
  
  if (!response.ok) throw new Error(`Zealy API error: ${response.status}`);
  const data = await response.json();
  return data.data?.[0] ?? null;
}

Пользователи привязывают кошелёк в Zealy профиле — именно через ethAddress идёт поиск для on-chain интеграции.

Кастомные квесты с API-верификацией

Самый полезный кейс: квест «Сделай swap на нашем DEX» или «Вызови наш контракт». Zealy поддерживает API-quests — вы пишете эндпоинт, который Zealy дёргает для верификации.

Настройка в Zealy: добавляете API quest, указываете URL вашего верификационного эндпоинта. Zealy отправит POST запрос при попытке завершить квест.

// Ваш верификационный endpoint
app.post('/zealy/verify/swap', async (req, reply) => {
  const { userId, reviewedAt } = req.body;
  
  // Получаем кошелёк пользователя из Zealy
  const user = await getZealyUser(userId);
  if (!user?.ethAddress) {
    return reply.send({ success: false, message: 'Wallet not connected in Zealy' });
  }
  
  // Проверяем on-chain: был ли swap с этого адреса за последние 7 дней
  const hasSwapped = await checkSwapOnChain(user.ethAddress, Date.now() - 7 * 24 * 3600 * 1000);
  
  return reply.send({
    success: hasSwapped,
    message: hasSwapped ? 'Swap verified' : 'No swap found for this wallet'
  });
});

Важно: Zealy не предоставляет signature для верификации входящего запроса (на момент написания). Дополнительно защитите endpoint через secret token в заголовке, который вы задаёте при настройке квеста.

Программное начисление XP

После on-chain события (mint, swap, стейкинг) можно автоматически завершать квест для пользователя:

async function completeQuestForUser(
  subdomain: string,
  userId: string,
  questId: string
) {
  const response = await fetch(
    `${ZEALY_API}/${subdomain}/users/${userId}/complete-quest`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Basic ${Buffer.from(process.env.ZEALY_API_KEY + ':').toString('base64')}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ questId }),
    }
  );
  
  return response.ok;
}

Типичный flow: слушаем on-chain события → находим userId по wallet через Zealy API → вызываем complete-quest.

Ориентиры по срокам

Чтение лидерборда + XP для конкретного пользователя — несколько часов. Полноценная интеграция с кастомными верифицируемыми квестами и on-chain проверками — 1 рабочий день.