diff --git a/libs/askar/src/agent.utils.ts b/libs/askar/src/agent.utils.ts
index 1f49aa05c58b46e25d79e703d50f9c67c776104f..da302db16bc86cb7e360bcd3179b15fffc4f5c0f 100644
--- a/libs/askar/src/agent.utils.ts
+++ b/libs/askar/src/agent.utils.ts
@@ -65,6 +65,7 @@ import {
   SvdxDidResolver,
   SvdxModule,
   DefaultIpfsClient,
+  SvdxRecordsApi,
 } from "@vereign/credo-did-svdx";
 
 import { SubjectInboundTransport } from "./askar/transports/agent.subject.inbound.transport";
@@ -204,9 +205,43 @@ export const generateDidWeb = async ({
   console.log(JSON.stringify(didDocumentInstance.toJSON(), null, 2));
 };
 
-export const generateRandomDidSvdx = async (agent: Agent) => {
+export const generateDidSvdxForEmail = async (agent: Agent, email: string) => {
   const seed = crypto.randomBytes(46).toString("hex");
-  return generateDidSvdx({ agent, seed });
+  const activeKey = await generateKey({ seed, agent });
+  const nextKey = await generateKey({ seed, agent }); // TODO Where to find next key?
+
+  const WalletKeyPair = createWalletKeyPairClass(agent.context.wallet);
+
+  const keyPair = new WalletKeyPair({
+    id: `key-1`,
+    controller: `did:svdx:${activeKey.fingerprint}`,
+    key: activeKey,
+    wallet: agent.context.wallet,
+  });
+
+  const didResult = await agent.dids.create({
+    method: "svdx",
+    options: {
+      inceptionKey: activeKey,
+      nextKey: nextKey,
+      signer: { signer: () => keyPair.signer() },
+    },
+  });
+  console.log(didResult);
+
+  if (!didResult.didState.didDocument) {
+    throw new Error("Could not create did svdx");
+  }
+
+  const svdxApi: SvdxRecordsApi = agent.modules["svdx"];
+  await svdxApi.save({
+    email: email,
+    did: didResult.didState.did!,
+    activeKey: activeKey.publicKeyBase58,
+    nextKey: nextKey.publicKeyBase58,
+  });
+
+  return didResult;
 };
 
 export const generateDidSvdx = async ({
diff --git a/libs/askar/src/askar/services/agent.ocm.service.ts b/libs/askar/src/askar/services/agent.ocm.service.ts
index 6b353ea8f6539789d67d47242c65bc60a431eeee..a650e9bd653e7ef66797b51cdc59f80d0da5f1a1 100644
--- a/libs/askar/src/askar/services/agent.ocm.service.ts
+++ b/libs/askar/src/askar/services/agent.ocm.service.ts
@@ -1,7 +1,7 @@
 import { Injectable, Logger } from "@nestjs/common";
 import { EntityNotFoundError, RequestSenderEmailVcDto } from "@ocm-engine/dtos";
 import { CatalogClient } from "../clients/catalog.client";
-import { generateRandomDidSvdx } from "../../agent.utils";
+import { generateDidSvdxForEmail } from "../../agent.utils";
 import { AskarService } from "./askar.service";
 import { IConfCatalog } from "@ocm-engine/config";
 import { ConfigService } from "@nestjs/config";
@@ -55,7 +55,10 @@ export class AgentOcmService {
       };
     }
 
-    const newDidSvdx = await generateRandomDidSvdx(this.askar.agent);
+    const newDidSvdx = await generateDidSvdxForEmail(
+      this.askar.agent,
+      dto.email,
+    );
 
     if (!newDidSvdx.didState.did) {
       throw new Error("Svdx did generation failed");