Inspiration
The idea for Nopalito grew from a deeply personal question: What happens to our messages, intentions, or secrets if we’re no longer around to share them? Living in Mexico, where tradition and remembrance are intertwined with daily life, I wanted to build a system that honored the spirit of communication across time—combining cryptography, decentralization, and cultural memory. The result is a dApp that lets users send encrypted messages or memorial notes that can be retrieved in the future or triggered by specific conditions—like a dead man’s switch or social proof of life.
What it does
Nopalito is a decentralized application (dApp) that allows users to: 🔐 Send Encrypted Messages to themselves or others, stored permanently on-chain using Algorand box storage. 🧾 Leave Memorial Notes that act as time capsules, tributes, or personal messages for future retrieval. ⏳ Trigger Message Release Conditions using programmable mechanisms like dead man switches, time-based unlocks, or social proof-of-life (e.g., periodic YouTube comments). 🧩 Decrypt Messages Securely via a frontend-only decryption interface, where only the correct passphrase and metadata can unlock a message—without requiring wallet access. It's a lightweight, trustless messaging system designed for permanence, privacy, and posthumous or timed communication.
How we built it
Tech Stack and Architecture: The core components and design were instructed to chatgpt, gemini and Bolt. Frontend: Built with React + TypeScript using TailwindCSS for a modern, responsive UI. Wallet connection handled via @txnlab/use-wallet-react with Pera Wallet integration. Messages are compressed using pako.gzip, encrypted with AES-GCM via WebCrypto, and encoded as raw bytes. Smart Contracts (Algorand): Written in PyTeal, compiled and deployed using AlgoKit. Used box storage for scalable encrypted data and local state for metadata mapping (e.g., tx1 → info1a/b/c). Message initialization and recipient setup are grouped into atomic transactions. Decentralized Storage & Triggers: Off-chain metadata and social triggers stored using GunDB. Supports hybrid models for key distribution (e.g., IPFS or Arweave-hosted decryption keys released under certain conditions). Dead man switch logic is modeled via periodic checks (e.g., YouTube comment monitoring) from backend bots. Decryption / Retrieval: A dual-mode decryption page: top half fetches messages via the Algorand Indexer when a wallet is provided; bottom half supports standalone decryption using passphrase + year input only. All decryption is client-side only, preserving full zero-knowledge message privacy.
Challenges we ran into
The AI will pull deprecated information and with constant new releases and protocols in crypto tech it can be extremely frustrating to find out which code meshes with which code. In the end, you can get your project to work but you need to absolutely refer the LLMs to most recent publications.
Accomplishments that we're proud of
End-to-End Encrypted Messaging on Algorand: We successfully implemented a full encryption pipeline—from frontend input to on-chain storage to frontend-only decryption—without relying on any centralized server or key custodian. Dead Man Switch Integration: We built a functioning proof-of-life mechanism using social signals (like YouTube comments) to trigger message release, showcasing a novel use of off-chain behavioral data to drive on-chain action. Maximized Algorand's Storage Model: We pushed the boundaries of Algorand’s local and box storage limits by designing a flexible, 16-slot message layout and transaction sequencing to simulate structured data in a low-storage environment. User-Centric Privacy: We made it possible for a recipient to decrypt a message without ever needing to connect a wallet—preserving privacy while still ensuring message authenticity and permanence. Hybrid Web3 Architecture: By combining GunDB, IPFS/Arweave, and Algorand smart contracts, we demonstrated a new architectural model for trustless apps that live across on-chain and off-chain layers with seamless UX. Fully Functional MVP: We went from ideation to a polished, live MVP that showcases encrypted messaging, memorials, frontend decryption, and future-triggered message logic—all within a dApp framework.
What we learned
Smart Contract Ergonomics: We learned how to structure logic under Algorand’s constraints—navigating between global/local state, box storage, and transaction grouping to create flexible and secure workflows. Encryption + Compression Synergy: By combining pako.gzip compression with AES-GCM encryption and PBKDF2 key derivation, we optimized message size and security while keeping everything client-side and reproducible. Human-Centered Web3 Design: We realized that wallet-first UX can alienate non-crypto users. By enabling standalone decryption and off-chain interaction, we learned to build dApps that feel familiar without compromising decentralization. Hybrid Decentralization: Integrating GunDB and IPFS/Arweave showed us the tradeoffs and strengths of layering decentralized systems—timing, latency, permanence, and indexing all behave differently depending on where data lives. Message Authentication Without Identity: We explored how anonymous messages can still be verified and meaningful, without relying on identity or login, by using cryptographic structure and contextual cues (timestamps, triggers, etc.).
What's next for Nopalito
Automated Key Release Protocols: We plan to build programmable key release tools—e.g., time locks, multi-sig triggers, oracles—that make future message delivery more autonomous and trustless. Mobile dApp: A mobile-optimized version with push notifications for key events (e.g., “message available”) and QR support for memorials and physical world tie-ins. Ceramic QR Memorials: Inspired by Día de los Muertos, we’re prototyping physical tiles with embedded QR codes linked to encrypted memorials on-chain—combining cultural heritage with blockchain permanence. Integration with More Social Triggers: We’re expanding the dead man switch mechanism to include Twitter/X, email replies, or even custom webhook checks. Multi-Language and Region-Specific UX: Localization and cultural UX tuning for Latin America and other regions where remembrance and communication across time are culturally significant. Full DAO Governance: Eventually, we envision Nopalito as a self-governing protocol where users propose and vote on features, storage incentives, and network-wide memorial or messaging standards.
Built With
- algorand
- encryption
- gimp
- gundb
- javascript
- linux
- react
- typescript

Log in or sign up for Devpost to join the conversation.