Decentralized OpenPGP Identity Proofs library in node/javascript
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin Sweeny 76ef11e6f4
chore: update license
9 months ago
.husky Replace prettier with standard, add husky 1 year ago
dist Release 0.14.0 1 year ago
docker/proxy Improve docker builds 1 year ago
examples Improve examples 10 months ago
src chore: update license 9 months ago
static Add jsdoc documentation 2 years ago
test Update code to openpgpjs 5 syntax 10 months ago
.drone.yml Fix drone config 1 year ago
.editorconfig Add editorconfig 2 years ago
.gitignore Ignore docs 2 years ago
.licenseignore Update license checker 1 year ago Add examples 1 year ago
LICENSE Update year 2 years ago
LICENSE.HEADER Update year 2 years ago Fix typo 2 years ago
jsdoc-lib.json Replace prettier with standard, add husky 1 year ago
license-checker-config.json Update license checker 1 year ago
package.json Bump openpgpjs version, add deps 10 months ago
yarn.lock Bump openpgpjs version, add deps 10 months ago


doip.js allows websites and Node.js projects to verify decentralized online identities based on OpenPGP.

Source code available at

Documentation available at


  • Verify online identities using decentralized technology
  • Based on OpenPGP, a widely-used cryptographic standard
  • Regex-based service provider detection
  • Mocha tests

Installation (node)

Install using yarn or npm:

yarn add doipjs
# or
npm install --save doipjs

Import the doip module in your code:

const doip = require('./doipjs')

Installation (browser)

Include the following HTML snippet (requires openpgp.js):

<script src="/static/openpgp.min.js"></script>
<script src="/static/doip.min.js"></script>


Run the following javascript:

const verifyIdentity = async (url, fp) => {
  const claim = new doip.Claim(url, fp)
  await claim.verify()
verifyIdentity('', '9f0048ac0b23301e1f77e994909f6bd6f80f485d')

This snippet works and will verify the domain as bidirectionally linked to Yarmo's cryptographic key.

About Keyoxide

Keyoxide, made by Yarmo Mackenbach, is a modern, secure and privacy-friendly platform to establish decentralized online identities using a novel concept know as DOIP. In an effort to make this technology accessible for other projects and stimulate the emergence of both complementary and competing projects, this project-agnostic library is published on and open sourced under the Apache-2.0 license.


There's a Keyoxide Matrix room where we discuss everything DOIP and Keyoxide.


Please consider donating if you think this project is a step in the right direction for the internet.


This library was realized with funding from NLnet.