// USER MANUAL · CONTROL REFERENCE · CLEARANCE: PUBLIC

HopChat

Help & User Guide

[ ML-KEM-1024 · POST-QUANTUM ENCRYPTED · SHOR-RESISTANT ]

// 00 · Quick Start Overview

Getting Oriented

HopChat's interface is organized into two zones: the Message Composer at the top (where you type, attach, and send), and the Action Toolbar below it with buttons for media, contacts, and security controls. The bottom edge of the screen holds five persistent navigation tabs for moving between major app sections.

⬡   Your encryption keypair is displayed in the header as ML-KEM-1024 — this confirms your session is operating at the highest post-quantum security tier. If you do not see this label, tap Generate Private/Public Key Pair to initialize.

// 01 · How to Send a Message

1

Open or Start a Conversation

Tap the Chats tab at the bottom of the screen to see your existing conversations. To begin a new one, tap the New button in the toolbar — this opens the recipient picker where you can search your contacts or enter a HopChat ID manually.

2

Choose Your Recipients

Tap Choose Recipients to add one or more people to your message. You can also tap Contacts to browse your saved HopChat contact list. For group messages, add multiple recipients — each will receive the message via their own encrypted channel.

3

Type Your Message

Tap the message field labelled "Type your secure message here…" and compose your text. The counter below the field shows your current character count out of the 10,000-character maximum per message.

4

Optionally Attach Media or Files

Use the Attach, Camera, Video, or Voice buttons to add files, photos, video clips, or voice notes. All attachments are encrypted client-side before upload — see the Toolbar Reference below for details on each button.

5

Tap Send

Press the Send button. HopChat encrypts your message using the recipient's public ML-KEM-1024 key, advances the Double Ratchet to generate a fresh session key, and transmits the encrypted ciphertext through the zero-knowledge relay. The recipient's device decrypts it locally upon delivery — your message is never readable in transit or at rest on any server.


// 02 · How to Receive a Message

1

Incoming Notification

When a message arrives, HopChat displays a push notification (if enabled). The notification shows only that a message is waiting — it never reveals the sender's name, your name, or any content preview in the notification payload. This is by design.

2

Open the Chats Tab

Tap the Chats icon in the bottom navigation bar. Conversations with unread messages are highlighted. Tap the conversation to open it.

3

Automatic Decryption

HopChat automatically decrypts the incoming message using your local private key the moment you open the conversation thread. No action is required. The decrypted message is displayed and the ratchet key advances, ensuring the next message uses a completely fresh key.

4

Verify Sender Identity (Optional)

Tap on the sender's name or avatar at the top of the conversation to view their public key fingerprint. Compare this fingerprint out-of-band (phone call, in person) to confirm you are communicating with the correct person and that no key substitution has occurred.


// 03 · Toolbar Button Reference

// Composition Controls

New

Opens a blank message composer and launches the recipient selection screen. Use this to initiate a fresh one-to-one or group conversation with any HopChat contact or ID. A new Double Ratchet handshake is performed automatically when the first message is sent.

⬡ Keyboard shortcut: Ctrl + N on desktop

Send

Encrypts the current message composition (text + any attachments) with the recipient's ML-KEM-1024 public key, advances the Double Ratchet session state, and transmits the resulting ciphertext through the zero-knowledge relay. The button is active only when both a recipient and message content are present.

⬡ Messages are encrypted locally before leaving your device
// Contacts & Recipients
👤

Contacts

Opens your HopChat address book — a local, encrypted list of contacts you have verified and saved. Each contact entry stores the person's HopChat ID and their verified public key fingerprint. Your contacts list is stored exclusively on your device and is never synced to HopChat servers.

⬡ Import contacts via QR code scan or manual HopChat ID entry

Choose Recipients

Opens the recipient picker for the current message. Search by HopChat display name or ID, or select from your Contacts. For group messages, add multiple recipients sequentially. Each recipient's public key is fetched and verified before encryption — you will be warned if a key has changed since your last conversation.

⬡ Key-change warnings require your manual re-verification before sending
// Media & Attachments
📎

Attach

