Skip to content
generated from cheqd/.github

Universal Registrar driver for did:cheqd DID Method

License

Notifications You must be signed in to change notification settings

cheqd/did-registrar

Universal Registrar Driver for did:cheqd

GitHub release (latest by date) GitHub Release Date GitHub license

GitHub release (latest by date including pre-releases) GitHub commits since latest release (by date) GitHub contributors

GitHub Workflow Status GitHub Workflow Status GitHub repo size

ℹ️ Overview

The purpose of this service is to provide a Universal Registrar driver for the did:cheqd DID method. Universal Registrar is a project to provide simple REST APIs for DID creation, update, and deactivation.

📖 Endpoints

  • POST /create
  • POST /update
  • POST /deactivate
  • POST /{did}/create-resource
  • POST /createResource
  • POST /updateResource
  • GET /key-pair
  • GET /did-document
  • GET /properties
  • GET /methods
  • GET /traits

🧑‍💻🛠 Developer Guide

Setup

Environment variable configuration

Environment variables needed for the Registrar are

  1. FEE_PAYER_TESTNET_MNEMONIC : The cosmos payer mnemonic for the Cheqd Mainnet
  2. FEE_PAYER_MAINNET_MNEMONIC : The cosmos payer mnemonic for the Cheqd Tesnet, By default it's the Testnet Faucet
  3. LOCAL_STORE_TTL (default: 600): The time in seconds for the registrar to store data in cache
  4. PORT (default: 3000): The port number

Clone the repository

git clone [email protected]:cheqd/did-registrar.git
cd did-registrar

Running a DID Registrar Using Docker

Build Docker container image using Dockerfile:

docker build --target cheqd-did-registrar . --tag did-registrar:local

Run the Docker container (modify according to your own build tags and other desired parameters):

docker run -it did-registrar:local

Running a DID Registrar Locally

npm install
npm run build
npm start 

🛠 Testing

This repository contains the playwright tests for unit and integration testing. Add any additional tests in the tests directory.

You must set up these two env vars before running test:

  1. TEST_PRIVATE_KEY : Private key for signing the requests
  2. TEST_PUBLIC_KEY : Corresponding public key

Then execute the tests

npm run test
# if tests faile because of parallelism, run
npm run test -- --workers=1

🐞 Bug reports & 🤔 feature requests

If you notice anything not behaving how you expected, or would like to make a suggestion / request for a new feature, please create a new issue and let us know.

💬 Community

Our Discord server is the primary chat channel for our open-source community, software developers, and node operators.

Please reach out to us there for discussions, help, and feedback on the project.

🙋 Find us elsewhere

Telegram Discord Twitter LinkedIn Medium YouTube