Handshake logo
 \/\::/  /
   /:/  / 


Handshake is a UTXO-based blockchain protocol which manages the registration, renewal and transfer of DNS top-level domains (TLDs). Our naming protocol differs from its predecessors in that it has no concept of namespacing or subdomains at the consensus layer. Its purpose is not to replace DNS, but to replace the root zone file and the root servers.

The full node daemon, hsd, is written in Javascript and is a fork of bcoin. By running a full node, you can participate in securing the network and serving the root zone file embedded in the blockchain.

We also have a SPV client, hnsd, which is written in C. It acts as a light client to the blockchain, as well as a recursive name server. It can serve provable resource records and verify payments without having the resource requirements of a full node.

By installing and/or contributing to Handshake, you are participating in a decentralized open platform owned by the commons.

Source Code

The latest source code is available on GitHub under the MIT license.

Security Audit

The protocol and implementation are being audited by a team led by Dr. Matthew Green of John Hopkins University. Dr. Green has previously led audits on the libsodium crypto library and the Truecrypt disk encryption project. He is also a co-author of both the Zerocoin and Zerocash papers. He is also a research scientist for the Zcash Company and shares his thoughts on cryptographic engineering on his blog.


Handshake utilizes a utility coin system for name registration. Handshake depends on the free and open source community to take ownership and decentralize the system https://handshake.org.

Mailing List

You can subscribe to the GNU Mailman mailing list by e-mailing ‘subscribe’ to devs@handshake.org.


A community IRC channel exists on Freenode in irc.freenode.net:#handshake.

See a mistake? Open a pull request.