Розробка Move-to-Earn механік

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка Move-to-Earn механік
Складний
~1-2 тижні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1121
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    858

Розробка механік Move-to-Earn

STEPN у 2022 році доказав, що фізична активність і крипто-економіка можуть утворити цикл з ринком у мільярди доларів. Потім показав, що неправильно сконструйована токен-економіка цей цикл розриває за кілька тижнів. Move-to-Earn — це не тільки гейміфікація фітнесу, це складна система з оракулами, античітовими механіками, двотокенною економікою та проблемою стійкості, яку STEPN так і не вирішив.

Розробка M2E механік — це перетин мобільної розробки, on-chain логіки та економічного дизайну. Технічна реалізація нескладна. Створити стійку систему, яка не схлопнеться через місяць — принципово інша задача.

Архітектура даних руху

Що рахувати і як верифікувати

Телефон генерує дані акселерометра, гіроскопа та GPS. З них витягуються: кроки (pedometer), відстань (GPS + крок-фьюжн), швидкість, тип активності (ходьба / біг / велосипед). Проблема: ці дані легко підробити.

iOS CoreMotion / Android SensorManager — нативні API для кроків і активності. На iOS CMPedometer — системний педометр, дані нативно верифіковані Apple. Android — HealthConnect API з аналогічним рівнем довіри.

Але додаток не повинен довіряти цим даним безпосередньо для on-chain запису — це відкриває вектор для root/jailbreak фарму.

Античіт: багатоrivневий захист

Рівень 1: Цілісність пристрою. iOS App Attest / Android Play Integrity API — підтвердження, що додаток запущено на реальному пристрої без джейлбрейку, без емулятора. Attestation запит до серверів Apple/Google, відповідь — підписаний токен.

// iOS App Attest flow
async function getAttestation(challenge: string): Promise<AttestationResult> {
    const keyId = await DCAppAttestService.generateKey()
    const clientDataHash = sha256(challenge)
    const attestation = await DCAppAttestService.attestKey(keyId, clientDataHash)

    // Відправляємо на backend для верифікації
    const result = await api.post('/verify-attestation', {
        attestation: btoa(attestation),
        keyId,
        challenge
    })
    return result
}

Рівень 2: Перевірка правдоподібності активності. Backend аналізує GPS трек і кроки на правдоподібність:

  • Швидкість > 12 м/с при типі «ходьба» → флаг
  • Ідеально рівний крок кожні 0.8с без варіації → флаг (емулятор)
  • GPS трек телепортується на 500м → флаг
  • Всі сесії рівно 30 хвилин день в день → підозра
interface ActivitySession {
    userId: string
    startTime: number
    endTime: number
    steps: number
    distance: number      // метри
    avgSpeed: number      // м/с
    gpsTracks: GpsPoint[]
    rawAccelerometer?: number[]  // для аналізу паттернів
    integrityToken: string      // Play Integrity / App Attest токен
}

function validateSession(session: ActivitySession): ValidationResult {
    const duration = (session.endTime - session.startTime) / 1000 // секунди
    const avgStepFrequency = session.steps / duration

    const flags: string[] = []

    if (session.avgSpeed > 3.5 && session.activityType === 'walk') flags.push('speed_anomaly')
    if (avgStepFrequency > 3.5 || avgStepFrequency < 0.8) flags.push('step_frequency_anomaly')
    if (hasGpsTeleportation(session.gpsTracks)) flags.push('gps_anomaly')
    if (hasZeroVariance(session.rawAccelerometer)) flags.push('synthetic_data')

    return { valid: flags.length === 0, flags, score: calculateTrustScore(session, flags) }
}

Рівень 3: Машинне навчання аномалія. При масштабі — ML модель на паттернах активності. Людина має характерні варіації кроку, ритм дихання (відбивається в акселерометрі), GPS немає у емулятора без mock location. Модель навчається на легітимних сесіях, ловить відхилення.

Рівень 4: Rate limiting через NFT durability. STEPN-подібний механізм: снаряження (NFT кросівки) має energy pool. Без energy — нема reward. Energy відновлюється повільно. Це не тільки game mechanic — це rate limiter: навіть якщо хтось імітує активність, Energy cap обмежує максимальний reward.

On-chain архітектура

NFT снаряження та атрибути

struct Equipment {
    uint256 tokenId;
    EquipmentType equipType;  // SHOES, BICYCLE, etc.
    uint8 efficiency;         // впливає на базовий reward
    uint8 luck;               // впливає на drop rate
    uint8 comfort;            // впливає на earning range
    uint8 resilience;         // впливає на durability drain rate
    uint16 durability;        // поточна міцність (0-100)
    uint8 level;              // макс 30
    uint8 mintCount;          // кількість разів використаний для мінту потомків
}

mapping(uint256 => Equipment) public equipment;
mapping(address => uint256) public energyPool; // поточна energy
mapping(address => uint256) public lastEnergyRefill;

Reward контракт і oracle

Backend верифікує сесію, підписує claim. Користувач подає підпис у reward контракт:

