A server-less, secure and private chat for individuals and groups
D-Chat is one of the highlights of NKN consumer applications, developed by community developer Lynn. It utilizes and showcases a wide spectrum of NKN’s platform products and SDKs, including:
- Use NKN’s decentralized PubSub service to deliver group messages
- Use Multi-client SDK to optimize the speed and latency of delivery
- Use secure end to end encryption to enable private chat called Whisper.
Unlike any other mainstream consumer chat applications such as WhatsApp, Facebook Messenger or WeChat, D-Chat does not use or rely on a single centralized server. The entire application lives on your browser plug-in, and all your data are safe on your own device.
And in contrast to many blockchain based chat applications, D-Chat uses off-chain data transmission instead of on-chain data. This means we can send any number of messages and even large image files (up to 4MB), without worrying about blockchain data limit or consensus time.
It supports all Chromium based browsers as a plug-in, such as
- Google Chrome
- Mozilla Firefox
D-Chat is designed for high quality functionality, optimized performance, and minimalist user interface. The user experience is straightforward and delightful. In some people’s opinion, it has the original IRC chat vibes.
You can install D-Chat for your favorite browser from these links:
- Firefox: https://addons.mozilla.org/en-US/firefox/addon/d-chat/
- Chrome/Brave: https://chrome.google.com/webstore/detail/d-chat/glnmkakdjcognfgonjfcklpmjiobijii
Key features: a walk through
When you open D-chat from your web browser either as pop up or in a separate tab, you can find a clean two panel interface. On the left is the narrower menu panel, while the right the main content panel.
Here you will find the NKN address (contact address), wallet address, wallet balance, and D-Chat software version. You can directly join a group chat if you know its name, or start a private message if you know your correspondent’s NKN address.
The channel d-chat (all lower case) is a popular channel for newcomers to join, introduce themselves, and seek help.
List of Channels (public groups)
This page displays a list of Channels or public groups, as well as provide a form to submit your own Channel.
Channel or Group chat
This is the main page where you participate and engage in a group chat, by subscribing to a channel. So we will use Channel and Group interchangeably.
Every member of the channel is represented by a nickname, a dot, and the first 8 digits of its NKN address. Your own ID is red, to distinguish yourself from other members. At the bottom there is a text input field to type in your message, which supports multiple lines. There are also options to send emoji, photos, videos, or animated GIFs with the limit of 4MB. You can preview your message if you are using MarkDown syntax.
Supporting Markdown syntax for messages
D-chat supports Markdown syntax as illustrated above. For a tutorial on how to use Markdown, you can check “The Markdown Cheatsheet”.
Supporting multimedia messages
You can also send photos, short videos, and animated GIFs up to 4MB.
Support tipping with NKN
If you want to welcome a new member or reward a member, you can tip with NKN. This is handy both to show appreciation, but also to give newcomers a small amount of NKN to play with such as subscribing to a new channel or use it for nCDN services. It replaces a centralized NKN faucet, and makes it decentralized.
Listing members of a Channel or Group Chat
From the top right corner, you can expand the entire member list for the current channel. Thus you can find out the NKN addresses of all participants, as well as engage in a private chat with one of them.
@ mention a channel/group member
You can click on any user’s short name, e.g. Lynn.747068 to @ mention them, which is similar to “reply to” function.
Whisper or private p2p messaging
Please bear in mind that any Channel or Group discussions are public, and everyone in the channel can see. In order to engage in a private and secure one-on-one conversation, you will use the “Whispers” mode. It is like snapchat, an encrypted messaging service between two clients (client can be human or machine).
By default, NKN enables end to end encryption between clients. In addition, we can enable hop by hop encryption between NKN relay nodes.
D-Chat to control machines and IoT
In Whisper or private chat, you can even chat with a machine. For example, in this screenshot, we are able to control a remote NKN seed node using NKN Shell (nsh). More details can be found in our Hackernoon article “nsh: a more secure and convenient remote shell than ssh”.
Since each D-Chat is a NKN client, you have an account associated with a NKN wallet and NKN address. Here you can import, export, and create a new account.
The road ahead
We asked Lynn about his future plans for D-Chat, and here are some rough ideas. “Anyhow, I would like to add a forum feature, which would work like a distributed forum, where creating a thread would cost a coin or two, and the coins would be paid to anybody that is sharing the board data to other users, so as to incentivize the distributed part.”
In addition, NKN team have been hard at work to bring D-Chat to mobile users. We are working on both Android and iOS apps that can combine the NKN wallet with D-Chat. And we are working closely with Lynn to ensure interoperability between the mobile version and the browser plug-in versions. So stay tuned!
Welcome NKN App developers
A vibrant NKN ecosystem needs a rich suite of great applications. D-Chat is one of the best applications out there, in terms of both consumer friendliness as well as its utilization of NKN’s decentralized technology.
NKN foundation uses its unlocked Developer funds to reward outstanding community contributions, such as the recent 500,000 NKN reward to nknx.org team as announced in “Special Community Award for nknx.org Community Project”.
Please join Lynn and D-Chat, and become a NKN developer today!
NKN is the new kind of P2P network connectivity protocol & ecosystem powered by a novel public blockchain. We use economic incentives to motivate Internet users to share network connection and utilize unused bandwidth. NKN’s open, efficient, and robust networking infrastructure enables application developers to build the decentralized Internet so everyone can enjoy secure, low cost, and universally accessible connectivity.