diff --git a/api/client.go b/api/client.go
index 03fd0b318e9da7c1b8b1bc10b198ac53d7478ffb..58189f738e062e604e9f5256f87414982032805f 100644
--- a/api/client.go
+++ b/api/client.go
@@ -976,6 +976,12 @@ func checkVersionAndSetupStorage(def *ndf.NetworkDefinition,
 		Source: protoUser.ReceptionID[:],
 	}, protoUser.ReceptionID)
 
+	storageSess.GetEdge().Add(edge.Preimage{
+		Data:   preimage.GenerateRequest(protoUser.ReceptionID),
+		Type:   preimage.Reset,
+		Source: protoUser.ReceptionID[:],
+	}, protoUser.ReceptionID)
+
 	if err != nil {
 		return nil, errors.WithMessage(err, "Failed to denote state "+
 			"change in session")
diff --git a/auth/cmix.go b/auth/cmix.go
index 0f76dd7efc1f757613c0cd43897afb851f4bd93a..9fceb57fb8a0a52912ce6ab2633397c80c8fc80d 100644
--- a/auth/cmix.go
+++ b/auth/cmix.go
@@ -34,7 +34,7 @@ func getMixPayloadSize(primeSize int) int {
 // is created.
 func sendAuthRequest(recipient *id.ID, contents, mac []byte, primeSize int,
 	fingerprint format.Fingerprint, net interfaces.NetworkManager,
-	cMixParams params.CMIX) (id.Round, error) {
+	cMixParams params.CMIX, reset bool) (id.Round, error) {
 	cmixMsg := format.NewMessage(primeSize)
 	cmixMsg.SetKeyFP(fingerprint)
 	cmixMsg.SetMac(mac)
@@ -42,8 +42,12 @@ func sendAuthRequest(recipient *id.ID, contents, mac []byte, primeSize int,
 
 	jww.INFO.Printf("Requesting Auth with %s, msgDigest: %s",
 		recipient, cmixMsg.Digest())
+	if reset {
+		cMixParams.IdentityPreimage = preimage.GenerateRequest(recipient)
+	} else {
+		cMixParams.IdentityPreimage = preimage.GenerateReset(recipient)
+	}
 
-	cMixParams.IdentityPreimage = preimage.GenerateRequest(recipient)
 	cMixParams.DebugTag = "auth.Request"
 	round, _, err := net.SendCMIX(cmixMsg, recipient, cMixParams)
 	if err != nil {
diff --git a/auth/request.go b/auth/request.go
index c7c9e16d87536b918f6d498ec9104d0960bc0131..8f39fc9db835f30e41e51e6a6fe5db377aef666f 100644
--- a/auth/request.go
+++ b/auth/request.go
@@ -181,7 +181,7 @@ func requestAuth(partner, me contact.Contact, rng io.Reader, reset bool,
 
 	cMixParams := params.GetDefaultCMIX()
 	rndID, err := sendAuthRequest(partner.ID, contents, mac, cMixPrimeSize,
-		requestfp, net, cMixParams)
+		requestfp, net, cMixParams, reset)
 	return rndID, err
 }
 
diff --git a/bindings/notifications.go b/bindings/notifications.go
index 7f393cf7271c253cf5e07771f9f570d89b69a3de..57972fbe45babeda42022a2cdd7751f0efc3c179 100644
--- a/bindings/notifications.go
+++ b/bindings/notifications.go
@@ -54,6 +54,7 @@ func (mnfmr *ManyNotificationForMeReport) Len() int {
 //	TYPE       	SOURCE				DESCRIPTION
 // 	"default"	recipient user ID	A message with no association
 //	"request"	sender user ID		A channel request has been received
+//	"reset"	    sender user ID		A channel reset has been received
 //	"confirm"	sender user ID		A channel request has been accepted
 //	"silent"	sender user ID		A message which should not be notified on
 //	"e2e"		sender user ID		reception of an E2E message
diff --git a/interfaces/preimage/generate.go b/interfaces/preimage/generate.go
index 84798d696a8b2311e6e89b01f64c885eb6c2d5b8..28e8a2fc48a528205e7f3cf05377474cb58552b5 100644
--- a/interfaces/preimage/generate.go
+++ b/interfaces/preimage/generate.go
@@ -28,3 +28,13 @@ func GenerateRequest(recipient *id.ID) []byte {
 	// Base 64 encode hash and truncate
 	return h.Sum(nil)
 }
+
+func GenerateReset(recipient *id.ID) []byte {
+	// Hash fingerprints
+	h, _ := blake2b.New256(nil)
+	h.Write(recipient[:])
+	h.Write([]byte(Reset))
+
+	// Base 64 encode hash and truncate
+	return h.Sum(nil)
+}
diff --git a/interfaces/preimage/types.go b/interfaces/preimage/types.go
index bd6226e623594561ef0338210af8824c1b789f27..7067c87a538f10aea3e778c255146c27277c418d 100644
--- a/interfaces/preimage/types.go
+++ b/interfaces/preimage/types.go
@@ -3,6 +3,7 @@ package preimage
 const (
 	Default = "default"
 	Request = "request"
+	Reset   = "reset"
 	Confirm = "confirm"
 	Silent  = "silent"
 	E2e     = "e2e"