
Rootstock Mini App
On-chain merchant rewards and NFTs inside a Telegram Mini-App on Rootstock.
Demo
About
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.
How it's made
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 + encryption Gas sponsorship NFT minting and burning Reward-code validation Pinarkive metadata uploads Frontend, backend, and contracts are structured so judges can clone the repo, add .env values, run each service locally, and replicate the full reward flow.