Skip to content

Keychat is a chat app, built on Bitcoin Ecash, Nostr Protocol and Signal Protocol.

License

Notifications You must be signed in to change notification settings

keychat-io/keychat-app

Repository files navigation

Keychat APP

DownloadsLast VersionLicense

Keychat is a chat app, built on Bitcoin Ecash, Nostr Protocol, Signal Protocol and MLS Protocol.

Download

About Keychat

  • Senders send messages stamped with Bitcoin ecash to Nostr relays. The Nostr relays collect the Bitcoin ecash, then deliver messages to receivers.
  • Unlike the centralized postal system, Keychat can use multiple Bitcoin ecash issuers and Nostr relays, each maintained by distinct operators.
  • Keychat uses Signal protocol to ensure message encryption security and meta-data privacy.
  • The content of the letter can be exposed easily by opening the envelope. Keychat messages are end-to-end encrypted via Signal protocol, with a unique encryption key generated for each message. Only the sender and receiver can decrypt the message.
  • The addresses of both parties on the envelope can be tracked. In theory, this problem is solved if they change addresses daily. So Keychat reuses Signal protocol to update sending and receiving addresses for nearly every message.
  • Like the postal system, Keychat requires no registration. Users just generate Nostr keys as ID.

Supported Hardware Platform

  • Android
  • iOS
  • macOS
  • Linux
  • Windows

Spec Compliance

Keychat implements the following nips:

Getting Started

git submodule update --init --recursive
dart pub global activate melos 6.2.0
melos bootstrap

# build rust lib: packages\keychat_rust_ffi_plugin\README.md

cd packages/app
flutter devices
flutter run -d xxx

# release
melos run build:ios 
melos run build:android
melos run build:macos

Based On

  • Nostr Protocol: for delivering and storing messages.
  • Ecash Cashu: for paying micropayments to relays (optional), depends on whether relay charges a fee.
  • Signal Protocol: for encrypting messages (end-to-end).
  • MLS Protocol: messaging Layer Security (MLS) is a security layer for encrypting messages in groups of size two to many.
  • AWS S3: for storing encrypted files.
  • Isar DB: a NoSQL database for Flutter for local data storage.
  • flutter_rust_bridge: Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
  • melos: Melos is a CLI tool used to help manage Dart projects with multiple packages
  • rust-nostr: Nostr protocol implementation, SDK and FFI

Star History

The easiest way to support developers is to click on the star (⭐) at the top of the page.

start

License

Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html

About

Keychat is a chat app, built on Bitcoin Ecash, Nostr Protocol and Signal Protocol.

Resources

License

Stars

Watchers

Forks

Packages

No packages published