Crush Notes❤️
Secret messages, stored forever on the blockchain.
Created on 19th August 2025
•
Crush Notes❤️
Secret messages, stored forever on the blockchain.
The problem Crush Notes❤️ solves
Sharing feelings is often awkward, risky, or lost in noisy apps. People hesitate to express crushes or personal thoughts because:
- Messages usually can be screenshotted, leaked, or traced.
- Centralized apps (Instagram, WhatsApp, etc.) don’t provide anonymity or immutability.
- Existing "secret note" apps are offchain and easy to tamper with.
- CrushNotes solves this by letting users send anonymous, permanent, tamper-proof love notes directly onchain. It makes expression playful yet safer:
- Notes can only be accessed by the intended wallet owner .
- There’s no central server that can censor, track, or leak messages.
- Onchain permanence means no accidental deletion or manipulation.
Hence people can use it to:
- Confess feelings anonymously (romantic crushes, compliments, or secrets).
- Send playful surprises to friends, classmates, or colleagues.
- Ensure trust in secret-sharing because it’s verifiable & uncensorable onchain.
Challenges I ran into
-
Smart Contract Design – Figuring out how to store private notes securely onchain while keeping gas usage low was tricky. I had to decide between struct-based storage vs. event logs and optimize for simplicity.
-
Frontend Integration with Contracts – Getting the contract ABI and deployed address to connect seamlessly with the React frontend (using ethers.js) took time. Debugging empty arrays, struct unpacking, and ensuring the right data mapping was challenging.
-
User Experience in Web3 – For a playful app like CrushNotes, UX/UI matters a lot. Handling wallet connections, network switching, and giving instant feedback to users without overwhelming them was a balancing act.
-
Testing Across Accounts – Simulating sender/receiver scenarios required juggling multiple wallets on Sepolia testnet. Lack of test ETH and debugging transactions slowed down development.
Smart Contract Address(es)
0xb648FDd4b1f5e55Ed488f37Fbea9B282E70CA46A
Tracks Applied (1)