We are building the first truly decentralized, zk-anonymous messaging protocol. By combining the strengths of blockchain, encryption, IPFS, and zk-SNARKs, this platform offers military-grade privacy with zero reliance on central entities.
โPrivacy is not a luxury; it's a right.โ
Secura Chain is a blockchain platform built on Substrate that prioritizes privacy and security. It offers:
- Privacy-Preserving Messaging: End-to-end encrypted communication using IPFS for content storage
- Secure Validator System: Participate in network consensus through staking
- Decentralized Architecture: No central authority controlling user data
- Scalable Infrastructure: Built on Substrate for future-proof development
- End-to-end encrypted direct messaging
- Group messaging with access control
- IPFS-based content storage (only CIDs stored on-chain)
- Message expiration and deletion
- Inbox/outbox management
- Secure network participation through staking
- Consensus mechanism using Aura for block production and GRANDPA for finality
- Rewards for validators who maintain network security
- Built on Substrate framework for modular blockchain development
- Custom pallets for messaging and validation
- FRAME runtime for flexible blockchain composition
- Rust and Cargo (latest stable version)
- IPFS daemon (for messaging functionality)
- Git
- Clone the repository:
git clone https://github.com/SecuraChain-Official/secura-chain.git
cd secura-chain- Build the project:
cargo build --releaseStart a development node:
./target/release/secura-chain-node --devStart a node with persistent state:
./target/release/secura-chain-node --dev --base-path ./my-chain-state/Purge chain state:
./target/release/secura-chain-node purge-chain --devYou can interact with the network using the Polkadot/Substrate Portal:
Send an encrypted message:
- Encrypt your message using the recipient's public key
- Upload the encrypted content to IPFS
- Send the IPFS CID to the recipient through the blockchain
// Client-side example
async function sendMessage(api, ipfs, recipientId, messageContent, recipientPublicKey) {
// Encrypt the message
const encryptedContent = encrypt(messageContent, recipientPublicKey);
// Upload to IPFS
const result = await ipfs.add(encryptedContent);
const cid = result.cid.toString();
// Send to blockchain
return await api.tx.messaging.sendMessage(recipientId, cid).signAndSend(sender);
}Create and manage secure group conversations:
- Create a group with initial members
- Encrypt messages for all group members
- Share the IPFS CID through the blockchain
// Client-side example
async function sendGroupMessage(api, ipfs, groupId, messageContent, groupPublicKeys) {
// Encrypt the message for each group member
const encryptedContent = encryptForGroup(messageContent, groupPublicKeys);
// Upload to IPFS
const result = await ipfs.add(encryptedContent);
const cid = result.cid.toString();
// Send to blockchain
return await api.tx.messaging.sendGroupMessage(groupId, cid).signAndSend(sender);
}- Node: Handles networking, consensus, and RPC server functionality
- Runtime: Implements the state transition function using FRAME
- Pallets:
- Messaging: Provides privacy-preserving communication
- Template: Base for custom functionality
Secura Chain's privacy model is based on:
- Client-side encryption of all message content
- On-chain storage of only IPFS CIDs, not actual content
- Access control through public key cryptography
- Message expiration and deletion capabilities
secura-chain/
โโโ docs/ # Documentation
โโโ env-setup/ # Environment setup tools
โโโ node/ # Node implementation
โ โโโ src/ # Node source code
โโโ pallets/ # Custom pallets
โ โโโ messaging/ # Privacy-preserving messaging
โ โโโ template/ # Template for new pallets
โโโ runtime/ # Runtime implementation
โโโ ...
To add new features to Secura Chain:
- Create a new pallet or extend existing ones
- Implement the required functionality
- Update the runtime to include your changes
- Test thoroughly before deployment
Run the test suite:
cargo testContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache-2.0 - see the LICENSE file for details.
- Mobile client application
- Enhanced privacy features
- Cross-chain messaging capabilities
- Governance system for protocol upgrades
- Integration with existing privacy tools
- Message content is encrypted client-side before being uploaded to IPFS
- Only the intended recipients have the decryption keys
- The blockchain only stores CIDs and manages access control
- Consider implementing IPFS pinning management for content persistence
- For group messages, implement multi-recipient encryption
For questions or support, please open an issue on GitHub or contact the team at info@secura.tech.