diff --git a/Sources/XXClient/E2E/E2E.swift b/Sources/XXClient/E2E/E2E.swift
index 608ccc6e3703e8818fff89705d5e822fae758916..7dea50476dee3b44b1d3172c243327991b19eff6 100644
--- a/Sources/XXClient/E2E/E2E.swift
+++ b/Sources/XXClient/E2E/E2E.swift
@@ -10,6 +10,7 @@ public struct E2E {
   public var getUdAddressFromNdf: E2EGetUdAddressFromNdf
   public var getUdCertFromNdf: E2EGetUdCertFromNdf
   public var getUdContactFromNdf: E2EGetUdContactFromNdf
+  public var getUdEnvironmentFromNdf: E2EGetUdEnvironmentFromNdf
   public var payloadSize: E2EPayloadSize
   public var partitionSize: E2EPartitionSize
   public var addPartnerCallback: E2EAddPartnerCallback
@@ -40,6 +41,7 @@ extension E2E {
       getUdAddressFromNdf: .live(bindingsE2E),
       getUdCertFromNdf: .live(bindingsE2E),
       getUdContactFromNdf: .live(bindingsE2E),
+      getUdEnvironmentFromNdf: .live(bindingsE2E),
       payloadSize: .live(bindingsE2E),
       partitionSize: .live(bindingsE2E),
       addPartnerCallback: .live(bindingsE2E),
@@ -71,6 +73,7 @@ extension E2E {
     getUdAddressFromNdf: .unimplemented,
     getUdCertFromNdf: .unimplemented,
     getUdContactFromNdf: .unimplemented,
+    getUdEnvironmentFromNdf: .unimplemented,
     payloadSize: .unimplemented,
     partitionSize: .unimplemented,
     addPartnerCallback: .unimplemented,
diff --git a/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift b/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift
new file mode 100644
index 0000000000000000000000000000000000000000..547a1b632187fbb94ddf7ea0196092d6fd8f1c53
--- /dev/null
+++ b/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift
@@ -0,0 +1,28 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EGetUdEnvironmentFromNdf {
+  public var run: () throws -> UDEnvironment
+
+  public func callAsFunction() throws -> UDEnvironment {
+    try run()
+  }
+}
+
+extension E2EGetUdEnvironmentFromNdf {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EGetUdEnvironmentFromNdf {
+    E2EGetUdEnvironmentFromNdf {
+      UDEnvironment(
+        address: E2EGetUdAddressFromNdf.live(bindingsE2E)(),
+        cert: E2EGetUdCertFromNdf.live(bindingsE2E)(),
+        contact: try E2EGetUdContactFromNdf.live(bindingsE2E)()
+      )
+    }
+  }
+}
+
+extension E2EGetUdEnvironmentFromNdf {
+  public static let unimplemented = E2EGetUdEnvironmentFromNdf(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}