Opens your device's file browser to select any document, PDF, spreadsheet, archive, or other file for attachment. Selected files are chunked and encrypted client-side before upload. The server receives only encrypted binary chunks and has no visibility into file type, name, or content.

⬡ Max attachment size: 2 GB per file
📷

Camera

Opens your device camera to capture a new photo directly within HopChat. The captured image is encrypted immediately in memory before being written to any temporary storage — it is never saved to your device's camera roll unless you explicitly save it. Tap to shoot; confirm to attach to the message.

⬡ Images are stripped of EXIF metadata before encryption
🎬

Video

Opens your device camera in video recording mode. Record a clip and confirm to attach it encrypted to your outgoing message. As with photos, video files are encrypted in memory and stripped of metadata before transmission. Long recordings are streamed in encrypted chunks rather than buffered entirely.

⬡ Video clips are encrypted frame-by-frame before upload
🎙

Voice

Records a voice note using your device microphone. Tap once to begin recording (you will see a waveform and timer), tap again to stop. The audio is immediately encrypted and attached to the current message. Voice notes appear as playable waveforms in the recipient's conversation thread.

⬡ Max voice note duration: 10 minutes
// Screen Sharing
🖥

Share My Screen

Initiates a live screen share of your device display to the current call participant. Screen share data is transmitted over the same post-quantum encrypted WebRTC channel as the voice/video call. The remote party can see your screen in real time. Tap again to stop sharing at any moment.

⬡ Available during active voice or video calls only

Ask to Share Screen

Sends the other call participant a request to share their screen with you. They will receive a prompt that they must explicitly accept before their screen becomes visible to you. This button does not force or enable screen sharing on the remote device — consent is always required from the other party.

⬡ Request can be declined at any time by the remote party
// Security Controls

Kill Switch

CRITICAL — IRREVERSIBLE. Activating the Kill Switch immediately and permanently destroys all HopChat data on the device: message history, encryption keys, contact list, session state, and application configuration. There is no recovery, no backup, and no undo. This feature is intended for use in high-risk situations where device seizure or compromise is imminent.

⚠   You will be prompted with a confirmation dialog before the Kill Switch executes. In your Settings, you may configure the Kill Switch to trigger automatically after a specified number of failed authentication attempts. Once activated, your HopChat account and all data are gone — you would need to create a new account and re-verify contacts from scratch.
🔑

Generate Private / Public Key Pair

Generates a new hybrid post-quantum cryptographic keypair on your device: an ML-KEM-1024 (CRYSTALS-Kyber) key for encryption/key-encapsulation and an ML-DSA (CRYSTALS-Dilithium) key for digital signatures. Key generation happens entirely on-device using a cryptographically secure random number generator. Your private key is never transmitted, stored in the cloud, or accessible to HopChat. Use this button to initialize a new account or to rotate your keys if you suspect a compromise.

⬡ Key generation takes approximately 1–2 seconds on modern hardware
⬡   After generating a new keypair, share your new public key fingerprint with your contacts so they can re-verify your identity. Previous conversations encrypted to your old key cannot be decrypted with a new keypair.

// 04 · Bottom Navigation Bar


// 05 · Security Tips

⬡   Verify key fingerprints out-of-band. Before sending sensitive information to a new contact, confirm their public key fingerprint via a phone call or in-person meeting. This protects against man-in-the-middle attacks.
⬡   Enable automatic Kill Switch. In Settings → Security, configure the Kill Switch to activate after 3–5 failed authentication attempts. This protects your data if your device is seized while locked.
⬡   Rotate your keys periodically. Use Generate Private/Public Key Pair every 6–12 months or immediately after suspecting a device compromise. Notify contacts of your new fingerprint afterward.
⬡   Use disappearing messages. For high-sensitivity conversations, enable a short disappearing message timer (30 seconds – 5 minutes). Messages that no longer exist cannot be seized, screenshotted, or subpoenaed.
⬡   Never share your private key. HopChat will never ask for your private key. No legitimate support request will ever require it. Your private key is the only thing that can decrypt your messages — protect it accordingly.

⬡   Full Comparison About FAQ Summary