Розробка гри Coinflip на блокчейні

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

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

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

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

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

Розробка гри Coinflip на блокчейні

Coinflip — найпростіша ставочна механіка: вгадати орла або решку. 50/50 шанс, виграш трохи менше 2x (house edge ~2%). Реалізація на блокчейні займає кілька днів, але вимагає правильного verifiable randomness.

Smart contract

contract BlockchainCoinflip is VRFConsumerBaseV2Plus {
    uint256 public houseEdge = 200; // 2%
    
    struct Flip {
        address player;
        uint256 amount;
        bool guessHeads;
    }
    
    mapping(uint256 => Flip) public flips;
    
    function flip(bool guessHeads) external payable returns (uint256 requestId) {
        require(msg.value >= 0.001 ether && msg.value <= getMaxBet());
        
        requestId = _requestVRF();
        flips[requestId] = Flip(msg.sender, msg.value, guessHeads);
    }
    
    function fulfillRandomWords(uint256 requestId, uint256[] calldata randomWords) 
        internal override 
    {
        Flip memory f = flips[requestId];
        delete flips[requestId];
        
        bool isHeads = randomWords[0] % 2 == 0;
        bool win = isHeads == f.guessHeads;
        
        if (win) {
            uint256 payout = f.amount * (10000 - houseEdge) / 5000;
            payable(f.player).transfer(payout);
        }
    }
    
    function getMaxBet() public view returns (uint256) {
        return address(this).balance / 100;
    }
}

PvP Варіант

Гравець проти гравця: перший гравець створює challenge з ставкою, другий приймає, VRF визначає winner, winner отримує обидві ставки мінус комісія. Усуває вимогу house bankroll — казино заробляє тільки комісію.

Розробка: coinflip контракт + frontend — 1-2 тижні. PvP варіант добавляє тиждень для challenge/accept механіки.