diff --git a/e2e/parse/partition/store_test.go b/e2e/parse/partition/store_test.go
index 909de9b829d54e7b07fc4936ed82bdd2337ccc5f..29526a2b829ad23e53f17ada0e2c393daf5fda5b 100644
--- a/e2e/parse/partition/store_test.go
+++ b/e2e/parse/partition/store_test.go
@@ -11,6 +11,7 @@ import (
 	"bytes"
 	"gitlab.com/elixxir/client/catalog"
 	"gitlab.com/elixxir/client/storage/versioned"
+	"gitlab.com/elixxir/crypto/e2e"
 	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
@@ -39,15 +40,27 @@ func TestNewOrLoad(t *testing.T) {
 func TestStore_AddFirst(t *testing.T) {
 	part := []byte("Test message.")
 	s := NewOrLoad(versioned.NewKV(ekv.MakeMemstore()))
+	b := make([]byte, e2e.KeyResidueLength)
+	kr, err := e2e.UnmarshalKeyResidue(b)
+	if err != nil {
+		t.Fatalf("Failed to unmarshal key residue: %+v", err)
+	}
 
-	msg, complete := s.AddFirst(id.NewIdFromString("User", id.User, t),
+	msg, receivedKr, complete := s.AddFirst(id.NewIdFromString("User", id.User, t),
 		catalog.XxMessage, 5, 0, 1, netTime.Now(), netTime.Now(), part,
-		[]byte{0})
+		[]byte{0}, kr)
 
 	if !complete {
 		t.Errorf("AddFirst returned that the message was not complete.")
 	}
 
+	if !bytes.Equal(receivedKr[:], kr[:]) {
+		t.Fatalf("Key residue returned from complete partition did not "+
+			"match first key signature."+
+			"\nExpected: %v"+
+			"\nReceived: %v", kr, receivedKr)
+	}
+
 	if !bytes.Equal(part, msg.Payload) {
 		t.Errorf("AddFirst returned message with invalid payload."+
 			"\nexpected: %v\nreceived: %v", part, msg.Payload)
@@ -59,21 +72,33 @@ func TestStore_Add(t *testing.T) {
 	part1 := []byte("Test message.")
 	part2 := []byte("Second Sentence.")
 	s := NewOrLoad(versioned.NewKV(ekv.MakeMemstore()))
+	b := make([]byte, e2e.KeyResidueLength)
+	kr, err := e2e.UnmarshalKeyResidue(b)
+	if err != nil {
+		t.Fatalf("Failed to unmarshal key residue: %+v", err)
+	}
 
-	msg, complete := s.AddFirst(id.NewIdFromString("User", id.User, t),
+	msg, _, complete := s.AddFirst(id.NewIdFromString("User", id.User, t),
 		catalog.XxMessage, 5, 0, 2, netTime.Now(), netTime.Now(), part1,
-		[]byte{0})
+		[]byte{0}, kr)
 
 	if complete {
 		t.Errorf("AddFirst returned that the message was complete.")
 	}
 
-	msg, complete = s.Add(id.NewIdFromString("User", id.User, t),
+	msg, receivedKr, complete := s.Add(id.NewIdFromString("User", id.User, t),
 		5, 1, part2, []byte{0})
 	if !complete {
 		t.Errorf("AddFirst returned that the message was not complete.")
 	}
 
+	if !bytes.Equal(receivedKr[:], kr[:]) {
+		t.Fatalf("Key residue returned from complete partition did not "+
+			"match first key signature."+
+			"\nExpected: %v"+
+			"\nReceived: %v", kr, receivedKr)
+	}
+
 	part := append(part1, part2...)
 	if !bytes.Equal(part, msg.Payload) {
 		t.Errorf("AddFirst returned message with invalid payload."+
@@ -92,10 +117,15 @@ func TestStore_prune(t *testing.T) {
 	partner1 := id.NewIdFromString("User", id.User, t)
 	messageId1 := uint64(5)
 	oldTimestamp := netTime.Now().Add(-2 * clearPartitionThreshold)
+	b := make([]byte, e2e.KeyResidueLength)
+	kr, err := e2e.UnmarshalKeyResidue(b)
+	if err != nil {
+		t.Fatalf("Failed to unmarshal key residue: %+v", err)
+	}
 	s.AddFirst(partner1,
 		catalog.XxMessage, messageId1, 0, 2, netTime.Now(),
 		oldTimestamp, part1,
-		[]byte{0})
+		[]byte{0}, kr)
 	s.Add(partner1, messageId1, 1, part2, []byte{0})
 
 	partner2 := id.NewIdFromString("User1", id.User, t)
@@ -103,7 +133,7 @@ func TestStore_prune(t *testing.T) {
 	newTimestamp := netTime.Now()
 	s.AddFirst(partner2, catalog.XxMessage, messageId2, 0, 2, netTime.Now(),
 		newTimestamp, part1,
-		[]byte{0})
+		[]byte{0}, kr)
 
 	// Call clear messages
 	s.prune()