Skip to main content

Set up Issuer Node Core API

This article details the steps to set up your own Issuer Node Core API.

caution

The content of the QR code provided by the Issuer or Verifier has changed since the release 2.3.0 of the Issuer node. Instead of sending the JSON information through the QR code, now we provide an embedded link to a page where this JSON is hosted, which improves the application performance. Please check the IDEN3MESSAGE_PARSER.md file for more information on how to parse the new QR code content.

Installation

For an advance configuration of the Issuer Node (RHS, Ethereum Identities and more), visit the Advanced Issuer Node configuration guide.

There are two options for installing and running the server alongside the UI:

  1. Docker Setup Guide
  2. Standalone Mode Guide
note

We encourage the use of Standalone for production environments.

For either one, you first have to clone the repository.

Standalone Mode Guide

Standalone Mode Guide Requirements

Standalone Mode Setup

  1. Env files configuration:

    1.1. Copy the config sample files

cp .env-issuer.sample .env-issuer
cp .env-api.sample .env-api

1.2. Fill the .env-issuer config file with the proper variables

info

For advanced Issuer Node configurations, visit the Advanced Issuer Node configuration guide.

.env-issuer

ISSUER_ETHEREUM_URL=<YOUR_RPC_PROVIDER_URI_ENDPOINT>
ISSUER_DATABASE_URL=<YOUR_POSTGRESQL_DB_INSTANCE>
ISSUER_REDIS_URL=<YOUR_REDIS_INSTANCE>
ISSUER_KEY_STORE_ADDRESS=<YOUR_VAULT_INSTANCE>
ISSUER_SERVER_URL=<PUBLICLY_ACCESSIBLE_URL_POINTING_TO_ISSUER_SERVER_PORT>

1.3. Enable vault authentication

make add-vault-token

1.4. 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 Amoy network you can request some testing Matic here.

make private_key=<YOUR_WALLET_PRIVATE_KEY> add-private-key
  1. Run make build-local. This will generate a binary for each of the following commands:
    • platform
    • platform_ui
    • migrate
    • pending_publisher
    • notifications
  2. Run make db/migrate. This command checks the database structure and applies the necessary changes to the database schema.
  3. Run ./bin/platform command to start the issuer.
  4. Run ./bin/pending_publisher. This checks that publishing transactions to the blockchain works.
  5. (Optional) Run ./bin/notifications. This enables push notifications when issuing credentials to PID Wallet.

Core API specification - http://localhost:3001


How to Set Up Issuer Node UI Guide

Advanced Issuer Node Configuration

Quick Start Demo