diff --git a/test/onchain-identity/identity-trusted.test.ts b/test/onchain-identity/identity-trusted.test.ts
index 9e55a0ff..7e3b299c 100644
--- a/test/onchain-identity/identity-trusted.test.ts
+++ b/test/onchain-identity/identity-trusted.test.ts
@@ -5,7 +5,7 @@ import { deployPoseidons } from "../../helpers/PoseidonDeployHelper";
 import { AbiCoder } from "ethers";
 import { hexToBytes } from "@0xpolygonid/js-sdk";
 
-describe("Next tests reproduce identity life cycle", function () {
+describe("Next tests reproduce identity trusted life cycle", function () {
   this.timeout(10000);
 
   let identity;
@@ -36,8 +36,66 @@ describe("Next tests reproduce identity life cycle", function () {
     );
   });
 
+  describe("create identity", function () {
+    it("deploy state and identity", async function () {
+      expect(await identity.getIsOldStateGenesis()).to.be.equal(true);
+    });
+
+    it("validate identity's id", async function () {
+      const id = await identity.getId();
+      expect(id).to.be.equal(identityId);
+    });
+  });
+
+  describe("validate initial identity", function () {
+    let initialClaimTreeRoot, initialRevocationTreeRoot, initialRootOfRootsTreeRoot: any;
+    before(async function () {
+      initialClaimTreeRoot = await identity.getClaimsTreeRoot();
+      initialRevocationTreeRoot = await identity.getRevocationsTreeRoot();
+      initialRootOfRootsTreeRoot = await identity.getRootsTreeRoot();
+    });
+
+    it("trees should be empty", async function () {
+      expect(initialClaimTreeRoot).be.equal(0);
+      expect(initialRevocationTreeRoot).to.be.equal(0);
+      expect(initialRootOfRootsTreeRoot).to.be.equal(0);
+    });
+
+    it("last roots should be empty", async function () {
+      const lastClaimTreeRoot = await identity.getLatestPublishedClaimsRoot();
+      const lastRevocationTreeRoot = await identity.getLatestPublishedRevocationsRoot();
+      const lastRootOfRootsTreeRoot = await identity.getLatestPublishedRootsRoot();
+
+      expect(lastClaimTreeRoot).to.be.equal(initialClaimTreeRoot);
+      expect(lastRevocationTreeRoot).to.be.equal(0);
+      expect(lastRootOfRootsTreeRoot).to.be.equal(0);
+    });
+    it("since the identity did not perform the transition - the isGenesis flag should be true", async function () {
+      const isOldStateGenesis = await identity.getIsOldStateGenesis();
+      expect(isOldStateGenesis).to.be.true;
+    });
+    it("latest identity state should be empty", async function () {
+      latestSavedState = await identity.getLatestPublishedState();
+      expect(latestSavedState).to.be.equal(0);
+    });
+    it("getClaimProofWithStateInfo should return non-existence proof", async function () {
+      const proof = await identity.getClaimProofWithStateInfo(1);
+      expect(proof[0].existence).to.be.false;
+    });
+    it("getRevocationProofWithStateInfo should return non-existence proof", async function () {
+      const proof = await identity.getRevocationProofWithStateInfo(1);
+      expect(proof[0].existence).to.be.false;
+    });
+    it("getRootProofWithStateInfo should return non-existence proof", async function () {
+      const proof = await identity.getRootProofWithStateInfo(1);
+      expect(proof[0].existence).to.be.false;
+    });
+  });
+
   describe.only("test P-384", function () {
-    it("Generate signature and verify P-384", async function () {
+    let publicKeyCK, publicKey, signature, message, messageHash, messageBuffer;
+
+    before(async function () {
       /* const keyPair = await crypto.subtle.generateKey(
         {
           name: "ECDSA",
@@ -78,7 +136,7 @@ describe("Next tests reproduce identity life cycle", function () {
       // const publicKeyExtracted = await crypto.subtle.exportKey("jwk", publicKey);
       const publicKeyX = Buffer.from(jwkPublicKey.x!, "base64").toString("hex");
       const publicKeyY = Buffer.from(jwkPublicKey.y!, "base64").toString("hex");
-      const pubKey = `0x${publicKeyX}${publicKeyY}`;
+      publicKey = `0x${publicKeyX}${publicKeyY}`;
 
       // create claim and sign it
       const hashIndex = 1;
@@ -86,7 +144,7 @@ describe("Next tests reproduce identity life cycle", function () {
 
       const encoder = new AbiCoder();
       const messageEncoded = encoder.encode(["uint256", "uint256"], [hashIndex, hashValue]);
-      const messageBuffer = hexToBytes(messageEncoded);
+      messageBuffer = hexToBytes(messageEncoded);
       const messageHashBuffer = await crypto.subtle.digest("SHA-384", messageBuffer);
 
       /* 
@@ -99,7 +157,7 @@ describe("Next tests reproduce identity life cycle", function () {
         ["sign"],
       );
 
-      const publicKey = await crypto.subtle.importKey(
+      const publicKeyCK = await crypto.subtle.importKey(
         "jwk",
         jwkPublicKey,
         { name: "ECDSA", namedCurve: "P-384" },
@@ -124,7 +182,7 @@ describe("Next tests reproduce identity life cycle", function () {
           name: "ECDSA",
           hash: "SHA-384",
         },
-        publicKey,
+        publicKeyCK,
         signatureBuffer,
         messageBuffer,
       );
@@ -133,109 +191,66 @@ describe("Next tests reproduce identity life cycle", function () {
       const signature = `0x${Buffer.from(signatureBuffer).toString("hex")}`; */
 
       // Valid signature
-      const signature = `0x14e5ea76ab2b676b3e32d23c16e6b20d28cd6d2d34969ac4b506d54ad1ff552f3bf70a2cc4c04399f0702a1a9c5bfb8f5f102ec62b9b22274f52ed334bac46ca9967a0004d8af454f14ac3caa3f9d563b681b5719ef43f11a07bd7816ed81ac5`;
+      signature = `0x14e5ea76ab2b676b3e32d23c16e6b20d28cd6d2d34969ac4b506d54ad1ff552f3bf70a2cc4c04399f0702a1a9c5bfb8f5f102ec62b9b22274f52ed334bac46ca9967a0004d8af454f14ac3caa3f9d563b681b5719ef43f11a07bd7816ed81ac5`;
       // Not valid signature
-      // const signature = `0x9c07874a88b737dc3b1b9fb104049bf5c0ff22769583d7c379ca182b577919f12481632ac16b9dd125733ead052d2d31c917feb7b7523804f966931d9217bbdd18ea92ea424973fbf418b4495af2a03e82a819a8cfb00372fa921e4644c56e46`;
-      const message = messageEncoded; // `0x${Buffer.from(messageBuffer).toString("hex")}`;
-      const messageHash = `0x${Buffer.from(messageHashBuffer).toString("hex")}`;
+      // signature = `0x9c07874a88b737dc3b1b9fb104049bf5c0ff22769583d7c379ca182b577919f12481632ac16b9dd125733ead052d2d31c917feb7b7523804f966931d9217bbdd18ea92ea424973fbf418b4495af2a03e82a819a8cfb00372fa921e4644c56e46`;
+      message = messageEncoded; // `0x${Buffer.from(messageBuffer).toString("hex")}`;
+      messageHash = `0x${Buffer.from(messageHashBuffer).toString("hex")}`;
 
-      console.log(message, signature, pubKey, messageHash);
+      // console.log(message, signature, pubKey, messageHash);
 
-      const publicKey = await crypto.subtle.importKey(
+      publicKeyCK = await crypto.subtle.importKey(
         "jwk",
         jwkPublicKey,
         { name: "ECDSA", namedCurve: "P-384" },
         true,
         ["verify"],
       );
+    });
 
+    it("Verify signature P-384 with library", async function () {
       const verified = await crypto.subtle.verify(
         {
           name: "ECDSA",
           hash: "SHA-384",
         },
-        publicKey,
+        publicKeyCK,
         hexToBytes(signature),
         messageBuffer,
       );
       expect(verified).to.be.true;
-      console.log("verified with lib:", verified);
+    });
 
+    it("Verify signature P-384 with Identity SC", async function () {
       // Test SC SECP384r1 verification functions
-      const verifiedSC = await identity.verifySECP384r1(message, signature, pubKey);
+      const verifiedSC = await identity.verifySECP384r1(message, signature, publicKey);
       expect(verifiedSC).to.be.true;
 
       const verifiedSC2 = await identity.verifySECP384r1WithoutHashing(
         messageHash,
         signature,
-        pubKey,
+        publicKey,
       );
       expect(verifiedSC2).to.be.true;
+    });
+
+    it("Add claim with signature P-384", async function () {
+      await expect(
+        identity.addClaimHashWithSignature(1, 2, `0x${signature.slice(4)}`),
+      ).to.be.revertedWithCustomError(identity, "InvalidSignatureLength");
+
+      await expect(
+        identity.addClaimHashWithSignature(1, 2, `0x00${signature.slice(4)}`),
+      ).to.be.revertedWithCustomError(identity, "InvalidSignature");
 
       // Test adding claim with signature
-      await identity.addClaimHashWithSignature(1, 2, signature);
+      await expect(identity.addClaimHashWithSignature(1, 2, signature)).not.to.be.reverted;
       const proof = await identity.getClaimProof(1);
       expect(proof).to.be.not.null;
       expect(proof.existence).to.be.false;
     });
   });
 
-  describe("create identity", function () {
-    it("deploy state and identity", async function () {
-      expect(await identity.getIsOldStateGenesis()).to.be.equal(true);
-    });
-
-    it("validate identity's id", async function () {
-      const id = await identity.getId();
-      expect(id).to.be.equal(identityId);
-    });
-  });
-
-  describe("validate initial identity", function () {
-    let initialClaimTreeRoot, initialRevocationTreeRoot, initialRootOfRootsTreeRoot: any;
-    before(async function () {
-      initialClaimTreeRoot = await identity.getClaimsTreeRoot();
-      initialRevocationTreeRoot = await identity.getRevocationsTreeRoot();
-      initialRootOfRootsTreeRoot = await identity.getRootsTreeRoot();
-    });
-
-    it("trees should be empty", async function () {
-      expect(initialClaimTreeRoot).be.equal(0);
-      expect(initialRevocationTreeRoot).to.be.equal(0);
-      expect(initialRootOfRootsTreeRoot).to.be.equal(0);
-    });
-
-    it("last roots should be empty", async function () {
-      const lastClaimTreeRoot = await identity.getLatestPublishedClaimsRoot();
-      const lastRevocationTreeRoot = await identity.getLatestPublishedRevocationsRoot();
-      const lastRootOfRootsTreeRoot = await identity.getLatestPublishedRootsRoot();
-
-      expect(lastClaimTreeRoot).to.be.equal(initialClaimTreeRoot);
-      expect(lastRevocationTreeRoot).to.be.equal(0);
-      expect(lastRootOfRootsTreeRoot).to.be.equal(0);
-    });
-    it("since the identity did not perform the transition - the isGenesis flag should be true", async function () {
-      const isOldStateGenesis = await identity.getIsOldStateGenesis();
-      expect(isOldStateGenesis).to.be.true;
-    });
-    it("latest identity state should be empty", async function () {
-      latestSavedState = await identity.getLatestPublishedState();
-      expect(latestSavedState).to.be.equal(0);
-    });
-    it("getClaimProofWithStateInfo should return non-existence proof", async function () {
-      const proof = await identity.getClaimProofWithStateInfo(1);
-      expect(proof[0].existence).to.be.false;
-    });
-    it("getRevocationProofWithStateInfo should return non-existence proof", async function () {
-      const proof = await identity.getRevocationProofWithStateInfo(1);
-      expect(proof[0].existence).to.be.false;
-    });
-    it("getRootProofWithStateInfo should return non-existence proof", async function () {
-      const proof = await identity.getRootProofWithStateInfo(1);
-      expect(proof[0].existence).to.be.false;
-    });
-  });
-
   describe("add claim", function () {
     let initialClaimTreeRoot,
       initialRevocationTreeRoot,