Decentralized OpenPGP Identity Proofs library in node/javascript
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Yarmo Mackenbach 4f5e5592f4
ci/woodpecker/pr/test Pipeline was successful Details
ci/woodpecker/pr/publish-npm Pipeline was successful Details
ci/woodpecker/push/test Pipeline was successful Details
ci/woodpecker/push/publish-npm Pipeline was successful Details
fix: ignore non-issues without current solution
4 weeks ago
.husky fix: fix calls to linting 4 weeks ago
.woodpecker fix: Fix CI 2 months ago
dist chore: Release 0.18.3 2 months ago
examples Improve examples 1 year ago
src fix: ignore non-issues without current solution 4 weeks ago
static Add jsdoc documentation 2 years ago
test fix: Apply rome linter fixes 3 months ago
.editorconfig Add editorconfig 2 years ago
.eslintrc.json feat: add linting config 4 weeks ago
.gitignore Ignore docs 2 years ago
.licenseignore feat: Move CI to woodpecker 2 months ago chore: Update CHANGELOG 2 months ago
LICENSE Update year 2 years ago
LICENSE.HEADER Add regex to license check 1 year ago Fix typo 2 years ago
jsconfig.json feat: add linting config 4 weeks ago
jsdoc-lib.json Replace prettier with standard, add husky 2 years ago
license-checker-config.json Add regex to license check 1 year ago
package.json chore: update deps with fixed type definitions 4 weeks ago
rome.json Add rome dependency 3 months ago
yarn.lock chore: update deps with fixed type definitions 4 weeks 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.