diff --git a/go.mod b/go.mod
index fc8b510daa1059837a956080596388c850329d84..b445aeeb24388c315b705026c59193b2af5836be 100644
--- a/go.mod
+++ b/go.mod
@@ -7,8 +7,8 @@ require (
 	github.com/hack-pad/go-indexeddb v0.2.0
 	github.com/pkg/errors v0.9.1
 	github.com/spf13/jwalterweatherman v1.1.0
-	gitlab.com/elixxir/client v1.5.1-0.20221013003505-494df928ddd1
-	gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322
+	gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4
+	gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80
 	gitlab.com/elixxir/primitives v0.0.3-0.20220901220638-1acc75fabdc6
 	gitlab.com/xx_network/crypto v0.0.5-0.20220913213008-98764f5b3287
 	gitlab.com/xx_network/primitives v0.0.4-0.20221010192422-3479f09b7769
diff --git a/go.sum b/go.sum
index a3f5baa4d7581adfb20048a3def83250891d7465..00493640e74acdbcc4a4b0530b8420b89ccb5df8 100644
--- a/go.sum
+++ b/go.sum
@@ -614,15 +614,15 @@ github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
 github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
 gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f h1:yXGvNBqzZwAhDYlSnxPRbgor6JWoOt1Z7s3z1O9JR40=
 gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f/go.mod h1:H6jztdm0k+wEV2QGK/KYA+MY9nj9Zzatux/qIvDDv3k=
-gitlab.com/elixxir/client v1.5.1-0.20221013003505-494df928ddd1 h1:a9+ffQQhSP1aO74gonTfCeoSp1J1ufhSN3QYEYkCFKY=
-gitlab.com/elixxir/client v1.5.1-0.20221013003505-494df928ddd1/go.mod h1:S9sX17C6Gcw9oKFpTjPjcAW4eVFNxQhOURPxgqGz78M=
+gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4 h1:zXEWsMHQ3aQr/8LnPytIeQ8cMkpKm4kNpBXgKFj06I0=
+gitlab.com/elixxir/client v1.5.1-0.20221014161854-3e3de2653aa4/go.mod h1:oSbLC/5yibV2zZk9iI6Cm8F44+I80fQfP6qw9QaGaeI=
 gitlab.com/elixxir/comms v0.0.4-0.20221011183106-8c4450ba3cfb h1:aw7Ao1oqho+97gO35HkzBmv2e25qluRXEiNXw/oD8MM=
 gitlab.com/elixxir/comms v0.0.4-0.20221011183106-8c4450ba3cfb/go.mod h1:oRteMH+R5t1j/FZ+KJJnZUcqJO2sLXnWksN5HPkZUIo=
 gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c=
 gitlab.com/elixxir/crypto v0.0.3/go.mod h1:ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
 gitlab.com/elixxir/crypto v0.0.7-0.20220913220142-ab0771bad0af/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok=
-gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322 h1:8unQE70BDNRXTWUbjOO9d4kWyh19LySlTZo0Jqx0gPE=
-gitlab.com/elixxir/crypto v0.0.7-0.20221003185354-b091598d2322/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok=
+gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80 h1:M9imzr2ZrD0GXsR+nfrzLnJ8Y9axj2Pvq8CTDE+IQb4=
+gitlab.com/elixxir/crypto v0.0.7-0.20221014161526-ce04e14b9f80/go.mod h1:QF8SzsrYh9Elip9EUYUDAhPjqO9DGrrrQxYHvn+VXok=
 gitlab.com/elixxir/ekv v0.2.1 h1:dtwbt6KmAXG2Tik5d60iDz2fLhoFBgWwST03p7T+9Is=
 gitlab.com/elixxir/ekv v0.2.1/go.mod h1:USLD7xeDnuZEavygdrgzNEwZXeLQJK/w1a+htpN+JEU=
 gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
diff --git a/wasm/channels.go b/wasm/channels.go
index b8e58b14c22c2195fe2875edd26aa835ad498791..401bec7ad72c767715758216c63d325b59ea1edf 100644
--- a/wasm/channels.go
+++ b/wasm/channels.go
@@ -41,16 +41,17 @@ func newChannelsManagerJS(api *bindings.ChannelsManager) map[string]interface{}
 		"ReplayChannel": js.FuncOf(cm.ReplayChannel),
 
 		// Channel Sending Methods and Reports
-		"SendGeneric":      js.FuncOf(cm.SendGeneric),
-		"SendAdminGeneric": js.FuncOf(cm.SendAdminGeneric),
-		"SendMessage":      js.FuncOf(cm.SendMessage),
-		"SendReply":        js.FuncOf(cm.SendReply),
-		"SendReaction":     js.FuncOf(cm.SendReaction),
-		"GetIdentity":      js.FuncOf(cm.GetIdentity),
-		"GetStorageTag":    js.FuncOf(cm.GetStorageTag),
-		"SetNickname":      js.FuncOf(cm.SetNickname),
-		"DeleteNickname":   js.FuncOf(cm.DeleteNickname),
-		"GetNickname":      js.FuncOf(cm.GetNickname),
+		"SendGeneric":           js.FuncOf(cm.SendGeneric),
+		"SendAdminGeneric":      js.FuncOf(cm.SendAdminGeneric),
+		"SendMessage":           js.FuncOf(cm.SendMessage),
+		"SendReply":             js.FuncOf(cm.SendReply),
+		"SendReaction":          js.FuncOf(cm.SendReaction),
+		"GetIdentity":           js.FuncOf(cm.GetIdentity),
+		"ExportPrivateIdentity": js.FuncOf(cm.ExportPrivateIdentity),
+		"GetStorageTag":         js.FuncOf(cm.GetStorageTag),
+		"SetNickname":           js.FuncOf(cm.SetNickname),
+		"DeleteNickname":        js.FuncOf(cm.DeleteNickname),
+		"GetNickname":           js.FuncOf(cm.GetNickname),
 
 		// Channel Receiving Logic and Callback Registration
 		"RegisterReceiveHandler": js.FuncOf(cm.RegisterReceiveHandler),
@@ -686,6 +687,25 @@ func (ch *ChannelsManager) GetIdentity(js.Value, []js.Value) interface{} {
 	return utils.CopyBytesToJS(i)
 }
 
+// ExportPrivateIdentity encrypts and exports the private identity to a portable
+// string.
+//
+// Parameters:
+//  - args[0] - Password to encrypt the identity with (string).
+//
+// Returns:
+//  - JSON of the encrypted private identity (Uint8Array).
+//  - Throws TypeError if exporting the identity fails.
+func (ch *ChannelsManager) ExportPrivateIdentity(_ js.Value, args []js.Value) interface{} {
+	i, err := ch.api.ExportPrivateIdentity(args[0].String())
+	if err != nil {
+		utils.Throw(utils.TypeError, err)
+		return nil
+	}
+
+	return utils.CopyBytesToJS(i)
+}
+
 // GetStorageTag returns the storage tag needed to reload the manager.
 //
 // Returns: