diff --git a/apps/ssi-abstraction/config/validation.ts b/apps/ssi-abstraction/config/validation.ts
index 974089a5198975c6182ee629b0980631b475df23..ac3c85702dd7032aafa99d4f27b904102fcbb9ab 100644
--- a/apps/ssi-abstraction/config/validation.ts
+++ b/apps/ssi-abstraction/config/validation.ts
@@ -1,4 +1,4 @@
-import * as Joi from 'joi';
+import Joi from 'joi';
 
 const validationSchema = Joi.object({
   NATS_URL: Joi.string().required(),
diff --git a/apps/ssi-abstraction/src/agent/agentUtils/listener.spec.ts b/apps/ssi-abstraction/src/agent/agentUtils/listener.spec.ts
index bb8e99ed1a6e6dd58d054cf9eb7679c6815fbf28..ea1052213b44272156bc3a33526185220f56b0f4 100644
--- a/apps/ssi-abstraction/src/agent/agentUtils/listener.spec.ts
+++ b/apps/ssi-abstraction/src/agent/agentUtils/listener.spec.ts
@@ -1,11 +1,10 @@
-/* eslint-disable */
-
 import { subscribe } from './listener';
 
 describe('listener', () => {
   it('should subscribe agent to available events', async () => {
     const agent = {
       events: {
+        // eslint-disable-next-line @typescript-eslint/no-unused-vars
         on: (eventName: string, cb: () => void) => {},
       },
     };
diff --git a/apps/ssi-abstraction/src/agent/agentUtils/listener.ts b/apps/ssi-abstraction/src/agent/agentUtils/listener.ts
index 27ee2a349555e21b96a29524f560b10089e1cd0c..5aaed30d85a7c5729e102943aa810825d8ecaa31 100644
--- a/apps/ssi-abstraction/src/agent/agentUtils/listener.ts
+++ b/apps/ssi-abstraction/src/agent/agentUtils/listener.ts
@@ -9,12 +9,12 @@ import { listenerConfig } from './listenerConfig';
  * @param agent - the agent that has been initialized on startup
  * @param natsClient - the client that specifies how events are published
  */
-export const subscribe = async (
+export const subscribe = (
   agent: Agent,
   natsClient: NatsClientService,
 ) => {
   for (let i = 0; i < listenerConfig.length; i += 1) {
-    agent.events.on(listenerConfig[i], async ({ payload }: any) => {
+    agent.events.on(listenerConfig[i], ({ payload }) => {
       logger.info(
         `${listenerConfig[i]} called. Payload: ${JSON.stringify(payload)}`,
       );
diff --git a/apps/ssi-abstraction/src/agent/module.ts b/apps/ssi-abstraction/src/agent/module.ts
index 0c78e7379dd656a4d421e7c5fda4c36f3dccbad9..b224084d8457ad641085140be0e549828bf54fdc 100644
--- a/apps/ssi-abstraction/src/agent/module.ts
+++ b/apps/ssi-abstraction/src/agent/module.ts
@@ -53,18 +53,16 @@ const agentFactory = {
     }
 
     const indyLedgers: LedgerInfo[] = ledgerIds.map((id: LedgerIds) => {
-      const ledgerId: LedgerIds = id;
-
-      if (!LEDGER_GENESIS?.[ledgerId]) {
+      if (!LEDGER_GENESIS?.[id]) {
         throw new Error(
-          `No pool transaction genesis provided for ledger ${ledgerId}`,
+          `No pool transaction genesis provided for ledger ${id}`,
         );
       }
 
       const ledger: LedgerInfo = {
-        id: `${ledgerId}_Genesis`,
-        indyNamespace: `${ledgerNamespaces[ledgerId]}`,
-        genesisTransactions: LEDGER_GENESIS?.[ledgerId],
+        id: `${id}_Genesis`,
+        indyNamespace: `${ledgerNamespaces[id]}`,
+        genesisTransactions: LEDGER_GENESIS?.[id],
         isProduction: false,
       };
 
@@ -95,7 +93,7 @@ const agentFactory = {
     agent.registerOutboundTransport(new HttpOutboundTransport());
 
     await agent.initialize();
-    await subscribe(agent, natsClient);
+    subscribe(agent, natsClient);
 
     if (agent.isInitialized) {
       ledgerIds.map(async (id: LedgerIds) => {
@@ -160,7 +158,7 @@ const agentFactory = {
         name: NATSServices.SERVICE_NAME,
         transport: Transport.NATS,
         options: {
-          servers: [config().nats.url as string],
+          servers: [config().nats.url],
         },
       },
     ]),
diff --git a/apps/ssi-abstraction/src/app.module.ts b/apps/ssi-abstraction/src/app.module.ts
index 5c23be67d6325a75d0bdeb313753821417c46fa3..8410dc5bb0d245f3c00a8408e8e8c6c2e3a980d4 100644
--- a/apps/ssi-abstraction/src/app.module.ts
+++ b/apps/ssi-abstraction/src/app.module.ts
@@ -28,7 +28,7 @@ import { AgentMid } from './middleware/agentMid.middleware';
   ],
 })
 export class AppModule implements NestModule {
-  // eslint-disable-next-line
+  // eslint-disable-next-line class-methods-use-this
   configure(consumer: MiddlewareConsumer) {
     consumer.apply(AgentMid).forRoutes('agent', '*/agent');
   }
diff --git a/apps/ssi-abstraction/src/client/nats.client.ts b/apps/ssi-abstraction/src/client/nats.client.ts
index 5ba22876627064325cbb5edfba01c0e81564b286..5a4c62abcbb59fc811fd182f0da43112f0f036b5 100644
--- a/apps/ssi-abstraction/src/client/nats.client.ts
+++ b/apps/ssi-abstraction/src/client/nats.client.ts
@@ -19,9 +19,11 @@ export class NatsClientService {
     logger.info(
       `Publish nats event: ${NATSServices.SERVICE_NAME}/${eventName}`,
     );
+
     const event = {
       endpoint: `${NATSServices.SERVICE_NAME}/${eventName}`,
     };
+
     this.client.emit(event, data);
   }
 }
diff --git a/apps/ssi-abstraction/src/didComm/controller/controller.ts b/apps/ssi-abstraction/src/didComm/controller/controller.ts
index 241099ddda22e4dce81fa776f51c9db9788ac03a..864b4775a1d70ef0228e144915f54241f683e500 100644
--- a/apps/ssi-abstraction/src/didComm/controller/controller.ts
+++ b/apps/ssi-abstraction/src/didComm/controller/controller.ts
@@ -44,13 +44,14 @@ export class DidCommController {
   @All('/:property/:method')
   async generic(@Param() params: GenericParams, @Body() body: GenericBody) {
     logger.info(
-      `Received request ${params.property}/${params.method}, body: ${body}`,
+      `Received request ${params.property}/${params.method}, body: ${JSON.stringify(body)}`,
     );
     const { property, method } = params;
 
     const prop: any = this.agent[property];
 
-    let response = await prop[method].apply(prop, prepareInputData(body.data)); // eslint-disable-line
+    // eslint-disable-next-line prefer-spread
+    let response = await prop[method].apply(prop, prepareInputData(body.data));
 
     if (body.subMethod && body.subMethod.name) {
       const path = body.subMethod.name.split('.');
diff --git a/apps/ssi-abstraction/src/didComm/module.ts b/apps/ssi-abstraction/src/didComm/module.ts
index b285420e541e8bb30ab962f3d9213ca429f2299a..76d0684539e47c6806d1fa865590aa56b8f848e1 100644
--- a/apps/ssi-abstraction/src/didComm/module.ts
+++ b/apps/ssi-abstraction/src/didComm/module.ts
@@ -14,7 +14,7 @@ import config from '@config/config';
         name: NATSServices.SERVICE_NAME,
         transport: Transport.NATS,
         options: {
-          servers: [config().nats.url as string],
+          servers: [config().nats.url],
         },
       },
     ]),
diff --git a/apps/ssi-abstraction/src/didComm/utils/whitelist.ts b/apps/ssi-abstraction/src/didComm/utils/whitelist.ts
index 8560d5f18dc27a64e55879a1076195e210a1b91e..455cd9a2e5d3d3188bdc36532038e8913de9f630 100644
--- a/apps/ssi-abstraction/src/didComm/utils/whitelist.ts
+++ b/apps/ssi-abstraction/src/didComm/utils/whitelist.ts
@@ -38,53 +38,53 @@ export interface GenericParams {
   // | 'createOutOfBandRequest'
   // | 'acceptRequest'
   | 'declineRequest'
-    // | 'acceptPresentation'
-    // | 'getRequestedCredentialsForProofRequest'
-    // | 'autoSelectCredentialsForProofRequest'
-    // | 'sendProblemReport'
-    // | 'sendMessage'
-    // | 'findAllByQuery'
-    // | 'registerPublicDid'
-    // | 'getPublicDid'
-    // | 'registerSchema'
-    // | 'getSchema'
-    // | 'registerCredentialDefinition'
-    // | 'getCredentialDefinition'
-    // | 'proposeCredential'
-    // | 'acceptProposal'
-    // | 'negotiateProposal'
-    // | 'offerCredential'
-    // | 'createOutOfBandOffer'
-    // | 'acceptOffer'
-    // | 'declineOffer'
-    // | 'negotiateOffer'
-    // | 'acceptCredential'
-    // | 'initiateMessagePickup'
-    // | 'pickupMessages'
-    // | 'setDefaultMediator'
-    // | 'notifyKeylistUpdate'
-    // | 'findDefaultMediatorConnection'
-    // | 'discoverMediation'
-    // | 'requestMediation'
-    // | 'findByConnectionId'
-    // | 'getMediators'
-    // | 'findDefaultMediator'
-    // | 'requestAndAwaitGrant'
-    // | 'provision'
-    // | 'queueMessage'
-    // | 'grantRequestedMediation'
-    // | 'queryFeatures'
-    // | 'initialize'
-    // | 'create'
-    // | 'open'
-    // | 'close'
-    // | 'delete'
-    // | 'initPublicDid'
-    // | 'createDid'
-    // | 'pack'
-    // | 'unpack'
-    | 'sign'
-    | 'verify';
+  // | 'acceptPresentation'
+  // | 'getRequestedCredentialsForProofRequest'
+  // | 'autoSelectCredentialsForProofRequest'
+  // | 'sendProblemReport'
+  // | 'sendMessage'
+  // | 'findAllByQuery'
+  // | 'registerPublicDid'
+  // | 'getPublicDid'
+  // | 'registerSchema'
+  // | 'getSchema'
+  // | 'registerCredentialDefinition'
+  // | 'getCredentialDefinition'
+  // | 'proposeCredential'
+  // | 'acceptProposal'
+  // | 'negotiateProposal'
+  // | 'offerCredential'
+  // | 'createOutOfBandOffer'
+  // | 'acceptOffer'
+  // | 'declineOffer'
+  // | 'negotiateOffer'
+  // | 'acceptCredential'
+  // | 'initiateMessagePickup'
+  // | 'pickupMessages'
+  // | 'setDefaultMediator'
+  // | 'notifyKeylistUpdate'
+  // | 'findDefaultMediatorConnection'
+  // | 'discoverMediation'
+  // | 'requestMediation'
+  // | 'findByConnectionId'
+  // | 'getMediators'
+  // | 'findDefaultMediator'
+  // | 'requestAndAwaitGrant'
+  // | 'provision'
+  // | 'queueMessage'
+  // | 'grantRequestedMediation'
+  // | 'queryFeatures'
+  // | 'initialize'
+  // | 'create'
+  // | 'open'
+  // | 'close'
+  // | 'delete'
+  // | 'initPublicDid'
+  // | 'createDid'
+  // | 'pack'
+  // | 'unpack'
+  | 'sign'
+  | 'verify';
   // | 'generateNonce';
 }
 
@@ -218,9 +218,9 @@ export const checkAll = (
   }
 
   if (
-    body.subMethod &&
-    body.subMethod.name &&
-    subMethodsList.indexOf(body.subMethod.name) <= -1
+    body.subMethod
+    && body.subMethod.name
+    && subMethodsList.indexOf(body.subMethod.name) <= -1
   ) {
     success = false;
     messages.push('"subMethod name" either does not exist or is not allowed.');
diff --git a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
index cee8e186c51adb418f0885b119fe8c1cc2f6bb0f..4425a6d4ce11fb0110241b51453285dca6ca2257 100644
--- a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
+++ b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
@@ -27,14 +27,15 @@ export class ExceptionHandler implements ExceptionFilter {
     const response = ctx.getResponse();
 
     let statusCode = HttpStatus.INTERNAL_SERVER_ERROR;
-    let message =
-      exception.message.error || exception.message || 'Something went wrong!';
+    let message = exception.message.error || exception.message || 'Something went wrong!';
 
     if (exception instanceof HttpException) {
-      const errorResponse: any = exception.getResponse();
+      const errorResponse = exception.getResponse();
 
       statusCode = exception.getStatus();
-      message = errorResponse.error || message;
+      message = typeof errorResponse === 'object' && 'error' in errorResponse
+        ? errorResponse.error
+        : errorResponse || message;
     }
 
     const responseBody: ResponseType = {
diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts
index 27a053c3826962fe8010be590465854d2988bca3..cc73b21b3b0b9b591b3651f49c72802456874c70 100644
--- a/apps/ssi-abstraction/src/globalUtils/logger.ts
+++ b/apps/ssi-abstraction/src/globalUtils/logger.ts
@@ -1,8 +1,7 @@
-import { Logger } from 'winston';
+import winston, { Logger } from 'winston';
 import ecsFormat from '@elastic/ecs-winston-format';
-// import { ElasticsearchTransport } from 'winston-elasticsearch';
-import winston = require('winston');
 
+// import { ElasticsearchTransport } from 'winston-elasticsearch';
 // const esTransportOpts = {
 //   clientOpts: { node: process.env.ECSURL },
 // };
@@ -21,7 +20,8 @@ const logger: Logger = winston.createLogger({
   ],
 });
 
-logger.on('error', (error) => {
+logger.on('error', (error: Error) => {
+  // eslint-disable-next-line no-console
   console.error('Error in logger caught', error);
 });
 
diff --git a/apps/ssi-abstraction/src/health/health.controller.ts b/apps/ssi-abstraction/src/health/health.controller.ts
index f0a2b9d177e4bac3da34d19a54ee13d7c205aab9..d957968b6e1b9a2802346025489a8438861b30c3 100644
--- a/apps/ssi-abstraction/src/health/health.controller.ts
+++ b/apps/ssi-abstraction/src/health/health.controller.ts
@@ -1,5 +1,4 @@
 import { Controller, Get, HttpStatus } from '@nestjs/common';
-import { ResponseType } from '@common/response';
 
 @Controller('health')
 export class HealthController {
@@ -14,7 +13,7 @@ export class HealthController {
     return {
       statusCode: HttpStatus.OK,
       message: `${new Date()}`,
-    } as ResponseType;
+    };
   }
 }
 
diff --git a/apps/ssi-abstraction/src/main.ts b/apps/ssi-abstraction/src/main.ts
index 8ebe5c5d4c02d48a632d554a9efc29ae43b79a13..cf7998a29673ea62ffc06bc1fba42d3137d1113f 100644
--- a/apps/ssi-abstraction/src/main.ts
+++ b/apps/ssi-abstraction/src/main.ts
@@ -18,16 +18,19 @@ async function bootstrap() {
 
   await app.startAllMicroservices();
 
+  const afjPort = configService.get('afjExtPort') || 3001;
+  const servicePort = configService.get('PORT') || 3000;
+
   const afjExtConfig = {
-    port: configService.get('afjExtPort') || 3001,
+    port: afjPort,
   };
+
   await startServer(agent, afjExtConfig);
 
-  logger.info(
-    `Listening AFJ ext on Port:${configService.get('afjExtPort')}` || 3001,
-  );
-  await app.listen(configService.get('PORT') || 3000, () => {
-    logger.info(`Listening on Port:${configService.get('PORT')}` || 3000);
+  logger.info(`Listening AFJ ext on Port: ${afjPort}`);
+
+  await app.listen(servicePort, () => {
+    logger.info(`Listening on Port: ${servicePort}`);
   });
 }
 bootstrap();
diff --git a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
index c10d5f7aa5d94b0070bed3ded9e0c6ce3b13d7f9..1262257c0ede928a54beb5ff9d181b5cbb673fa5 100644
--- a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
+++ b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
@@ -1,7 +1,6 @@
 import { Injectable, NestMiddleware, HttpStatus } from '@nestjs/common';
 import { Request, NextFunction, Response } from 'express';
 import { checkAll } from '../didComm/utils/whitelist';
-import { ResponseType } from '../common/response';
 
 /**
  * Middleware that checks validity of provided params and body
@@ -9,7 +8,7 @@ import { ResponseType } from '../common/response';
  */
 @Injectable()
 export class AgentMid implements NestMiddleware {
-  // eslint-disable-next-line
+  // eslint-disable-next-line class-methods-use-this
   use(req: Request, res: Response, next: NextFunction) {
     const [, prop, method] = req.url.split('/');
     if (prop === 'info') {
@@ -22,7 +21,7 @@ export class AgentMid implements NestMiddleware {
       res.send({
         statusCode: HttpStatus.BAD_REQUEST,
         error: whiteListErrors.messages,
-      } as ResponseType);
+      });
       res.end();
       return;
     }
@@ -31,7 +30,7 @@ export class AgentMid implements NestMiddleware {
       res.send({
         statusCode: HttpStatus.BAD_REQUEST,
         message: 'subMethod.name has to be specified',
-      } as ResponseType);
+      });
       res.end();
       return;
     }
diff --git a/apps/ssi-abstraction/test/health.e2e-spec.ts b/apps/ssi-abstraction/test/health.e2e-spec.ts
index 1f685c6552d18d69697207fec9add092ae2cb56d..2969df80680f79d23a13c8bcee01dbdbd7c04edc 100644
--- a/apps/ssi-abstraction/test/health.e2e-spec.ts
+++ b/apps/ssi-abstraction/test/health.e2e-spec.ts
@@ -18,6 +18,5 @@ describe('HealthController (e2e)', () => {
     await app.close();
   });
 
-  it('/health (GET)', () =>
-    request(app.getHttpServer()).get('/health').expect(200));
+  it('/health (GET)', () => request(app.getHttpServer()).get('/health').expect(200));
 });