contract MoveToEarnReward {
    address public rewardSigner;    // backend signer
    mapping(bytes32 => bool) public claimedSessions;

    function claimReward(
        bytes32 sessionId,
        uint256 steps,
        uint256 rewardAmount,
        uint256 equipmentId,
        uint256 deadline,
        bytes calldata signature
    ) external {
        require(block.timestamp <= deadline, "Expired");
        require(!claimedSessions[sessionId], "Already claimed");

        bytes32 hash = keccak256(abi.encodePacked(
            sessionId, msg.sender, steps, rewardAmount, equipmentId, deadline
        ));
        bytes32 ethHash = ECDSA.toEthSignedMessageHash(hash);
        require(ECDSA.recover(ethHash, signature) == rewardSigner, "Invalid signature");

        claimedSessions[sessionId] = true;

        // Зменшуємо durability NFT
        _drainDurability(equipmentId, steps);

        // Мінтимо reward токен
        rewardToken.mint(msg.sender, rewardAmount);
    }
}

Токен-економіка: проблема стійкості

STEPN мав GST (spending token) і GMT (governance token). GST нескінченно мінтився за кроки, нескінченно спалювався на ремонт/апгрейд. Поки нових гравців більше ніж старих — токен росте. Коли ріст зупинився — інфляція з'їла ціну за тижні.

Dual-token з burn sink:

Earning token (ET) — мінтиться за активність, використовується на:
  - Ремонт durability (sink 1, основний)
  - Upgrade NFT атрибутів (sink 2)
  - Crafting (мінт нового NFT) (sink 3, створює інфляцію NFT)

Governance token (GT) — обмежений supply, отримується:
  - Рідкі drops за активність (luck атрибут впливає)
  - Стейкинг
  - DAO участь

Змінна emission rate. Reward за крок = f(активність мережі, daily active users, загальне спалювання за період). Якщо sink < mint → emit зменшується автоматично. Це не рішення, але сповільнює деградацію.

Real-world value sink. Найстійкіше рішення: частина доходу від нових продажів NFT йде у buyback & burn earning token. Реальні гроші → deflation тиск. Decentralized health insurance partnership (користувач отримує скидку на страховку за активність, страховна платить токенами) — екзотично, але видно в кількох проектах.

Activity data monetization. Агреговані (і анонімізовані) дані активності мають цінність для фармацевтичних досліджень, міського планування. B2B продаж цих даних = real revenue = buyback. Вимагає ретельну згоду користувачів і GDPR compliance.

Рівні та прогресія

NFT має рівень (0-30). Кожен рівень розблокує слоти для gems (додаткові бусти). Upgrade вимагає спалювання ET + time lock:

Рівень ET стоимість Час Розблокує
1 → 5 10 ET Instant Socket 1 (gem slot)
5 → 10 50 ET 24h Socket 2
10 → 20 200 ET 72h Socket 3, Mint capability
20 → 30 1000 ET 7d Socket 4, Special abilities

Time lock — це не тільки механіка, це додатковий sink і throttle на reward farming.

Mobile stack

React Native + Expo — найбільш швидкий шлях для cross-platform. Expo bare workflow для доступу до native modules (CMPedometer, Play Integrity). Expo Location для GPS background tracking.

Mapbox / Google Maps SDK для відображення GPS треку. Background location вимагає explicit permission та обґрунтованого UX пояснення користувачу.

WalletConnect v2 + wagmi для підключення кошелька. Альтернатива — embedded wallet через Privy/Dynamic для non-crypto-native аудиторії.

Mobile App (React Native)
├── Activity Tracking (CoreMotion / HealthConnect)
├── Anti-cheat (App Attest / Play Integrity)
├── GPS Recording (Expo Location background)
├── Session Upload → Backend
│       ├── Plausibility Check
│       ├── ML Anomaly Detection
│       └── Sign Reward Claim
└── On-chain Claim (wagmi / WalletConnect)

Процес розробки

Tokenomics design (2-4 тижні). Це не технічна задача, але критична. Моделювання в Python/Excel: при яких параметрах система стійка? Sensitivity analysis на DAU growth rate, churn, avg session reward.

Smart contracts (3-4 тижні). NFT контракт (ERC-721 + атрибути), reward контракт з oracle-backed claim, ET token (ERC-20 з mint/burn), upgrade механіка.

Backend (3-5 тижнів). Activity validation pipeline, anti-cheat системи, reward calculation, signer service, App Attest / Play Integrity інтеграція.

Mobile app (6-10 тижнів). GPS + activity tracking, background sessions, NFT viewer, reward claim UI, marketplace інтеграція.

Аудит і тестування. Smart contract аудит обов'язковий. Beta з обмеженим пулом користувачів для валідації anti-cheat до public launch.

MVP (web app без mobile, базовий anti-cheat) — 2-3 місяці. Повноцінний M2E з mobile, multi-level NFT, anti-cheat ML, стійкою токен-економікою — 6-9 місяців.