dnkey

DNKs (Doman Name Keys) provide a standardized way in which to broadcast public keys via DNS TXT records. This is especially useful for Bitcoin and other cryptographic addresses, where instead of having to remember over thirty seemingly random characters.


License
MIT
Install
gem install dnkey -v 0.1.0

Documentation

dnkey

DNKs (Doman Name Keys) provide a standardized way in which to broadcast public keys via DNS TXT records. This is especially useful for Bitcoin and other cryptographic addresses, where instead of having to remember over thirty seemingly random characters.

This is a ruby gem/library to easily retrieve DNKs from a domain.

Installation

Add this line to your application's Gemfile:

gem 'dnkey'

And then execute:

$ bundle

Or install it yourself as:

$ gem install dnkey

Usage

Generic API usage

Dnkey::API.get('mark.neuroware.io', :key => :btc, :nameservers => ['8.8.8.8'])

Domain Specifc Language

We have a number of baked-in classes to help out in the more common use cases (like getting a bitcoin key).

For example, if you'd like to get the bitcoin key from the domain mark.neuroware.io you can call:

Dnkey::Bitcoin.get('mark.neuroware.io)
  #=> ["1M4VYf837vbKc9mJxqGdM2w1xPmZNDXdGa", "33aaehx6p4QrTHMvQUZy3dTEevXr4Wprap"]```

We have built-in support for the following dnkeys:

  • Bitcoin (:btc)
  • Litecoin (:ltc)
  • Dogecoin (:doge)
  • Dashcoin (:dash)
  • Email (:email)

We'll be adding more dnkey-specific classes later on, PRs are welcome!

You can also get all dnkeys from the domain using:

Dnkey::API.get_all('mark.neuroware.io')
  #=> {
        :btc   => ["1M4VYf837vbKc9mJxqGdM2w1xPmZNDXdGa", "13aaehx6p4QrTHMvQUZy3dTEevXr4Wprap"],
        :email => ["mark@neuroware.io"],
        :ltc   => ["LMUN5ZPQCym1sz2XxbunhWsfwJc5nKfANN"],
        :doge  => ["DNvyxwdSTuzhXmHye6PbGvGWk5EEEZvXpF"],
        :dash  => ["XeRsLXWVjdnc92AC16zh2segmAbyBZ5Qkt"]
      }

It will return a hash with the dnkey as the key and the value as an array of the values.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

  1. Fork it ( https://github.com/Neuroware-IO/dnkey-rubyy/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request