diff --git a/bindings/e2eAuth.go b/bindings/e2eAuth.go
index 57ea1fe4fa1bb8306951a4c2ae0c23e923678546..b2277eb3e3c77ae54ab933dae3b23c9edee9ef25 100644
--- a/bindings/e2eAuth.go
+++ b/bindings/e2eAuth.go
@@ -8,6 +8,7 @@
 package bindings
 
 import (
+	"encoding/json"
 	"gitlab.com/elixxir/client/xxdk"
 	"gitlab.com/elixxir/crypto/contact"
 	"gitlab.com/elixxir/primitives/fact"
@@ -38,17 +39,26 @@ import (
 //
 // Returns:
 //  - int64 - ID of the round (convert to uint64)
-func (e *E2e) Request(partnerContact []byte, myFactsString string) (int64, error) {
-	partner, err := contact.Unmarshal(partnerContact)
+func (e *E2e) Request(partnerContact, factsListJson []byte) (int64, error) {
+	var factsList []Fact
+	err := json.Unmarshal(factsListJson, &factsList)
 	if err != nil {
 		return 0, err
 	}
 
-	myFacts, _, err := fact.UnstringifyFactList(myFactsString)
+	partner, err := contact.Unmarshal(partnerContact)
 	if err != nil {
 		return 0, err
 	}
 
+	myFacts := fact.FactList{}
+	for _, f := range factsList {
+		myFacts = append(myFacts, fact.Fact{
+			Fact: f.Fact,
+			T:    fact.FactType(f.Type),
+		})
+	}
+
 	roundID, err := e.api.GetAuth().Request(partner, myFacts)
 
 	return int64(roundID), err