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.
- 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
Environment variables needed for the Registrar are
FEE_PAYER_MAINNET_MNEMONIC: The Cosmos SDK payer account mnemonic for cheqd Mainnet.FEE_PAYER_TESTNET_MNEMONIC: The Cosmos SDK payer account mnemonic for cheqd Testnet.LOCAL_STORE_TTL(default:600): The time in seconds for the registrar to store data in cachePORT(default:3000): The port numberTESTNET_RPC_URL(default:https://rpc.cheqd.network): RPC URL for cheqd Testnet. This could be an internal RPC endpoint, if you don't use the public endpoint.MAINNET_RPC_URL(default:https://rpc.cheqd.net): RPC URL for cheqd Mainnet. This could be an internal RPC endpoint, if you don't use the default public endpoint or one of the 3rd party publicly available endpoints.RESOLVER_URL(default:https://resolver.cheqd.net): DID Resolver url supporting did:cheqd.ENABLE_FALLBACK_ENDPOINTS(default:false): Enable periodic health checks and automatic fallback.TESTNET_RPC_URL_FALLBACK(optional): Fallback RPC URL for cheqd Testnet.MAINNET_RPC_URL_FALLBACK(optional): Fallback RPC URL for cheqd Mainnet.
Fallback behavior (when enabled):
- On startup, both primary and fallback endpoints are health-checked; if neither network has a healthy endpoint, the service fails fast.
- Every 30 seconds, endpoints are re-checked and health statuses updated.
- Requests use the primary endpoint when healthy; otherwise they use the fallback, and switch back automatically when the primary recovers.
- If a request fails due to an endpoint going unhealthy between checks, a quick reconnect is attempted using the other healthy endpoint.
Clone the repository
git clone [email protected]:cheqd/did-registrar.git
cd did-registrarBuild Docker container image using Dockerfile:
docker build --target cheqd-did-registrar . --tag did-registrar:localRun the Docker container (modify according to your own build tags and other desired parameters):
docker run -it did-registrar:localnpm install
npm run build
npm start 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:
TEST_PRIVATE_KEY: Private key for signing the requestsTEST_PUBLIC_KEY: Corresponding public key
Then execute the tests
npm run test
# if tests fail because of parallelism, run
npm run test -- --workers=1If 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.
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.