diff --git a/Frameworks/Bindings.txt b/Frameworks/Bindings.txt
index e77b06d527dadbc6d73073897cc37beb65f704bd..cec1da4111fcd335b53d1e363114a94685800fa8 100644
--- a/Frameworks/Bindings.txt
+++ b/Frameworks/Bindings.txt
@@ -1,4 +1,4 @@
-https://git.xx.network/elixxir/client/-/commit/2deedc730bbe8ff3a0888c666cdb096bdda56663
+https://git.xx.network/elixxir/client/-/commit/12eb14f16d4a786b073364333d5fb7add6aa6fb7
 go version go1.17.13 darwin/arm64
 Xcode 14.0 Build version 14A309
 gomobile bind target: ios,iossimulator,macos
diff --git a/Frameworks/Bindings.xcframework/Info.plist b/Frameworks/Bindings.xcframework/Info.plist
index 43fe32dad94767ae305b61db56f5604f8612617e..e66824e5243985b4ac053ef62aeaaf571fe03970 100644
--- a/Frameworks/Bindings.xcframework/Info.plist
+++ b/Frameworks/Bindings.xcframework/Info.plist
@@ -6,7 +6,7 @@
 	<array>
 		<dict>
 			<key>LibraryIdentifier</key>
-			<string>macos-arm64_x86_64</string>
+			<string>ios-arm64_x86_64-simulator</string>
 			<key>LibraryPath</key>
 			<string>Bindings.framework</string>
 			<key>SupportedArchitectures</key>
@@ -15,34 +15,34 @@
 				<string>x86_64</string>
 			</array>
 			<key>SupportedPlatform</key>
-			<string>macos</string>
+			<string>ios</string>
+			<key>SupportedPlatformVariant</key>
+			<string>simulator</string>
 		</dict>
 		<dict>
 			<key>LibraryIdentifier</key>
-			<string>ios-arm64_x86_64-simulator</string>
+			<string>ios-arm64</string>
 			<key>LibraryPath</key>
 			<string>Bindings.framework</string>
 			<key>SupportedArchitectures</key>
 			<array>
 				<string>arm64</string>
-				<string>x86_64</string>
 			</array>
 			<key>SupportedPlatform</key>
 			<string>ios</string>
-			<key>SupportedPlatformVariant</key>
-			<string>simulator</string>
 		</dict>
 		<dict>
 			<key>LibraryIdentifier</key>
-			<string>ios-arm64</string>
+			<string>macos-arm64_x86_64</string>
 			<key>LibraryPath</key>
 			<string>Bindings.framework</string>
 			<key>SupportedArchitectures</key>
 			<array>
 				<string>arm64</string>
+				<string>x86_64</string>
 			</array>
 			<key>SupportedPlatform</key>
-			<string>ios</string>
+			<string>macos</string>
 		</dict>
 	</array>
 	<key>CFBundlePackageType</key>
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings
index 028698e78d12ebe96e4ffd2d7e8e5ed848493dc9..3e4de76647083e287fb3285e065272666172135a 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index 8a469e985c895f732191ca1be50728da7528d8e3..96ddf1d0c47ebdea5dffbb77e053fbdd5e841798 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -84,6 +84,8 @@
 @class BindingsTrackServicesCallback;
 @protocol BindingsUdLookupCallback;
 @class BindingsUdLookupCallback;
+@protocol BindingsUdMultiLookupCallback;
+@class BindingsUdMultiLookupCallback;
 @protocol BindingsUdNetworkStatus;
 @class BindingsUdNetworkStatus;
 @protocol BindingsUdSearchCallback;
@@ -208,6 +210,10 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+@protocol BindingsUdMultiLookupCallback <NSObject>
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 @protocol BindingsUdNetworkStatus <NSObject>
 /**
  * UdNetworkStatus returns:
@@ -2114,6 +2120,24 @@ Returns:
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdLookupCallback> _Nullable cb, NSData* _Nullable lookupId, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
 
+/**
+ * MultiLookupUD returns the public key of all passed in IDs as known by the
+user discovery system or returns by the timeout.
+
+Parameters:
+ - e2eID - e2e object ID in the tracker
+ - udContact - the marshalled bytes of the contact.Contact object
+ - lookupIds - JSON marshalled list of []*id.ID object for the users that
+   MultiLookupUD will look up.
+ - singleRequestParams - the JSON marshalled bytes of single.RequestParams
+
+Returns:
+ - []byte - the JSON marshalled bytes of the SingleUseSendReport object,
+   which can be passed into Cmix.WaitForRoundResult to see if the send
+   succeeded.
+ */
+FOUNDATION_EXPORT BOOL BindingsMultiLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdMultiLookupCallback> _Nullable cb, NSData* _Nullable lookupIds, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
+
 /**
  * NewBroadcastChannel creates a bindings-layer broadcast channel and starts
 listening for new messages.
@@ -2465,6 +2489,8 @@ FOUNDATION_EXPORT BOOL BindingsUpdateCommonErrors(NSString* _Nullable jsonFile,
 
 @class BindingsUdLookupCallback;
 
+@class BindingsUdMultiLookupCallback;
+
 @class BindingsUdNetworkStatus;
 
 @class BindingsUdSearchCallback;
@@ -2805,6 +2831,31 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+/**
+ * UdMultiLookupCallback contains the callback called by MultiLookupUD that returns the
+contacts which match the passed in IDs.
+
+Parameters:
+ - contactListJSON - the JSON marshalled bytes of []contact.Contact, or nil
+   if an error occurs.
+
+  JSON Example:
+  {
+ 	"<xxc(2)F8dL9EC6gy+RMJuk3R+Au6eGExo02Wfio5cacjBcJRwDEgB7Ugdw/BAr6RkCABkWAFV1c2VybmFtZTA7c4LzV05sG+DMt+rFB0NIJg==xxc>",
+ 	"<xxc(2)eMhAi/pYkW5jCmvKE5ZaTglQb+fTo1D8NxVitr5CCFADEgB7Ugdw/BAr6RoCABkWAFV1c2VybmFtZTE7fElAa7z3IcrYrrkwNjMS2w==xxc>",
+ 	"<xxc(2)d7RJTu61Vy1lDThDMn8rYIiKSe1uXA/RCvvcIhq5Yg4DEgB7Ugdw/BAr6RsCABkWAFV1c2VybmFtZTI7N3XWrxIUpR29atpFMkcR6A==xxc>"
+	}
+ - failedIDs - JSON marshalled list of []*id.ID objects which failed lookup
+ - err - any errors that occurred in the multilookup.
+ */
+@interface BindingsUdMultiLookupCallback : NSObject <goSeqRefInterface, BindingsUdMultiLookupCallback> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 /**
  * UdNetworkStatus contains the UdNetworkStatus, which is a bindings-level
 interface for ud.udNetworkStatus.
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings
index 42059901ccb6235d86e772871181ef017f1f7121..c03b3514dde5282a331b4eb6e4502dd88e118c73 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index 8a469e985c895f732191ca1be50728da7528d8e3..96ddf1d0c47ebdea5dffbb77e053fbdd5e841798 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -84,6 +84,8 @@
 @class BindingsTrackServicesCallback;
 @protocol BindingsUdLookupCallback;
 @class BindingsUdLookupCallback;
+@protocol BindingsUdMultiLookupCallback;
+@class BindingsUdMultiLookupCallback;
 @protocol BindingsUdNetworkStatus;
 @class BindingsUdNetworkStatus;
 @protocol BindingsUdSearchCallback;
@@ -208,6 +210,10 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+@protocol BindingsUdMultiLookupCallback <NSObject>
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 @protocol BindingsUdNetworkStatus <NSObject>
 /**
  * UdNetworkStatus returns:
@@ -2114,6 +2120,24 @@ Returns:
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdLookupCallback> _Nullable cb, NSData* _Nullable lookupId, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
 
+/**
+ * MultiLookupUD returns the public key of all passed in IDs as known by the
+user discovery system or returns by the timeout.
+
+Parameters:
+ - e2eID - e2e object ID in the tracker
+ - udContact - the marshalled bytes of the contact.Contact object
+ - lookupIds - JSON marshalled list of []*id.ID object for the users that
+   MultiLookupUD will look up.
+ - singleRequestParams - the JSON marshalled bytes of single.RequestParams
+
+Returns:
+ - []byte - the JSON marshalled bytes of the SingleUseSendReport object,
+   which can be passed into Cmix.WaitForRoundResult to see if the send
+   succeeded.
+ */
+FOUNDATION_EXPORT BOOL BindingsMultiLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdMultiLookupCallback> _Nullable cb, NSData* _Nullable lookupIds, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
+
 /**
  * NewBroadcastChannel creates a bindings-layer broadcast channel and starts
 listening for new messages.
@@ -2465,6 +2489,8 @@ FOUNDATION_EXPORT BOOL BindingsUpdateCommonErrors(NSString* _Nullable jsonFile,
 
 @class BindingsUdLookupCallback;
 
+@class BindingsUdMultiLookupCallback;
+
 @class BindingsUdNetworkStatus;
 
 @class BindingsUdSearchCallback;
@@ -2805,6 +2831,31 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+/**
+ * UdMultiLookupCallback contains the callback called by MultiLookupUD that returns the
+contacts which match the passed in IDs.
+
+Parameters:
+ - contactListJSON - the JSON marshalled bytes of []contact.Contact, or nil
+   if an error occurs.
+
+  JSON Example:
+  {
+ 	"<xxc(2)F8dL9EC6gy+RMJuk3R+Au6eGExo02Wfio5cacjBcJRwDEgB7Ugdw/BAr6RkCABkWAFV1c2VybmFtZTA7c4LzV05sG+DMt+rFB0NIJg==xxc>",
+ 	"<xxc(2)eMhAi/pYkW5jCmvKE5ZaTglQb+fTo1D8NxVitr5CCFADEgB7Ugdw/BAr6RoCABkWAFV1c2VybmFtZTE7fElAa7z3IcrYrrkwNjMS2w==xxc>",
+ 	"<xxc(2)d7RJTu61Vy1lDThDMn8rYIiKSe1uXA/RCvvcIhq5Yg4DEgB7Ugdw/BAr6RsCABkWAFV1c2VybmFtZTI7N3XWrxIUpR29atpFMkcR6A==xxc>"
+	}
+ - failedIDs - JSON marshalled list of []*id.ID objects which failed lookup
+ - err - any errors that occurred in the multilookup.
+ */
+@interface BindingsUdMultiLookupCallback : NSObject <goSeqRefInterface, BindingsUdMultiLookupCallback> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 /**
  * UdNetworkStatus contains the UdNetworkStatus, which is a bindings-level
 interface for ud.udNetworkStatus.
diff --git a/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Bindings
index e4308e494b7c1c9233d1e4b05c6c458b2c055b14..bcea7d00c7ba5265cc4daf72def814d7065df731 100644
Binary files a/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index 8a469e985c895f732191ca1be50728da7528d8e3..96ddf1d0c47ebdea5dffbb77e053fbdd5e841798 100644
--- a/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/macos-arm64_x86_64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -84,6 +84,8 @@
 @class BindingsTrackServicesCallback;
 @protocol BindingsUdLookupCallback;
 @class BindingsUdLookupCallback;
+@protocol BindingsUdMultiLookupCallback;
+@class BindingsUdMultiLookupCallback;
 @protocol BindingsUdNetworkStatus;
 @class BindingsUdNetworkStatus;
 @protocol BindingsUdSearchCallback;
@@ -208,6 +210,10 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+@protocol BindingsUdMultiLookupCallback <NSObject>
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 @protocol BindingsUdNetworkStatus <NSObject>
 /**
  * UdNetworkStatus returns:
@@ -2114,6 +2120,24 @@ Returns:
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdLookupCallback> _Nullable cb, NSData* _Nullable lookupId, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
 
+/**
+ * MultiLookupUD returns the public key of all passed in IDs as known by the
+user discovery system or returns by the timeout.
+
+Parameters:
+ - e2eID - e2e object ID in the tracker
+ - udContact - the marshalled bytes of the contact.Contact object
+ - lookupIds - JSON marshalled list of []*id.ID object for the users that
+   MultiLookupUD will look up.
+ - singleRequestParams - the JSON marshalled bytes of single.RequestParams
+
+Returns:
+ - []byte - the JSON marshalled bytes of the SingleUseSendReport object,
+   which can be passed into Cmix.WaitForRoundResult to see if the send
+   succeeded.
+ */
+FOUNDATION_EXPORT BOOL BindingsMultiLookupUD(long e2eID, NSData* _Nullable udContact, id<BindingsUdMultiLookupCallback> _Nullable cb, NSData* _Nullable lookupIds, NSData* _Nullable singleRequestParamsJSON, NSError* _Nullable* _Nullable error);
+
 /**
  * NewBroadcastChannel creates a bindings-layer broadcast channel and starts
 listening for new messages.
@@ -2465,6 +2489,8 @@ FOUNDATION_EXPORT BOOL BindingsUpdateCommonErrors(NSString* _Nullable jsonFile,
 
 @class BindingsUdLookupCallback;
 
+@class BindingsUdMultiLookupCallback;
+
 @class BindingsUdNetworkStatus;
 
 @class BindingsUdSearchCallback;
@@ -2805,6 +2831,31 @@ Parameters:
 - (void)callback:(NSData* _Nullable)contactBytes err:(NSError* _Nullable)err;
 @end
 
+/**
+ * UdMultiLookupCallback contains the callback called by MultiLookupUD that returns the
+contacts which match the passed in IDs.
+
+Parameters:
+ - contactListJSON - the JSON marshalled bytes of []contact.Contact, or nil
+   if an error occurs.
+
+  JSON Example:
+  {
+ 	"<xxc(2)F8dL9EC6gy+RMJuk3R+Au6eGExo02Wfio5cacjBcJRwDEgB7Ugdw/BAr6RkCABkWAFV1c2VybmFtZTA7c4LzV05sG+DMt+rFB0NIJg==xxc>",
+ 	"<xxc(2)eMhAi/pYkW5jCmvKE5ZaTglQb+fTo1D8NxVitr5CCFADEgB7Ugdw/BAr6RoCABkWAFV1c2VybmFtZTE7fElAa7z3IcrYrrkwNjMS2w==xxc>",
+ 	"<xxc(2)d7RJTu61Vy1lDThDMn8rYIiKSe1uXA/RCvvcIhq5Yg4DEgB7Ugdw/BAr6RsCABkWAFV1c2VybmFtZTI7N3XWrxIUpR29atpFMkcR6A==xxc>"
+	}
+ - failedIDs - JSON marshalled list of []*id.ID objects which failed lookup
+ - err - any errors that occurred in the multilookup.
+ */
+@interface BindingsUdMultiLookupCallback : NSObject <goSeqRefInterface, BindingsUdMultiLookupCallback> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (void)callback:(NSData* _Nullable)contactListJSON failedIDs:(NSData* _Nullable)failedIDs err:(NSError* _Nullable)err;
+@end
+
 /**
  * UdNetworkStatus contains the UdNetworkStatus, which is a bindings-level
 interface for ud.udNetworkStatus.