/solchat

A privacy-first, end-to-end encrypted messaging app built for the Solana ecosystem. No servers. No emails. Just wallet-to-wallet communication — permanent or ephemeral, your choice.

Primary LanguageTypeScript

SolChat ✨

MIT License Last Commit Repo Size Stars TypeScript Svelte JavaScript CSS

SolChat is a secure, decentralized peer-to-peer messaging application built on the Solana blockchain. It features end-to-end encryption, decentralized file sharing, and a modern UI, providing a private and robust communication experience.


🚀 Features

🔐 Secure Messaging

  • End-to-end encrypted messages using TweetNaCl.
  • Messages stored locally with optional IPFS integration.
  • Seamless wallet-based authentication (Phantom, Solflare, Backpack).

👥 User Management

  • Custom usernames and editable profiles.
  • Recent peers list with real-time status indicators.
  • Nickname support for easier peer identification.

📁 File Sharing

  • Share images, PDFs, and other documents securely.
  • Built-in image preview modal.
  • IPFS-backed decentralized file storage.

💻 UI & UX

  • Responsive design for mobile and desktop.
  • Real-time message status updates.
  • Intuitive peer selection and chat interface.

🛠️ Prerequisites

  • Node.js v18+
  • npm or Yarn
  • Git (recommended)
  • A Solana Wallet (e.g., Phantom browser extension)

📦 Installation

git clone https://github.com/solchat-dev/solchat.git
cd solchat
npm install
# or
yarn install

Configuration

  • Modify the RPC endpoint and cluster config in src/index.ts (or equivalent).
  • Ensure the correct on-chain chat program address is set in src/idls/solchat.json:
    "metadata": {
      "address": "<your-program-address>",
      "origin": "anchor"
    }

Generate TypeScript Types

npm install -g typescript ts-node
ts-node generate.ts

🚀 Usage

Start the development server:

npm start
# or
yarn dev
  1. Connect your Solana wallet via the "Select Wallet" button.
  2. Set your username when prompted.
  3. Start messaging by entering a Solana address or selecting a recent peer.
  4. Attach files via the paperclip icon. Image previews are supported.
  5. Manage contacts and nicknames from the peers panel.

⚙️ Tech Stack

Frontend

  • React 18 + TypeScript
  • Tailwind CSS
  • Vite

Blockchain

  • @solana/web3.js
  • @solana/wallet-adapter

Storage & Encryption

  • IPFS / Helia
  • TweetNaCl
  • LocalStorage

📜 License

Licensed under the MIT License.


Made with ❤️ by the SolChat team.