diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedMS.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedMS.swift
new file mode 100644
index 0000000000000000000000000000000000000000..41960aba88bd4bf265529b05d9f0789b8263c37a
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedMS.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetCreatedMS {
+  public var run: () -> Int64
+
+  public func callAsFunction() -> Int64 {
+    run()
+  }
+}
+
+extension GroupGetCreatedMS {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetCreatedMS {
+    GroupGetCreatedMS(run: bindingsGroup.getCreatedMS)
+  }
+}
+
+extension GroupGetCreatedMS {
+  public static let unimplemented = GroupGetCreatedMS(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedNano.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedNano.swift
new file mode 100644
index 0000000000000000000000000000000000000000..982c0cc349ad07007821b8b6a49bbaca9f3fdc97
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetCreatedNano.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetCreatedNano {
+  public var run: () -> Int64
+
+  public func callAsFunction() -> Int64 {
+    run()
+  }
+}
+
+extension GroupGetCreatedNano {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetCreatedNano {
+    GroupGetCreatedNano(run: bindingsGroup.getCreatedNano)
+  }
+}
+
+extension GroupGetCreatedNano {
+  public static let unimplemented = GroupGetCreatedNano(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetId.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetId.swift
new file mode 100644
index 0000000000000000000000000000000000000000..85f7509b85e4386de3f45a5a37a6de186a7baa0c
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetId.swift
@@ -0,0 +1,27 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetId {
+  public var run: () -> Data
+
+  public func callAsFunction() -> Data {
+    run()
+  }
+}
+
+extension GroupGetId {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetId {
+    GroupGetId {
+      guard let data = bindingsGroup.getID() else {
+        fatalError("BindingsGroup.getID returned `nil`")
+      }
+      return data
+    }
+  }
+}
+
+extension GroupGetId {
+  public static let unimplemented = GroupGetId(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetInitMessage.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetInitMessage.swift
new file mode 100644
index 0000000000000000000000000000000000000000..b3ac47d8795313e71afbb8949997831d802a3c04
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetInitMessage.swift
@@ -0,0 +1,27 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetInitMessage {
+  public var run: () -> Data
+
+  public func callAsFunction() -> Data {
+    run()
+  }
+}
+
+extension GroupGetInitMessage {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetInitMessage {
+    GroupGetInitMessage {
+      guard let data = bindingsGroup.getInitMessage() else {
+        fatalError("BindingsGroup.getInitMessage returned `nil`")
+      }
+      return data
+    }
+  }
+}
+
+extension GroupGetInitMessage {
+  public static let unimplemented = GroupGetInitMessage(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetMembership.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetMembership.swift
new file mode 100644
index 0000000000000000000000000000000000000000..1d78a2486781187817b022a96741b12c8217cbf6
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetMembership.swift
@@ -0,0 +1,24 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetMembership {
+  public var run: () throws -> Data
+
+  public func callAsFunction() throws -> Data {
+    try run()
+  }
+}
+
+extension GroupGetMembership {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetMembership {
+    GroupGetMembership {
+      try bindingsGroup.getMembership()
+    }
+  }
+}
+
+extension GroupGetMembership {
+  public static let unimplemented = GroupGetMembership(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetName.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetName.swift
new file mode 100644
index 0000000000000000000000000000000000000000..f355a1646954a30ff124cb92ef0275fbc36278f5
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetName.swift
@@ -0,0 +1,27 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetName {
+  public var run: () -> Data
+
+  public func callAsFunction() -> Data {
+    run()
+  }
+}
+
+extension GroupGetName {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetName {
+    GroupGetName {
+      guard let data = bindingsGroup.getName() else {
+        fatalError("BindingsGroup.getName returned `nil`")
+      }
+      return data
+    }
+  }
+}
+
+extension GroupGetName {
+  public static let unimplemented = GroupGetName(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetTrackedId.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetTrackedId.swift
new file mode 100644
index 0000000000000000000000000000000000000000..4ec389e0395a9926b9efcca73dfc32e2a50ea5be
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupGetTrackedId.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupGetTrackedId {
+  public var run: () -> Int
+
+  public func callAsFunction() -> Int {
+    run()
+  }
+}
+
+extension GroupGetTrackedId {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupGetTrackedId {
+    GroupGetTrackedId(run: bindingsGroup.getTrackedID)
+  }
+}
+
+extension GroupGetTrackedId {
+  public static let unimplemented = GroupGetTrackedId(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Group/Functors/GroupSerialize.swift b/Sources/ElixxirDAppsSDK/Group/Functors/GroupSerialize.swift
new file mode 100644
index 0000000000000000000000000000000000000000..aa6cea1e777b727fad0e0db1fd7c8283c3afb5bc
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Functors/GroupSerialize.swift
@@ -0,0 +1,28 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct GroupSerialize {
+  public var run: () -> Data
+
+  public func callAsFunction() -> Data {
+    run()
+  }
+}
+
+extension GroupSerialize {
+  public static func live(_ bindingsGroup: BindingsGroup) -> GroupSerialize {
+    GroupSerialize {
+      guard let data = bindingsGroup.serialize() else {
+        fatalError("BindingsGroup.serialize returned `nil`")
+      }
+      return data
+    }
+  }
+}
+
+extension GroupSerialize {
+  public static let unimplemented = GroupSerialize(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
+
diff --git a/Sources/ElixxirDAppsSDK/Group/Group.swift b/Sources/ElixxirDAppsSDK/Group/Group.swift
new file mode 100644
index 0000000000000000000000000000000000000000..8fa754996cc0be4db4722d79e10d8c9d656b7ea6
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/Group/Group.swift
@@ -0,0 +1,41 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct Group {
+  public var getCreatedMS: GroupGetCreatedMS
+  public var getCreatedNano: GroupGetCreatedNano
+  public var getId: GroupGetId
+  public var getInitMessage: GroupGetInitMessage
+  public var getMembership: GroupGetMembership
+  public var getName: GroupGetName
+  public var getTrackedID: GroupGetTrackedId
+  public var serialize: GroupSerialize
+}
+
+extension Group {
+  public static func live(_ bindingsGroup: BindingsGroup) -> Group {
+    Group(
+      getCreatedMS: .live(bindingsGroup),
+      getCreatedNano: .live(bindingsGroup),
+      getId: .live(bindingsGroup),
+      getInitMessage: .live(bindingsGroup),
+      getMembership: .live(bindingsGroup),
+      getName: .live(bindingsGroup),
+      getTrackedID: .live(bindingsGroup),
+      serialize: .live(bindingsGroup)
+    )
+  }
+}
+
+extension Group {
+  public static let unimplemented = Group(
+    getCreatedMS: .unimplemented,
+    getCreatedNano: .unimplemented,
+    getId: .unimplemented,
+    getInitMessage: .unimplemented,
+    getMembership: .unimplemented,
+    getName: .unimplemented,
+    getTrackedID: .unimplemented,
+    serialize: .unimplemented
+  )
+}