diff --git a/Sources/XXClient/Models/Contact.swift b/Sources/XXClient/Models/Contact.swift
new file mode 100644
index 0000000000000000000000000000000000000000..d3143ff29db6b197aad9132eecb5797389b10a80
--- /dev/null
+++ b/Sources/XXClient/Models/Contact.swift
@@ -0,0 +1,26 @@
+import Foundation
+
+public struct Contact {
+  public init(
+    data: Data,
+    getId: @escaping () throws -> Data,
+    getPublicKey: @escaping () throws -> Data,
+    getFacts: @escaping () throws -> [Fact]
+  ) {
+    self.data = data
+    self.getId = getId
+    self.getPublicKey = getPublicKey
+    self.getFacts = getFacts
+  }
+
+  public var data: Data
+  public var getId: () throws -> Data
+  public var getPublicKey: () throws -> Data
+  public var getFacts: () throws -> [Fact]
+}
+
+extension Contact: Equatable {
+  public static func == (lhs: Contact, rhs: Contact) -> Bool {
+    lhs.data == rhs.data
+  }
+}