Streamline the Verifiable Credentials issuance process with the user-friendly API and UI of the Issuer Node within the Polygon ID ecosystem. The on-premise (self-hosted) Issuer Node, seamlessly integrated with a robust suite of tools including the mobile Wallet, Schema Builder, and Credential Marketplace, guarantees a frictionless experience for effortlessly issuing and verifying credentials.
Features:
- Create Issuer Identities.
- Issue VCs.
- Revoke VCs.
- Fetch VCs.
- Transit Issuer's state.
- Create Issuer-User connections.
- Issuer's UI.
Note
The provided installation guide is non-production ready. For production deployments please refer to Standalone Mode Guide.
There is no compatibility with Windows environments at this time. While using WSL should be ok, it's not officially supported.
- Unix-based operating system (e.g. Debian, Arch, Mac OS)
- Docker Engine
1.27+
- Makefile toolchain
GNU Make 3.81
- Publicly accessible URL - The issuer node API must be publicly reachable. Please make sure you properly configure your proxy or use a tool like Localtunnel for testing purposes.
- Polygon Mumbai or Main RPC - You can get one in any of the providers of this list
In this section we will cover the installation of the Issuer Node API.
Note
This Quick Installation Guide is prepared for Polygon Mumbai (Testnet) both for the state contract and issuer dids. If you want to deploy the node with Polygon Main configuration, please visit our advanced Issuer Node configuration guide).
-
Copy the config sample files:
cp .env-issuer.sample .env-issuer cp .env-api.sample .env-api
-
Fill the .env-issuer config file with the proper variables:
.env-issuer
ISSUER_ETHEREUM_URL=<YOUR_RPC_PROVIDER_URI_ENDPOINT>
-
Start the infrastructure:
make up
-
Enable vault authentication:
make add-vault-token
-
Write the private key in the vault. This step is needed in order to be able to transit the issuer's state. To perform that action the given account has to be funded. For Mumbai network you can request some testing Matic here.
make private_key=<YOUR_WALLET_PRIVATE_KEY> add-private-key
Troubleshooting:
In order to stop and delete all the containers.
Warning
This will permanently delete all data, making it necessary to create an Issuer DID again.
make down
If you experience problems with the vault, follow these commands:
docker stop issuer-vault-1 // Stops the container issuer-vault-1
docker rm issuer-vault-1 // Removes container issuer-vault-1
make clean-vault // Removes all the data in the vault, including the token
make up // Starts the database, cache and vault storage (i.e, postgres, redis and vault)
Wait 20 secs so the vault can boot and generate a token.
make add-vault-token // Adds the generated token to the ISSUER_KEY_STORE_TOKEN var in .env-issuer
make private_key=<YOUR_WALLET_PRIVATE_KEY> add-private-key // Stores the private key in the vault
The issuer node is extensively configurable, for a detailed list of the configuration, please visit our detailed configuration guide.
-
Fill the .env-issuer config file with the proper variables:
.env-issuer
ISSUER_API_AUTH_USER=user-issuer ISSUER_API_AUTH_PASSWORD=password-issuer ISSUER_SERVER_URL=<PUBLICLY_ACCESSIBLE_URL_POINTING_TO_ISSUER_SERVER_PORT>
-
Run api:
make run
Core API specification - http://localhost:3001/
Troubleshooting:
Restart the api.
make restart-api
In this section we will cover the installation of the Issuer Node UI, before continuing with these steps, make sure that you have followed the Deploy Issuer Node Infrastructure section before continuing.
In order to make the UI work, we will need configure some env variables in the .env-api
file
-
Copy .env-ui sample file and fill the needed env variables:
cp .env-ui.sample .env-ui
.env-ui
ISSUER_UI_AUTH_USERNAME=user-ui ISSUER_UI_AUTH_PASSWORD=password-ui
.env-api
ISSUER_API_UI_SERVER_URL={PUBLICLY_ACCESSIBLE_URL_POINTING_TO_ISSUER_API_UI_SERVER_PORT}
-
Generate Issuer DID:
make generate-issuer-did
-
Run UI:
make run-ui
API UI specification - http://localhost:3002/
Troubleshooting:
Restart the ui:
make restart-ui
This Quick Start Demo will walk you through the process of issuing and verifying your first credential.
Warning
Demo Issuer and Verifier Demo are for testing purposes only.
- Schema Builder - Create your custom schemas to issue VC.
- Demo Issuer UI - Test our Issuer Node UI.
- Verifier Demo - Verify your VCs.
- Polygon ID Android Mobile App
- Polygon ID IOS Mobile App
- Marketplace - Explore credentials submitted by trusted issuers.
See LICENSE.