Rootstock Mini App
On-chain merchant rewards and NFTs inside a Telegram Mini-App on Rootstock.
Problem Statement
A fully on-chain reward and loyalty platform running inside a Telegram Mini-App, built on Rootstock. Merchants can create reward campaigns (like Free Coffee or Store Credit), which generate NFT rewards hosted via Pinarkive. Users simply open the Mini-App in Telegram, enter a reward code (e.g., GIFT01), automatically receive a wallet, get a small RBTC gas subsidy, and instantly claim the NFT. When they redeem the reward, the merchant confirms it, and the NFT is burned on-chain to prevent reuse.The project removes all Web3 complexity: no extensions, no seed phrases, no dApps. Everything works natively inside Telegram. The entire flow — wallet creation, gas funding, NFT minting, and burning — is live and working on Rootstock mainnet, after testnet limitations forced a mid-hackathon migration. Future integrations include x402 payments, RIF staking rewards, and rENS-based identity.
Solution
The Mini-App is built using the official Telegram Vite boilerplate, written in TypeScript + React, and communicates with a custom backend through REST endpoints. All smart contracts (ERC-721 reward NFTs) are deployed on Rootstock mainnet via Hardhat, with metadata stored using Pinarkive’s SDK for permanent hosting.When a user opens the Mini-App, the backend creates an encrypted EOA wallet for them, funds it with a minimal RBTC amount using a sponsor wallet, and mints the reward NFT to that address. Redeeming triggers an on-chain burn() transaction, ensuring each reward can only be used once.The backend manages:Wallet generation + encryptionGas sponsorshipNFT minting and burningReward-code validationPinarkive metadata uploadsFrontend, backend, and contracts are structured so judges can clone the repo, add .env values, run each service locally, and replicate the full reward flow.