diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
index 29a9036b4a78b8931471df3bb71bdde639c4eb89..610ab5c2d535ec3d94a85c838e60ce8d49095882 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
@@ -8,6 +8,7 @@ import io.elixxir.xxclient.cmix.CMix
 import io.elixxir.xxclient.dummytraffic.DummyTraffic
 import io.elixxir.xxclient.e2e.E2e
 import io.elixxir.xxclient.filetransfer.FileTransfer
+import io.elixxir.xxclient.groupchat.GroupChat
 import io.elixxir.xxclient.models.*
 import io.elixxir.xxclient.userdiscovery.UserDiscovery
 import io.elixxir.xxclient.utils.*
@@ -88,6 +89,12 @@ interface Bindings {
         randomRangeMS: Long
     ): DummyTraffic
 
+    fun newGroupChat(
+        e2eId: E2eId,
+        requestListener: GroupRequestListener,
+        messageListener: GroupMessageListener,
+    ): GroupChat
+
     fun registerLogger(logLevel: LogLevel, logWriter: LogWriter)
 
     fun initializeBackup(
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
index c51617e4fd61280704a082e0ae6843acbf2c5eec..06d1eccfbb0d580af64c25782785b9c49bf54f73 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
@@ -1,5 +1,6 @@
 package io.elixxir.xxclient.bindings
 
+import bindings.GroupChatProcessor
 import io.elixxir.xxclient.backup.Backup
 import io.elixxir.xxclient.backup.BackupAdapter
 import io.elixxir.xxclient.callbacks.*
@@ -15,6 +16,8 @@ import io.elixxir.xxclient.e2e.E2e
 import io.elixxir.xxclient.e2e.E2eAdapter
 import io.elixxir.xxclient.filetransfer.FileTransfer
 import io.elixxir.xxclient.filetransfer.FileTransferAdapter
+import io.elixxir.xxclient.groupchat.GroupChat
+import io.elixxir.xxclient.groupchat.GroupChatAdapter
 import io.elixxir.xxclient.models.*
 import io.elixxir.xxclient.models.BindingsModel.Companion.decode
 import io.elixxir.xxclient.models.BindingsModel.Companion.encode
@@ -180,6 +183,19 @@ open class BindingsAdapter : Bindings {
         )
     }
 
+    override fun newGroupChat(
+        e2eId: E2eId,
+        requestListener: GroupRequestListener,
+        messageListener: GroupMessageListener,
+    ): GroupChat {
+        val groupChat = CoreBindings.newGroupChat(
+            e2eId,
+            GroupRequestAdapter(requestListener),
+            GroupChatProcessorAdapter(messageListener)
+        )
+        return GroupChatAdapter(groupChat)
+    }
+
     override fun registerLogger(logLevel: LogLevel, logWriter: LogWriter) {
         CoreBindings.logLevel(logLevel.code)
         CoreBindings.registerLogWriter(logWriter)