MARV

Full Stack DevSolidity Engineer

Forging decentralized experiences and high-performance web applications. Expert in GambleFi mechanics, Custom NFT Minting, and Smart Contract Architecture.

Built Projects

Here are some of my works

GambleFi Protocol

Solidity Architect

The core staking engine and gambling logic powering multiple successful platforms. Collectively processed over $100k+ in NFT and ETH volume via 'The Veil' contract and other proprietary betting systems.

SolidityPyth EntropyVRFGas Optimization

Custom Minting Platforms

Full Stack Dev

Deployed bespoke minting experiences. Handling whitelist logic, Merkle trees, and high-traffic launches with 100% uptime. Example: Elixir by Yowies.

Next.jsElixir YowiesMerkle TreeTailwind

DeFi & NFT Frontends

Frontend Specialist

Building immersive, responsive interfaces for Web3. Focusing on seamless wallet connection, real-time data updates, and pixel-perfect design implementations.

ReactTypeScriptFramer MotionWagmi

P2P Betting & Arcades

Lead Developer

Created fast-paced gambling dApps like Die Guys (Pawshot Roulette) and Big Moto Win. Features real-time gameplay, VRF integration, and secure payout logic.

Big Moto WinDie GuysWeb3.js

Smart Contract Architecture

Secure, gas-optimized, and verifiable on-chain logic. Features TheVeil.sol, the core staking engine for the GambleFi NFT Protocol.

TheVeil.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract TheVeil is IEntropyConsumer, ReentrancyGuard, Ownable {
    
    struct StakeData {
        address owner;
        uint256 stakeStart;
        uint256 targetTime;
        bool isBlessed;
        bool isClaimed;
        uint64 sequenceNumber;
        bytes32 userCommitment;
    }

    mapping(uint256 => StakeData) public stakes;
    
    // Probability weights for blessing system
    uint256 private constant NOTES_WEIGHT = 4500;       // 45%
    uint256 private constant WEAPONS_CACHE_WEIGHT = 1000; // 10%
    
    function stake(uint256 tokenId, bytes32 userRandomNumber) external payable {
        require(goatContract.ownerOf(tokenId) == msg.sender, "Not owner");
        
        // Generate user commitment for secure randomness
        bytes32 userCommitment = keccak256(
            abi.encodePacked(userRandomNumber, msg.sender, block.timestamp)
        );

        // Request randomness from Pyth Entropy
        uint64 sequenceNumber = entropy.requestWithCallback{value: requestFee}(
            entropyProvider,
            userCommitment
        );
        
        stakes[tokenId] = StakeData({
            owner: msg.sender,
            stakeStart: block.timestamp,
            targetTime: 0,
            isBlessed: false,
            isClaimed: false,
            sequenceNumber: sequenceNumber,
            userCommitment: userCommitment
        });
    }
    
    function _determineBlessingType(uint64 seq) private view returns (uint256) {
        uint256 rand = uint256(keccak256(abi.encode(seq, block.timestamp))) % 10000;
        
        if (rand < LOOT_CACHES_WEIGHT) return 4;
        else if (rand < LOOT_CACHES_WEIGHT + ARMOR_CACHE_WEIGHT) return 3;
        else return 0; // Notes of The Veil
    }
}