diff --git a/Sources/XXClient/Functions/NewOrLoadUd.swift b/Sources/XXClient/Functions/NewOrLoadUd.swift
index f0a69b0271c1253044db9cddbe8480b35ca6e3dd..35d26b68306b0f1519bc8c57dbab6414b3d5e2f8 100644
--- a/Sources/XXClient/Functions/NewOrLoadUd.swift
+++ b/Sources/XXClient/Functions/NewOrLoadUd.swift
@@ -3,6 +3,20 @@ import XCTestDynamicOverlay
 
 public struct NewOrLoadUd {
   public struct Params: Equatable {
+    public init(
+      e2eId: Int,
+      username: String?,
+      registrationValidationSignature: Data?,
+      environment: UDEnvironment
+    ) {
+      self.e2eId = e2eId
+      self.username = username
+      self.registrationValidationSignature = registrationValidationSignature
+      self.cert = environment.cert
+      self.contact = environment.contact
+      self.address = environment.address
+    }
+
     public init(
       e2eId: Int,
       username: String?,