diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift
index 118861456987df2a00aa602905c6413709141a94..b11f08e2cd28af177ff5eb990bf29e09af6184cd 100644
--- a/Sources/ElixxirDAppsSDK/E2E.swift
+++ b/Sources/ElixxirDAppsSDK/E2E.swift
@@ -13,6 +13,7 @@ public struct E2E {
   public var addService: E2EAddService
   public var removeService: E2ERemoveService
   public var hasAuthenticatedChannel: E2EHasAuthenticatedChannel
+  public var requestAuthenticatedChannel: E2ERequestAuthenticatedChannel
   public var callAllReceivedRequests: E2ECallAllReceivedRequests
   public var send: E2ESend
 
@@ -34,6 +35,7 @@ extension E2E {
       addService: .live(bindingsE2E),
       removeService: .live(bindingsE2E),
       hasAuthenticatedChannel: .live(bindingsE2E),
+      requestAuthenticatedChannel: .live(bindingsE2E),
       callAllReceivedRequests: .live(bindingsE2E),
       send: .live(bindingsE2E)
     )
@@ -54,6 +56,7 @@ extension E2E {
     addService: .unimplemented,
     removeService: .unimplemented,
     hasAuthenticatedChannel: .unimplemented,
+    requestAuthenticatedChannel: .unimplemented,
     callAllReceivedRequests: .unimplemented,
     send: .unimplemented
   )
diff --git a/Sources/ElixxirDAppsSDK/E2ERequestAuthenticatedChannel.swift b/Sources/ElixxirDAppsSDK/E2ERequestAuthenticatedChannel.swift
new file mode 100644
index 0000000000000000000000000000000000000000..abba09c78fd2581e7fe4ddf39bad0836714baeb8
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/E2ERequestAuthenticatedChannel.swift
@@ -0,0 +1,33 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2ERequestAuthenticatedChannel {
+  public var run: (Data, String) throws -> Int64
+
+  public func callAsFunction(
+    partnerContact: Data,
+    myFactsString: String
+  ) throws -> Int64 {
+    try run(partnerContact, myFactsString)
+  }
+}
+
+extension E2ERequestAuthenticatedChannel {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2ERequestAuthenticatedChannel {
+    E2ERequestAuthenticatedChannel { partnerContact, myFactsString in
+      var roundId: Int64 = 0
+      try bindingsE2E.request(
+        partnerContact,
+        myFactsString: myFactsString,
+        ret0_: &roundId
+      )
+      return roundId
+    }
+  }
+}
+
+extension E2ERequestAuthenticatedChannel {
+  public static let unimplemented = E2ERequestAuthenticatedChannel(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}