diff --git a/apps/connection-manager/src/app/app.controller.ts b/apps/connection-manager/src/app/app.controller.ts
index ae335291e68abc9a0c6e431aaa872519c7631595..4eefca2f82328f195d1ba16ce0ddc6914a51d934 100644
--- a/apps/connection-manager/src/app/app.controller.ts
+++ b/apps/connection-manager/src/app/app.controller.ts
@@ -7,7 +7,7 @@ import {
   ConnectionEvent,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionRefDto,
+  ConnectionReqDto,
   makeEvent,
 } from "@ocm-engine/dtos";
 
@@ -21,7 +21,7 @@ export class AppController {
   async create(
     @Body()
     payload: {
-      data: null | CreateInvitationResponseDto | ConnectionRefDto;
+      data: null | CreateInvitationResponseDto | ConnectionReqDto;
       type: ConnectionEvent;
       source: string;
     },
diff --git a/apps/gateway/src/app/managers/attestation.controller.ts b/apps/gateway/src/app/managers/attestation.controller.ts
index 3e8c1fa9c0ac2bca490a178e7999e1be2dce6f42..a51fdf1b81582cac5bd97af1573f1f1527ff41a7 100644
--- a/apps/gateway/src/app/managers/attestation.controller.ts
+++ b/apps/gateway/src/app/managers/attestation.controller.ts
@@ -2,7 +2,7 @@ import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import { AllExceptionsHandler } from "../exception.handler";
 import { AttestationManagerClient } from "@ocm-engine/clients";
 import {
-  CredentialRefDto,
+  CredentialReqDto,
   CreateCredentialDefinitionRequsetDto,
   CreateSchemaRequestDto,
   CRED_DEF_CREATE,
@@ -11,7 +11,7 @@ import {
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
   GatewayAcceptedResponseDto,
-  SchemaRefDto,
+  SchemaReqDto,
   IssueCredentialRequestDto,
   MakeBasicMessageRequestDto,
   MESSAGE_MAKE,
@@ -165,8 +165,8 @@ export class AttestationController {
       "Method will fetch specific schema or return null. The id of the response will be matched when you receive event from the websocket",
     tags: ["Schema"],
   })
-  async getSchemaById(@Body() schemaRequestDto: SchemaRefDto) {
-    return this.amClient.sendPayload<SchemaRefDto>({
+  async getSchemaById(@Body() schemaRequestDto: SchemaReqDto) {
+    return this.amClient.sendPayload<SchemaReqDto>({
       pattern: "schemas",
       payload: {
         source: "/schemas-by-id",
@@ -504,7 +504,7 @@ export class AttestationController {
     tags: ["Credentials Offers"],
   })
   acceptCredential(@Param("credential_record_id") credentialRecordId: string) {
-    const data = new CredentialRefDto();
+    const data = new CredentialReqDto();
     data.credentialRecordId = credentialRecordId;
     return this.amClient.sendPayload({
       pattern: "credentials",
diff --git a/apps/gateway/src/app/managers/connection.controller.ts b/apps/gateway/src/app/managers/connection.controller.ts
index 8aec8f265561f06cf58f76b2f8904639b36a7cf3..aa29861f256c4d47dea449b9eb02c7c2f2e57d3b 100644
--- a/apps/gateway/src/app/managers/connection.controller.ts
+++ b/apps/gateway/src/app/managers/connection.controller.ts
@@ -15,7 +15,7 @@ import {
   CONNECTION_LIST,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionRefDto,
+  ConnectionReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "../exception.handler";
 import {
@@ -238,10 +238,10 @@ export class ConnectionController {
     tags: ["Connections"],
   })
   async getById(@Param("id") id: string) {
-    const request = new ConnectionRefDto();
+    const request = new ConnectionReqDto();
     request.connectionId = id;
 
-    return this.cmClient.sendPayload<ConnectionRefDto>({
+    return this.cmClient.sendPayload<ConnectionReqDto>({
       pattern: "connections",
       payload: {
         source: "/connections/:id",
diff --git a/apps/gateway/src/app/managers/proof.controller.ts b/apps/gateway/src/app/managers/proof.controller.ts
index 91942b2ecaec6e6268a80161fd0d07210008ebd1..c90bad7c0ffa0ddd4e10067b51936e0d85a6f092 100644
--- a/apps/gateway/src/app/managers/proof.controller.ts
+++ b/apps/gateway/src/app/managers/proof.controller.ts
@@ -1,8 +1,8 @@
 import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import {
-  ProofRefDto,
+  ProofReqDto,
   GatewayAcceptedResponseDto,
-  SchemaRefDto,
+  SchemaReqDto,
   IssueProofRequestDto,
   PROOF_ACCEPT,
   PROOF_DECLINE,
@@ -60,7 +60,7 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   proofs() {
-    return this.pmClient.sendPayload<SchemaRefDto>({
+    return this.pmClient.sendPayload<SchemaReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credential/proofs",
@@ -106,10 +106,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   getProofById(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofRefDto();
+    const data = new ProofReqDto();
     data.proofRecordId = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofRefDto>({
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id",
@@ -228,8 +228,8 @@ export class ProofController {
       "Method accept credential proof. The id of the response will be matched when you receive event from the websocket",
     tags: ["Credentials Proof"],
   })
-  acceptProof(@Body() acceptProofRequestDto: ProofRefDto) {
-    return this.pmClient.sendPayload<ProofRefDto>({
+  acceptProof(@Body() acceptProofRequestDto: ProofReqDto) {
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proofs/accept",
@@ -275,10 +275,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   declineProofRequest(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofRefDto();
+    const data = new ProofReqDto();
     data.proofRecordId = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofRefDto>({
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id/decline",
diff --git a/apps/proof-manager/src/app/app.controller.ts b/apps/proof-manager/src/app/app.controller.ts
index 2df10222b83ee1cc3752466755f8955d84c8ddcb..c4d40fc0f483acb7d8011b2542b30222ee2a4f4f 100644
--- a/apps/proof-manager/src/app/app.controller.ts
+++ b/apps/proof-manager/src/app/app.controller.ts
@@ -3,7 +3,7 @@ import { Body, Controller, Logger } from "@nestjs/common";
 import { ProducerService } from "@ocm-engine/nats";
 import { MessagePattern, RpcException } from "@nestjs/microservices";
 import {
-  ProofRefDto,
+  ProofReqDto,
   CloudEventDto,
   GatewayAcceptedResponseDto,
   makeEvent,
@@ -20,7 +20,7 @@ export class AppController {
   async create(
     @Body()
     payload: {
-      data: null | ProofRefDto;
+      data: null | ProofReqDto;
       type: ProofEvent;
       source: string;
     },
diff --git a/libs/askar/src/askar-nats/event.handler.service.ts b/libs/askar/src/askar-nats/event.handler.service.ts
index 39e24f6df01929a5c7e421028d10d5a610a2968f..2c5b440988d57e40b3e48dafbc234875cc7f604c 100644
--- a/libs/askar/src/askar-nats/event.handler.service.ts
+++ b/libs/askar/src/askar-nats/event.handler.service.ts
@@ -1,8 +1,8 @@
 import { Injectable, Logger } from "@nestjs/common";
 import { AgentService } from "../askar/agent.service";
 import {
-  CredentialRefDto,
-  ProofRefDto,
+  CredentialReqDto,
+  ProofReqDto,
   CloudEventDto,
   CONNECTION_ACCEPT,
   CONNECTION_CREATE,
@@ -16,8 +16,8 @@ import {
   CRED_LIST,
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
-  ConnectionRefDto,
-  SchemaRefDto,
+  ConnectionReqDto,
+  SchemaReqDto,
   IssueCredentialRequestDto,
   IssueProofRequestDto,
   MakeBasicMessageRequestDto,
@@ -58,7 +58,7 @@ export class EventHandlerService {
             break;
 
           case CONNECTION_GET:
-            dto = event.data as ConnectionRefDto;
+            dto = event.data as ConnectionReqDto;
             data = await this.agentService.getConnectionById(dto.connectionId);
             break;
 
@@ -71,7 +71,7 @@ export class EventHandlerService {
             break;
 
           case SCHEMA_GET:
-            dto = event.data as SchemaRefDto;
+            dto = event.data as SchemaReqDto;
             data = await this.agentService.getSchemaById(dto.schemaId);
             break;
           case CRED_DEF_CREATE:
@@ -95,7 +95,7 @@ export class EventHandlerService {
             break;
 
           case CRED_OFFER_ACCEPT:
-            dto = event.data as CredentialRefDto;
+            dto = event.data as CredentialReqDto;
             data = await this.agentService.acceptCredential(
               dto.credentialRecordId,
             );
@@ -111,18 +111,18 @@ export class EventHandlerService {
             break;
 
           case PROOF_GET:
-            dto = event.data as ProofRefDto;
+            dto = event.data as ProofReqDto;
             data = await this.agentService.getProofById(dto.proofRecordId);
             break;
 
           case PROOF_ACCEPT:
             data = await this.agentService.acceptProof(
-              event.data as ProofRefDto,
+              event.data as ProofReqDto,
             );
             break;
 
           case PROOF_DECLINE:
-            dto = event.data as ProofRefDto;
+            dto = event.data as ProofReqDto;
             data = await this.agentService.declineProofRequest(
               dto.proofRecordId,
             );
diff --git a/libs/askar/src/askar-rest/rest.controller.ts b/libs/askar/src/askar-rest/rest.controller.ts
index cc1a278039b3991c5ed318e0499e2f6ed98ede03..f8ca05f41c17afa0ae5b166df56be1fc02793985 100644
--- a/libs/askar/src/askar-rest/rest.controller.ts
+++ b/libs/askar/src/askar-rest/rest.controller.ts
@@ -8,7 +8,7 @@ import {
   IssueProofRequestDto,
   CreateSchemaRequestDto,
   MakeBasicMessageRequestDto,
-  ProofRefDto,
+  ProofReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "./exception.handler";
 
@@ -79,12 +79,12 @@ export class RestController {
   }
 
   @Get("credential/proof/:proof_record_id")
-  getProof(@Param("proof_record_id") data: ProofRefDto) {
+  getProof(@Param("proof_record_id") data: ProofReqDto) {
     return this.agentService.getProofById(data.proofRecordId);
   }
 
   @Post(`/credential/proof/accept`)
-  acceptProof(@Body() acceptProofRequestDto: ProofRefDto) {
+  acceptProof(@Body() acceptProofRequestDto: ProofReqDto) {
     return this.agentService.acceptProof(acceptProofRequestDto);
   }
 
diff --git a/libs/askar/src/askar/agent.service.ts b/libs/askar/src/askar/agent.service.ts
index c0369dbf923c0969d7cc54c5ad4d35a9fdc64c12..5c848b84fee5ccc18eb8d551c98339b96df057e2 100644
--- a/libs/askar/src/askar/agent.service.ts
+++ b/libs/askar/src/askar/agent.service.ts
@@ -2,7 +2,7 @@ import { Injectable } from "@nestjs/common";
 import { AskarService } from "./askar.service";
 import {
   ConnectionRecordDto,
-  ProofRefDto,
+  ProofReqDto,
   ConnectionNotFoundError,
   CreateCredentialDefinitionRequsetDto,
   CreddefRecordDto,
@@ -55,7 +55,7 @@ export class AgentService {
 
     const r = new ConnectionRecordDto();
     r.connectionName = connectionRecord.theirLabel;
-    r.connectionId = connectionRecord.id;
+    r.id = connectionRecord.id;
     r.did = connectionRecord.did;
     r.invitationDid = connectionRecord.invitationDid;
     r.outOfBandId = connectionRecord.outOfBandId;
@@ -69,7 +69,7 @@ export class AgentService {
 
     let connectionArray = agentResponse.map((singleConnectionRes) => {
       let connectionResponse = new ConnectionRecordDto();
-      connectionResponse.connectionId = singleConnectionRes.id;
+      connectionResponse.id = singleConnectionRes.id;
       connectionResponse.state = singleConnectionRes.state;
       connectionResponse.connectionName = singleConnectionRes.theirLabel;
       connectionResponse.alias = singleConnectionRes.alias;
@@ -97,7 +97,7 @@ export class AgentService {
     }
 
     let connectionResponse = new ConnectionRecordDto();
-    connectionResponse.connectionId = agentResponse.id;
+    connectionResponse.id = agentResponse.id;
     connectionResponse.state = agentResponse.state;
     connectionResponse.connectionName = agentResponse.theirLabel;
     connectionResponse.alias = agentResponse.alias;
@@ -115,7 +115,7 @@ export class AgentService {
 
     let schemaResponse = agentResponse.map((singleSchemaRes) => {
       let schemaResponse = new SchemaRecordDto();
-      schemaResponse.schemaId = singleSchemaRes.schemaId;
+      schemaResponse.id = singleSchemaRes.schemaId;
       schemaResponse.name = singleSchemaRes.schema.name;
       schemaResponse.attributes = singleSchemaRes.schema.attrNames;
       schemaResponse.version = singleSchemaRes.schema.version;
@@ -140,7 +140,7 @@ export class AgentService {
     }
 
     let schemaResponse = new SchemaRecordDto();
-    schemaResponse.schemaId = agentResponse.schemaId;
+    schemaResponse.id = agentResponse.schemaId;
     schemaResponse.name = agentResponse.schema.name;
     schemaResponse.attributes = agentResponse.schema.attrNames;
     schemaResponse.version = agentResponse.schema.version;
@@ -170,7 +170,7 @@ export class AgentService {
     const response = new SchemaRecordDto();
 
     response.name = schemaResult.schemaState.schema.name;
-    response.schemaId = schemaResult.schemaState.schemaId;
+    response.id = schemaResult.schemaState.schemaId;
     response.issuerId = schemaResult.schemaState.schema.issuerId;
     response.version = schemaResult.schemaState.schema.version;
     response.attributes = schemaResult.schemaState.schema.attrNames;
@@ -198,7 +198,7 @@ export class AgentService {
     }
 
     const response = new CreddefRecordDto();
-    response.credentialDefinitionId =
+    response.id =
       credDef.credentialDefinitionState.credentialDefinitionId;
     response.schemaId =
       credDef.credentialDefinitionState.credentialDefinition.schemaId;
@@ -229,7 +229,7 @@ export class AgentService {
       console.log(JSON.stringify(credentialExchangeRecord, null, 2));
 
       const response = new CredentialRecordDto();
-      response.credentialId = credentialExchangeRecord.id;
+      response.id = credentialExchangeRecord.id;
       response.connectionId = credentialExchangeRecord.connectionId;
       response.attributes = credentialExchangeRecord.credentialAttributes;
       response.createdAt = credentialExchangeRecord.createdAt;
@@ -257,7 +257,7 @@ export class AgentService {
       });
 
     const response = new CredentialRecordDto();
-    response.credentialId = credentialExchangeRecord.id;
+    response.id = credentialExchangeRecord.id;
     response.connectionId = credentialExchangeRecord.connectionId;
     response.attributes = credentialExchangeRecord.credentialAttributes;
     response.createdAt = credentialExchangeRecord.createdAt;
@@ -273,7 +273,7 @@ export class AgentService {
     const response: Array<CredentialRecordDto> = [];
     for (const offer of credentials) {
       const t = new CredentialRecordDto();
-      t.credentialId = offer.id;
+      t.id = offer.id;
       t.connectionId = offer.connectionId;
       t.createdAt = offer.createdAt;
       t.attributes = offer.credentialAttributes;
@@ -291,7 +291,7 @@ export class AgentService {
     const response: Array<CredentialRecordDto> = [];
     for (const offer of offers) {
       const t = new CredentialRecordDto();
-      t.credentialId = offer.id;
+      t.id = offer.id;
       t.connectionId = offer.connectionId;
       t.createdAt = offer.createdAt;
       t.attributes = offer.credentialAttributes;
@@ -359,7 +359,7 @@ export class AgentService {
     });
 
     const response = new ProofRecordDto();
-    response.proofId = exchangeRecord.id;
+    response.id = exchangeRecord.id;
     response.connectionId = exchangeRecord.connectionId;
     response.state = exchangeRecord.state;
     response.updatedAt = exchangeRecord.updatedAt;
@@ -376,7 +376,7 @@ export class AgentService {
     const response: Array<ProofRecordDto> = [];
     for (const proof of proofs) {
       const t = new ProofRecordDto();
-      t.proofId = proof.id;
+      t.id = proof.id;
       t.connectionId = proof.connectionId;
       t.state = proof.state;
       t.updatedAt = proof.updatedAt;
@@ -397,7 +397,7 @@ export class AgentService {
 
     const proofResponse = new ProofRecordDto();
 
-    proofResponse.proofId = proofRecord.id;
+    proofResponse.id = proofRecord.id;
     proofResponse.connectionId = proofRecord.connectionId;
     proofResponse.state = proofRecord.state;
     proofResponse.updatedAt = proofRecord.updatedAt;
@@ -406,7 +406,7 @@ export class AgentService {
     return proofResponse;
   };
 
-  acceptProof = async (acceptProofDto: ProofRefDto) => {
+  acceptProof = async (acceptProofDto: ProofReqDto) => {
     if (acceptProofDto.proofUrl) {
       return this.acceptOobProof(acceptProofDto.proofUrl);
     }
@@ -436,7 +436,7 @@ export class AgentService {
 
     const response = new ProofRecordDto();
 
-    response.proofId = acceptedRecord.id;
+    response.id = acceptedRecord.id;
     response.state = acceptedRecord.state;
     response.updatedAt = acceptedRecord.updatedAt;
     response.createdAt = acceptedRecord.createdAt;
@@ -461,7 +461,7 @@ export class AgentService {
     console.log(JSON.stringify(proof, null, 2));
 
     const response = new ProofRecordDto();
-    response.proofId = proof.id;
+    response.id = proof.id;
     response.connectionId = proof.connectionId;
     response.state = proof.state;
     response.updatedAt = proof.updatedAt;
@@ -477,7 +477,7 @@ export class AgentService {
     });
 
     const declineResponse = new ProofRecordDto();
-    declineResponse.proofId = resultFromDecline.id;
+    declineResponse.id = resultFromDecline.id;
     declineResponse.connectionId = resultFromDecline.connectionId;
     declineResponse.state = resultFromDecline.state;
     declineResponse.updatedAt = resultFromDecline.updatedAt;
diff --git a/libs/dtos/src/dtos/generics/base.record.dto.ts b/libs/dtos/src/dtos/generics/base.record.dto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0fad391fff69db5b6b2a32ae5a4f437ac5c47a27
--- /dev/null
+++ b/libs/dtos/src/dtos/generics/base.record.dto.ts
@@ -0,0 +1,18 @@
+
+import { IsDateString, IsNotEmpty, IsString } from "class-validator";
+
+
+
+export class BaseRecordDto {
+
+  @IsString()
+  @IsNotEmpty()
+  id: string;
+
+  @IsDateString()
+  @IsNotEmpty()
+  createdAt: Date;
+  
+  @IsDateString()
+  updatedAt?: Date;
+}
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/generics/connection.record.dto.ts b/libs/dtos/src/dtos/generics/connection.record.dto.ts
index 0e0f86ed81ec28cc72eed742b3b458391895e85d..b48dbb9a904d920c9160d21f8e74add94a1db7c9 100644
--- a/libs/dtos/src/dtos/generics/connection.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/connection.record.dto.ts
@@ -1,5 +1,5 @@
 import { IsDateString, IsNotEmpty, IsString } from "class-validator";
-
+import { BaseRecordDto } from "./base.record.dto";
 
 // INFO: should cover:
 
@@ -7,12 +7,7 @@ import { IsDateString, IsNotEmpty, IsString } from "class-validator";
 // 2. accept connection response
 
 
-export class ConnectionRecordDto {
-  //@example 6464b521-005a-4379-91e0-a3692b31cafd
-  @IsNotEmpty()
-  @IsString()
-  connectionId: string;
-
+export class ConnectionRecordDto extends BaseRecordDto {
   @IsNotEmpty()
   @IsString()
   state: string;
@@ -31,8 +26,4 @@ export class ConnectionRecordDto {
 
   @IsString()
   outOfBandId?: string;
-
-  @IsDateString()
-  @IsNotEmpty()
-  createdAt: Date;
 }
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/generics/creddef.record.dto.ts b/libs/dtos/src/dtos/generics/creddef.record.dto.ts
index c4ade28ceac27be8e6c7985986e8b75172b0e362..70f29373e74dd7b82b435aff9978fe1dcfc45d1b 100644
--- a/libs/dtos/src/dtos/generics/creddef.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/creddef.record.dto.ts
@@ -1,4 +1,5 @@
 import { IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -7,10 +8,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 2. create credential definition response
 
 
-export class CreddefRecordDto {
-  @IsNotEmpty()
-  @IsString()
-  credentialDefinitionId: string;
+export class CreddefRecordDto extends BaseRecordDto {
 
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/credential.record.dto.ts b/libs/dtos/src/dtos/generics/credential.record.dto.ts
index 4ca5d5719960d351b8e79b515a4536e0847213dc..587a46d2b90af26d243e096a80c752eb75a9b349 100644
--- a/libs/dtos/src/dtos/generics/credential.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/credential.record.dto.ts
@@ -7,6 +7,7 @@ import {
 } from "class-validator";
 import { Type } from "class-transformer";
 import { IssueCredentialAttributes } from "../requests/issue.credential.request.dto";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -16,25 +17,25 @@ import { IssueCredentialAttributes } from "../requests/issue.credential.request.
 
 
 
-export class Credential {
-  @IsNotEmpty()
-  @IsString()
-  credentialRecordType: string;
+// export class Credential extends BaseRecordDto {
+//   @IsNotEmpty()
+//   @IsString()
+//   credentialRecordType: string;
 
-  @IsNotEmpty()
-  @IsString()
-  credentialRecordId: string;
-}
+//   @IsNotEmpty()
+//   @IsString()
+//   credentialRecordId: string;
+// }
 
-export class CredentialRecordDto {
-  @IsArray()
-  @ValidateNested({ each: true })
-  @Type(() => Credential)
-  credentials?: Array<Credential>;
+export class CredentialRecordDto extends BaseRecordDto {
+  // @IsArray()
+  // @ValidateNested({ each: true })
+  // @Type(() => Credential)
+  // credentials?: Array<Credential>;
 
   @IsNotEmpty()
   @IsString()
-  credentialId: string;
+  credentialRecordType: string;
 
   @IsString()
   connectionId?: string;
@@ -43,8 +44,4 @@ export class CredentialRecordDto {
   @ValidateNested({ each: true })
   @Type(() => IssueCredentialAttributes)
   attributes?: Array<IssueCredentialAttributes>;
-
-  @IsNotEmpty()
-  @IsDateString()
-  createdAt: Date;
 }
diff --git a/libs/dtos/src/dtos/generics/proof.record.dto.ts b/libs/dtos/src/dtos/generics/proof.record.dto.ts
index 5a71b0cdea8b27ebafea9daeb6970c5383e56921..37ce14ce2f06cb7c313fc264dcbf6bb3e2952138 100644
--- a/libs/dtos/src/dtos/generics/proof.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/proof.record.dto.ts
@@ -3,6 +3,7 @@ import {
   IsNotEmpty, 
   IsString 
 } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -11,22 +12,11 @@ import {
 // 2. get proof response
 // 3. issue proof response
 
-export class ProofRecordDto {
-  @IsString()
-  @IsNotEmpty()
-  proofId: string;
-
+export class ProofRecordDto extends BaseRecordDto {
   @IsString()
   connectionId?: string;
 
   @IsString()
   @IsNotEmpty()
   state: string;
-
-  @IsDateString()
-  updatedAt?: Date;
-
-  @IsNotEmpty()
-  @IsDateString()
-  createdAt: Date;
 }
diff --git a/libs/dtos/src/dtos/generics/schema.record.dto.ts b/libs/dtos/src/dtos/generics/schema.record.dto.ts
index 2c4e889b94adaa21b0ac262c9a8eade3c8059f20..bc5d219afd6e667e0a936db3d612d3a8d158d00d 100644
--- a/libs/dtos/src/dtos/generics/schema.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/schema.record.dto.ts
@@ -1,4 +1,5 @@
 import { IsDateString, IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -6,11 +7,7 @@ import { IsDateString, IsNotEmpty, IsString } from "class-validator";
 // 1. create schema response
 // 2. get schema response
 
-export class SchemaRecordDto {
-  @IsNotEmpty()
-  @IsString()
-  schemaId: string;
-
+export class SchemaRecordDto extends BaseRecordDto {
   @IsString()
   @IsNotEmpty()
   name: string;
@@ -22,9 +19,6 @@ export class SchemaRecordDto {
   @IsString()
   version: string;
 
-  @IsDateString()
-  updatedAt?: Date;
-
   @IsString()
   issuerId?: string;
 
diff --git a/libs/dtos/src/dtos/generics/connection.ref.dto.ts b/libs/dtos/src/dtos/requests/connection.req.dto.ts
similarity index 87%
rename from libs/dtos/src/dtos/generics/connection.ref.dto.ts
rename to libs/dtos/src/dtos/requests/connection.req.dto.ts
index a935be7c5031b9faf659eeb439973f92c40ed97f..2c63d34ce1e6b546c9d5966bc0272a31798591f3 100644
--- a/libs/dtos/src/dtos/generics/connection.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/connection.req.dto.ts
@@ -6,7 +6,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 1. get connection request
 
 
-export class ConnectionRefDto {
+export class ConnectionReqDto {
   //@example 6464b521-005a-4379-91e0-a3692b31cafd
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/creddef.ref.dto.ts b/libs/dtos/src/dtos/requests/creddef.req.dto.ts
similarity index 86%
rename from libs/dtos/src/dtos/generics/creddef.ref.dto.ts
rename to libs/dtos/src/dtos/requests/creddef.req.dto.ts
index 636e0fae06fee876d411745f0aa0e2402f972870..37284a401cebf171e2637e7ff4902806ec970e30 100644
--- a/libs/dtos/src/dtos/generics/creddef.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/creddef.req.dto.ts
@@ -5,7 +5,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 1. get credential definition request
 
 
-export class CreddefRefDto {
+export class CreddefReqDto {
   @IsNotEmpty()
   @IsString()
   credentialDefinitionId: string;
diff --git a/libs/dtos/src/dtos/generics/credential.ref.dto.ts b/libs/dtos/src/dtos/requests/credential.req.dto.ts
similarity index 88%
rename from libs/dtos/src/dtos/generics/credential.ref.dto.ts
rename to libs/dtos/src/dtos/requests/credential.req.dto.ts
index 16efe77a10d3b804ec7fd118dac7f00635a202e6..c2b6dcd88bc50865fb3d23b8dbbf4cfa594393ef 100644
--- a/libs/dtos/src/dtos/generics/credential.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/credential.req.dto.ts
@@ -9,7 +9,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 
 
 
-export class CredentialRefDto {
+export class CredentialReqDto {
   //@example cf8395a5-9a53-4e06-8a5d-04e0fc00ca04
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/proof.ref.dto.ts b/libs/dtos/src/dtos/requests/proof.req.dto.ts
similarity index 90%
rename from libs/dtos/src/dtos/generics/proof.ref.dto.ts
rename to libs/dtos/src/dtos/requests/proof.req.dto.ts
index a90a890bb66ed8b6d6d6a41618798e53f3f505e6..01a8d2c87f19d1557a9e9aec8cfdea2a2574fed8 100644
--- a/libs/dtos/src/dtos/generics/proof.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/proof.req.dto.ts
@@ -7,7 +7,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 2. decline proof request
 // 3. accept proof request
 
-export class ProofRefDto {
+export class ProofReqDto {
   @IsString()
   @IsNotEmpty()
   proofRecordId: string;
diff --git a/libs/dtos/src/dtos/generics/schema.ref.dto.ts b/libs/dtos/src/dtos/requests/schema.req.dto.ts
similarity index 90%
rename from libs/dtos/src/dtos/generics/schema.ref.dto.ts
rename to libs/dtos/src/dtos/requests/schema.req.dto.ts
index 8bc0debe2c82d07d846784c222c365ecf0e62e0c..6902b70448269c1c2d129cf076ff651cbdf5ec13 100644
--- a/libs/dtos/src/dtos/generics/schema.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/schema.req.dto.ts
@@ -5,7 +5,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 
 // 1. get schema request
 
-export class SchemaRefDto {
+export class SchemaReqDto {
   //@example "did:indy:LEDNGER:SXM76gQwRnjkgoz2oBnGjd/anoncreds/v0/SCHEMA/test schema/1.0.2"
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts b/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
index b1680199759aa47376774bc2e24fbc2c32ba6366..720dfca6ff49c31035b380b019f3fdecfdf34345 100644
--- a/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
+++ b/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
@@ -1,10 +1,7 @@
 import { IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "../generics/base.record.dto";
 
-export class MakeBasicMessageResponseDto {
-  @IsNotEmpty()
-  @IsString()
-  id: string;
-
+export class MakeBasicMessageResponseDto extends BaseRecordDto {
   // @example 6464b521-005a-4379-91e0-a3692b31cafd
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/events/dtoToEventTransformer.ts b/libs/dtos/src/events/dtoToEventTransformer.ts
index 328e56b2ee1e8a4154da47a1febed16528a11afa..32a4f9e5b0173405484bdfc034029a2c8a88ea44 100644
--- a/libs/dtos/src/events/dtoToEventTransformer.ts
+++ b/libs/dtos/src/events/dtoToEventTransformer.ts
@@ -11,24 +11,24 @@ import { ConnectionUnsupportedTypeError } from "../errors/connection.unsupported
 import { CreateCredentialDefinitionRequsetDto } from "../dtos/requests/create.credential.definition.request.dto";
 import { CreateInvitationResponseDto } from "../dtos/responses/create.invitation.response.dto";
 import { CreateSchemaRequestDto } from "../dtos/requests/create.schema.request.dto";
-import { ConnectionRefDto } from "../dtos/generics/connection.ref.dto";
+import { ConnectionReqDto } from "../dtos/requests/connection.req.dto";
 import { IssueCredentialRequestDto } from "../dtos/requests/issue.credential.request.dto";
 import { IssueProofRequestDto } from "../dtos/requests/issue.proof.request.dto";
-import { CredentialRefDto } from "../dtos/generics/credential.ref.dto";
+import { CredentialReqDto } from "../dtos/requests/credential.req.dto";
 import { MakeBasicMessageResponseDto } from "../dtos/responses/make.basic.message.response.dto";
 import { MakeBasicMessageRequestDto } from "../dtos/requests/make.basic.message.request.dto";
-import { ProofRefDto } from "../dtos/generics/proof.ref.dto";
+import { ProofReqDto } from "../dtos/requests/proof.req.dto";
 import { ProofRecordDto } from "../dtos/generics/proof.record.dto";
 
 export const makeEvent = (payload: {
   data:
     | null
     | IssueProofRequestDto
-    | CredentialRefDto
+    | CredentialReqDto
     | CreateInvitationResponseDto
-    | ConnectionRefDto
+    | ConnectionReqDto
     | CreateSchemaRequestDto
-    | ProofRefDto
+    | ProofReqDto
     | CreateSchemaRequestDto
     | CreateCredentialDefinitionRequsetDto
     | ProofRecordDto
diff --git a/libs/dtos/src/index.ts b/libs/dtos/src/index.ts
index f5021a4dc3719dde1ef6dda64d69fb32a9c08233..b3ab112035ce29aeee8489a1411440f4eda3c2b3 100644
--- a/libs/dtos/src/index.ts
+++ b/libs/dtos/src/index.ts
@@ -2,17 +2,18 @@ export * from "./dtos.module";
 
 
 export * from "./dtos/generics/connection.record.dto";
-export * from "./dtos/generics/connection.ref.dto";
 export * from "./dtos/generics/creddef.record.dto";
-export * from "./dtos/generics/creddef.ref.dto";
 export * from "./dtos/generics/credential.record.dto";
-export * from "./dtos/generics/credential.ref.dto";
 export * from "./dtos/generics/proof.record.dto";
-export * from "./dtos/generics/proof.ref.dto";
 export * from "./dtos/generics/schema.record.dto";
-export * from "./dtos/generics/schema.ref.dto";
 
 
+export * from "./dtos/requests/connection.req.dto";
+export * from "./dtos/requests/creddef.req.dto";
+export * from "./dtos/requests/credential.req.dto";
+export * from "./dtos/requests/proof.req.dto";
+export * from "./dtos/requests/schema.req.dto";
+
 export * from "./dtos/requests/create.schema.request.dto";
 export * from "./dtos/requests/create.credential.definition.request.dto";
 export * from "./dtos/requests/issue.credential.request.dto";