Decentralized Messenger with Social Key Recovery
Zero servers • Rolling-chain encryption • UDP + TCP
Version: Stelor · Updated: 2026-01-16
One-line installer downloads pre-built binaries and creates shortcuts.
Linux/macOS/Redox:
curl -sSfL https://brobdingnagian.holdmyoscilloscope.com/photon/install-release.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://brobdingnagian.holdmyoscilloscope.com/photon/install-release.ps1 | iex"
For debugging. Logs to file on Windows/macOS, stdout on Linux.
Linux/macOS/Redox:
curl -sSfL https://brobdingnagian.holdmyoscilloscope.com/photon/install-development.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://brobdingnagian.holdmyoscilloscope.com/photon/install-development.ps1 | iex"
After install, find Photon Messenger
in your program list
(Start Menu on Windows, app launcher on Linux).
Or run photon-messenger from terminal.
Why cryptographic signatures?
Every binary is signed with Ed25519 and
self-verifies on startup. This mostly protects against data corruption (bit flips, incomplete writes, storage failures) and tampering. If even a single bit is wrong, the binary won't run—ensuring you're always running the exact code as designed. You'll also know who signed the distribution, establishing cryptographic provenance and an immutable audit trail.
Watch how rolling-chain encryption evolves with each message. Every message is cryptographically bound to
all previous messages—no replay attacks, no reordering,
no tampering. The chain state only advances once the
sender receives confirmation that the message was
received and decrypted successfully. Multiple messages
can be sent using the same chain state, and they're
processed in order once receipts arrive—keeping both
sides synchronized even during network disruptions.
Photon is a decentralized messaging system that eliminates corporate servers, phone numbers, and centralized control. All messages are end-to-end encrypted with rolling-chain cryptography.
No company servers. No data centers. Messages route peer-to-peer thru distributed hash tables. Can't be shut down, can't be subpoenaed.
Your identity is distributed as encrypted shards across trusted friends. Lose all devices? They reconstruct your identity.
Each message affects encryption of all subsequent messages. Position-bound cryptography prevents replay and reordering attacks.
Messages, transfers and calls travel directly between devices over UDP. No servers in the middle, no routing through data centers, no third-party metadata collection.
Set custom expiration times or delete messages manually. Deleted/expired messages replaced with tombstones to preserve chain integrity.
Read receipts, typing indicators, online status are disabled by default. Features that reveal behavior or identity require opt-in.
| Property | SMS | Signal | Telegram | Messenger | Matrix | Photon | |
|---|---|---|---|---|---|---|---|
| Authentication count | >1 | >1 | >1 | >1 | >1 | >1 | 1 |
| E2EE by default | ✗ | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ |
| Decentralized | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
| Social recovery | ✗ | ✗ | ✗ | ✗ | Partial* | ✗ | ✓ |
| Metadata privacy | ✗ | Partial | ✗ | ✗ | ✗ | Partial | ✓ |
| Self-sovereign data | Local*** | ✗ | ✗ | ✗ | ✗ | Partial | ✓ |
| Multi-device sync | ✗ | ✗ | Cloud | Cloud | Cloud | Federation | Decentralized |
| Phone number required | Yes | Yes | Yes** | Yes | No | No | No |
| Open source | N/A | ✓ | ✗ | Client only | ✗ | ✓ | ✓ |
| Immutability | Local*** | ✗ | ✗ | ✗ | ✗ | Partial | Full |
* Partial social recovery: Facebook Messenger allows selecting 3-5 "trusted contacts" who can help recover your account. They receive codes to give you. This requires Facebook account access and doesn't work if Facebook locks you out. Facebook controls the keys.
** WhatsApp phone-only recovery: Account tied to phone number via SMS. If carrier invalidates your SIM (account closure, porting hijack, lost abroad), you're permanently locked out. No alternative recovery. Worse than no recovery system because it creates false sense of backup.
*** SMS local-only: Messages stored only on device. No cloud backup, no server storage, no synchronization. Messages immutable on your device but can be deleted by carrier, lost with device, modified on recipient's device, or trivially spoofed (sender ID is not authenticated).
About Immutability:
Message immutability means conversations cannot be altered, deleted, or reordered after transmission without cryptographic evidence of the modification. This prevents gaslighting, protects against retroactive censorship, and establishes verifiable provenance for disputes.
Most platforms let senders delete messages from both sides, edit history silently, or revoke entire conversations. "Unsend" features sound convenient until someone deletes evidence of harassment, agreements, or admission of wrongdoing. Courts can't subpoena deleted Signal messages. Businesses can't prove contract terms discussed over WhatsApp if the other party unsends them.
Photon supports deletion as a convenience feature, but rolling-chain encryption makes any modification cryptographically detectable—each message is mathematically bound to all previous messages. Deleting or editing requires consent from both parties and leaves verifiable proof in the chain. Your conversation history becomes cryptographic evidence. No "he said / she said"—the mathematics documents everything, and maths don't lie.
For a conversation between Ada and Turing, each party maintains two independent unidirectional chains:
state₀ = BLAKE3(seed)stateAda→Turing and sends to TuringstateAda→Turing sending chainstateᵢ = BLAKE3(stateᵢ₋₁ ‖ ciphertext)Unlike Signal's Double Ratchet (which advances immediately), rolling-chain requires completing the loop before advancing thus guaranteeing message order and immutability.
Your 256-bit private key is split into overlapping shards distributed across trusted friends:
Photon uses a custom distributed hash table for discovery:
Identity is human-readable: message fractal decoder instead of 68325246092135005593188004702279567398142131080053653706547690190910173287891.
Names are bound cryptographically to public keys via deterministic DHT addressing—no DNS, no blockchain, no registration fees.
Early Development — Core infrastructure functional, messaging in progress.
What Works
In Progress
Currently invite-only. You can register a device and test messaging, but handles aren't guaranteed until the invite system is complete—peer records may be wiped during development.
License: MIT OR Apache-2.0 (dual)
Repository: github.com/nickspiker/photon