Prerequisites
Before you begin, make sure you have the following installed:- Docker and Docker Compose — Install Docker
- Node.js v18.17.0 or later — Install Node.js
- pnpm v9.15.3 or later — comes pinned in
package.json - NestJS CLI — used to start individual microservices
Clone and install dependencies
Clone the platform repository and install all Node.js dependencies using pnpm.
Start infrastructure services
The Start NATS and Redis:The services expose the following ports:
docker-compose.yml at the repository root starts NATS (message broker) and Redis (cache/queues). PostgreSQL is run separately via Docker.Start PostgreSQL:| Service | Port(s) |
|---|---|
| PostgreSQL | 5432 |
| NATS | 4222, 6222, 8222 |
| Redis | 6379 |
NATS is the message bus that all microservices use to communicate. It must be
running before you start any service.
Configure environment variables
Copy the sample environment file and populate it with your local values.At minimum, set the following variables in your
The repository includes
.env.sample with all available variables and inline comments.
The API Gateway reads API_GATEWAY_PORT (defaults to 5000) and API_GATEWAY_HOST
at startup, along with NATS and database connection details..env file:Run database migrations and seed data
Generate the Prisma client and push the database schema, then seed the initial master data.Seed the initial data (ledger entries, roles, and platform defaults):
The
start script in package.json also runs npx prisma migrate deploy
automatically before launching the API Gateway, so in production you can use
npm run start to handle migrations.Start the API Gateway and microservices
Open a separate terminal window for each service. Start the API Gateway first, then bring up the remaining microservices.API Gateway (terminal 1):For development with live-reload:Core microservices — each in its own terminal:
Access the Swagger UI
Once the API Gateway is running, open your browser and navigate to:The Swagger UI lists every available endpoint, grouped by resource. You can explore and test all APIs directly from this interface. The gateway serves API routes under URI-versioned paths (e.g.,
/v1/...).Experimental OID4VC and x509 controller endpoints are hidden by default. Set
HIDE_EXPERIMENTAL_OIDC_CONTROLLERS=false in your .env to expose them in
the Swagger UI.Register, create an organization, and issue a credential
The following sequence demonstrates the minimum steps to issue a verifiable credential: register a user, sign in, create an organization, and issue a credential over DIDComm.1. Send a verification email2. Register the user (after verifying the email link)3. Sign in and capture your access tokenSave the returned token as Note the
TOKEN for subsequent requests.4. Create an organizationid field in the response — this is your ORG_ID.5. Issue a credential out-of-band (email delivery)Before issuing credentials you must create a schema and credential definition
for your organization. Use the
/v1/schemas and
/v1/orgs/:orgId/credential-definitions endpoints visible in the Swagger UI.
Your organization also needs an active Hyperledger Aries agent — provision one
via the agent endpoints in Swagger.Next steps
Architecture
Learn how the microservices communicate over NATS and how agents are provisioned per organization.
Environment variables
Full reference for all configuration options available in
.env.API reference
Explore every endpoint with request and response examples.
Docker Compose deployment
Run the entire platform stack — including all microservices — with a single command using pre-built images.