# NCrypt - Encrypted Messaging

NCrypt is a secure, decentralized Web3 messaging platform designed to provide private, tamper-\
proof, and verifiable communication on the blockchain. By leveraging end-to-end encryption combined with on-chain key management, NCrypt ensures that messages remain confidential and protected from unauthorized access.\
\
All encryption operations are performed locally in the user’s browser. Public encryption keys are\
published on-chain, while private keys remain fully under user control. This architecture eliminates\
centralized intermediaries and significantly reduces the risks associated with traditional messaging platforms.\
\
NCrypt also supports optional read-proof verification, enabling cryptographic confirmation that a\
message has been opened. This makes NCrypt suitable for both everyday private communication\
and use cases requiring verifiable message delivery and reading.

**To use NCrypt, a minimum deposit of 1 GSX is required**, granting access to encrypted messaging features and supporting the platform's decentralized infrastructure. The system utilizes the postman pallet, G6 MW API, and stores data on IPFS or custom solutions.

### Access & Authentication

To use NCrypt, users must authenticate before accessing encrypted messaging features.\
\
**Supported authentication methods:**\
\
• Wallet-based authentication (recommended)\
• Google authentication (non-custodial, optional)\
\
Regardless of the chosen method, encryption keys are generated and managed entirely on the\
client side, preserving privacy and user ownership.

<figure><img src="/files/h3yYoqtenRizBchYGnDw" alt=""><figcaption></figcaption></figure>

### Encryption Key Setup

Before sending or receiving messages, users must configure their encryption keys.

#### Generate Encryption Keys

NCrypt allows users to generate a secure x25519 encryption key pair directly within the application.\
\
• The private key is stored locally in the user’s browser\
• The public key is published on the blockchain\
• A backup phrase is provided and should be stored securely\
\
This key pair is required to encrypt outgoing messages and decrypt incoming messages.

<figure><img src="/files/8PDf3SVILXsXfgSmEn1X" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/SbP1I5AH5NWLQiVWTfuk" alt=""><figcaption></figcaption></figure>

#### Viewing Encryption Keys

After keys are generated, users can view their encryption keys at any time.\
\
**From the NCrypt interface:**\
\
• Click View encryption keys\
• A secure modal opens displaying:\
• Private key (backup phrase) – hidden by default\
• Public key – safe to share and published on-chain\
\
Security warnings are shown to ensure safe handling of sensitive data.

<figure><img src="/files/KNijCi0Yk8ZJC1Fw8xDs" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/sOH02vqvYnpKujd0zYh8" alt=""><figcaption></figcaption></figure>

#### Revoking Encryption Keys

**NCrypt allows users to revoke encryption keys in two different ways:**\
\
**Revoke from Blockchain**\
\
• Removes the public key from the blockchain\
• Prevents others from sending new encrypted messages\
• Private key remains stored locally\
• Keys can be republished later if needed\
\
**Remove from Local Storage**\
\
• Permanently deletes the private key from the browser\
• Existing encrypted messages can no longer be decrypted\
• This action is irreversible\
• Backup phrase is required for recovery

<figure><img src="/files/GaTyT3FX88f3QAgKCtE6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/tgzacN2WzZiZeX3k2rjg" alt=""><figcaption></figcaption></figure>

#### Import Encryption Keys

Users who already possess a backup phrase can import their existing encryption keys. This enables seamless access across devices while maintaining full cryptographic control.

<figure><img src="/files/uimBhmX9bZzk8sTiPaMx" alt=""><figcaption></figcaption></figure>

### Encrypted Messaging

Once encryption keys are configured, users can start secure communication.\
\
**To send a message:**\
\
• Create a new message\
• Specify the recipient’s public address\
• Compose the message

<figure><img src="/files/w2L6OCnZ020m9ynlQLxa" alt=""><figcaption></figcaption></figure>

All messages are encrypted locally before transmission, ensuring that message content is never\
exposed in plaintext.

<figure><img src="/files/vuJpzmZS8Iaxl9MAqlL9" alt=""><figcaption></figcaption></figure>

### Read Proof Messages

NCrypt supports read-proof–enabled messages, providing cryptographic assurance that a message has been opened.\
\
• Senders can enable read-proof protection per message\
• Recipients unlock the message by signing on-chain\
• The read event is verifiable and tamper-proof\
\
This feature enables optionally undisputable communication without revealing message content publicly.

<figure><img src="/files/91MVce6Melxdia6PAfiH" alt=""><figcaption></figcaption></figure>

### Key Lifecycle Management

NCrypt provides full control over encryption keys, allowing users to manage their cryptographic identity over time. Public keys can be published or revoked on-chain, while private keys remain under exclusive user control. This ensures long-term security and flexibility without reliance on centralized key storage.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.gen6.life/user-guides-for-dapps/ncrypt-encrypted-messaging.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
