project screenshot 1
project screenshot 2
project screenshot 3

TrustMint

TrustMint brand loyalty with on-chain reward tokens your customers can mint, redeem, and flex

TrustMint

Created At

Unite Defi

Project Description

This project is a decentralized loyalty rewards platform designed specifically for brands and their customers. It allows businesses to easily issue on-chain tokens as loyalty points, which users can collect, track, and redeem for exclusive rewards. Unlike traditional loyalty systems that are locked into centralized apps or databases, this dApp leverages Ethereum and smart contracts to make the entire process transparent, secure, and user-owned.

Customers connect their wallets, view their token balance, and redeem points for digital or physical rewards—like a coffee voucher or branded merchandise—directly from the dashboard. Brands, on the other hand, have a simple admin panel where they can mint and distribute points based on user behavior, purchases, or promotions. All transactions are recorded on-chain, and users can even view their recent token history using the Etherscan API integration.

By combining usability with blockchain transparency, this project reimagines brand loyalty for the web3 generation—making it feel more like a community currency than a boring points system.

How it's Made

We built this project as a full-stack Ethereum dApp, combining a smart contract on Sepolia with a responsive frontend that enables brands to issue and manage on-chain loyalty tokens.

🔧 Tech Stack Overview Smart Contract: Solidity, using Hardhat and OpenZeppelin for ERC-20 token logic.

Frontend: Next.js with Tailwind CSS for clean UI and responsiveness.

Wallet Integration: RainbowKit + wagmi + ethers.js for seamless Ethereum wallet interactions.

Blockchain: Sepolia testnet for deployment and testing.

External API: Etherscan API for fetching live transaction history.

Hosting: Vercel for easy frontend deployment.

🔩 Smart Contract Details We created a basic ERC-20 contract using OpenZeppelin’s libraries. The token, called BrandPoints (BPNT), allows only the owner (the brand’s wallet) to mint or burn tokens. This forms the foundation for issuing points and redeeming them securely.

solidity Copy Edit function mintPoints(address to, uint256 amount) external onlyOwner; function burnPoints(address from, uint256 amount) external onlyOwner; 🖥 Frontend Features Wallet connection via RainbowKit (supports MetaMask, WalletConnect, etc.)

Dashboard displaying current BPNT token balance.

Admin panel for minting tokens to any wallet.

User redeem flow where customers can burn tokens for items.

Reward store with virtual redeemables like coffee vouchers and T-shirts.

Transaction history fetched via Etherscan and displayed in the UI.

🔍 Notable Hacks & Decisions We used ethers.BrowserProvider to fetch signer dynamically for smart contract writes.

Instead of building a full backend for reward redemption, we kept it frontend-only for demo purposes and showed conditional UI confirmation on successful burns (like “🎉 You’ve redeemed a Coffee Voucher!”).

Transaction history was limited to the last 5 entries via Etherscan API for simplicity and speed.

The admin address is hardcoded for now, but we plan to expand it with role-based access in future iterations.

🎯 Why This Stack? We chose RainbowKit + wagmi for their plug-and-play developer experience, reducing time spent managing wallet logic. Tailwind CSS made styling fast and mobile-responsive from the start. Ethers.js let us interact with the contract easily from the frontend.

background image mobile

Join the mailing list

Get the latest news and updates