Inspiration
We live in a digital world where sensitive information is constantly at risk. Journalists, lawyers, doctors, and everyday users rely on messaging apps that claim to be secure but still depend on centralized servers vulnerable to hacks, leaks, and censorship.
We wanted to build a system where privacy cannot be taken away, even by the creators of the platform. This inspired us to combine Web3 authentication, client-side encryption, and decentralized storage to create a messaging platform that no one can censor, spy on, or shut down.
What it does
SecretDot enables users to send and receive encrypted messages and files directly through their blockchain wallets, without relying on centralized servers.
Users can:
- Connect their wallet
- Publish their public key (only if they want to receive messages)
- Send encrypted messages or files to any wallet address
- View their Inbox and Sent messages in a clean UI
All encryption happens on the client, data is stored decentralized, and only the recipient — the owner of the private key — can decrypt the content.
How we built it
We built SecretDot using a combination of:
- Polkadot for multichain interoperability
- Polkadot.js / Web3.js for wallet connections and authentication
- Client-side cryptography to guarantee end-to-end privacy
- Smart contracts to publish and reference encrypted data
- A React + Vite frontend for performance and simplicity
- Planned integration with IPFS for encrypted storage of larger inputs
The browser handles encryption, message creation, and decryption. The blockchain stores references and encrypted payloads, ensuring decentralization and censorship resistance.
Challenges we ran into
- Designing an architecture where the platform never accesses user data
- Keeping wallet onboarding smooth, especially for Polkadot newcomers
- Ensuring encrypted payloads remain small enough for on-chain use
- Coordinating smart contracts, cryptography, and UX without compromising speed
- Thinking through multichain compatibility in a seamless way
Accomplishments that we're proud of
- Delivering a working MVP of true decentralized encrypted messaging
- Implementing client-side encryption in a smooth, user-friendly flow
- Creating a clear UI that hides the complexity of blockchain interactions
- Building a foundation for a secure, cross-chain communication protocol
What we learned
- How to make security and usability work together instead of competing
- How Polkadot wallet interactions function in real-world scenarios
- The strengths and limitations of client-side cryptography
- The challenges of storing or referencing encrypted content on-chain
What's next for SecretDot
- 🔐 Encrypted IPFS storage for large files
- 🔔 Push notifications for new messages
- 📱 Mobile apps (iOS / Android)
- 🖼️ Support for multiple file types
- 🛡️ Unauthorized access detection
- 🌐 More wallets, more chains
- 🧠 Exploration of zero-knowledge proofs for metadata privacy (e.g., hiding sender/receiver relationships)
Built With
- next.js
- node.js
- solidity
- typescript
Log in or sign up for Devpost to join the conversation.