Practical overview
When it fits
Use ncdns when you need a DNS nameserver to retrieve Namecoin zone data from a Namecoin node and serve it to a recursive resolver or stub-zone configuration.
Who it is for
- Operators configuring DNS resolution for Namecoin names.
- Administrators integrating Namecoin zones with Unbound or another recursive resolver.
- Developers building or adapting Namecoin-to-DNS infrastructure.
Documented uses
- Serve Namecoin zone records through an authoritative nameserver.
- Connect a recursive resolver to Namecoin zone data through a stub-zone setup.
- Optionally sign served zones with DNSSEC and provide a KSK trust anchor to Unbound.
- Serve names containing a “bit” label with an alternate suffix.
Requirements & limits
The project is available as a public GitHub repository under the GPL-3.0 license.
- A Namecoin node with JSON-RPC enabled is required, and ncdns needs the interface address and any required credentials.
- The README recommends pairing ncdns with Unbound or another recursive resolver, or using it as an authoritative nameserver for a stub zone.
- DNSSEC requires generating a KSK and ZSK; for Unbound validation, the KSK public key is configured as a trust anchor.
- Serving alternate suffixes can change the hostname transmitted by HTTP and may require web-server configuration changes.
- The README documents a Go modules build path for Go 1.15 or later; Linux also requires libcap development headers.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build ncdns with Go modules
Build the ncdns binaries from a local source checkout using the README's Go modules procedure.
Before you start
- Go 1.15 or later
- Bash
- A local clone of the ncdns repository
- On Linux, libcap development headers
Steps
Clone the ncdns repository.
In the repository directory, run the command below.
go mod init github.com/namecoin/ncdnsRun the command below.
go mod edit -replace github.com/coreos/go-systemd=github.com/coreos/go-systemd/v22@latestRun the command below, then the command below.
go mod tidygo install ./...
Expected outcome
The README says the binaries are built in `$GOPATH/bin/ncdns`.
Guide limitations
- The instructions specify Bash and Go 1.15 or later.
- Linux builds require libcap development headers.
Configure DNSSEC keys for an Unbound trust anchor
Generate ncdns DNSSEC signing keys and configure the KSK public key as an Unbound trust anchor.
Before you start
- A configured ncdns deployment
- The
dnssec-keygenorldns-keygenutility - Unbound, if configuring a resolver trust anchor
Steps
Generate a key-signing key with
dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit.Generate a zone-signing key with
dnssec-keygen -a RSASHA256 -3 -b 2048 bit.Identify the KSK public
.keyfile and configure ncdns to use the DNSSEC keys.For Unbound, add the KSK public key file as a
trust-anchor-fileunder itsserverconfiguration.
Expected outcome
The documented configuration makes the KSK public key available to Unbound as a trust anchor for the ncdns-signed zone.
Guide limitations
- DNSSEC is optional.
- The README notes that
bitshould be used as the key name when the key is intended as an Unbound trust anchor.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 11 October 2026
- Original website title
- namecoin/ncdns · Official homepage title · retained in its source language

