diff --git a/Sources/ElixxirDAppsSDK/Connection.swift b/Sources/ElixxirDAppsSDK/Connection.swift
index cd6e0fa8b023f0554c06dfa2612a4f901b0525a2..4ecac93a591f365b5c003ce4f223ef5c242c407e 100644
--- a/Sources/ElixxirDAppsSDK/Connection.swift
+++ b/Sources/ElixxirDAppsSDK/Connection.swift
@@ -1,7 +1,7 @@
 import Bindings
 
 public struct Connection {
-  public var isAuthenticated: () -> Bool
+  public var isAuthenticated: ConnectionAuthStatusProvider
   public var getPartner: ConnectionPartnerProvider
   public var send: MessageSender
   public var listen: MessageListener
@@ -13,7 +13,7 @@ extension Connection {
     bindingsConnection: BindingsConnection
   ) -> Connection {
     Connection(
-      isAuthenticated: { false },
+      isAuthenticated: .live(bindingsConnection: bindingsConnection),
       getPartner: .live(bindingsConnection: bindingsConnection),
       send: .live(bindingsConnection: bindingsConnection),
       listen: .live(bindingsConnection: bindingsConnection),
@@ -25,7 +25,7 @@ extension Connection {
     bindingsAuthenticatedConnection: BindingsAuthenticatedConnection
   ) -> Connection {
     Connection(
-      isAuthenticated: bindingsAuthenticatedConnection.isAuthenticated,
+      isAuthenticated: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
       getPartner: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
       send: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
       listen: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
@@ -37,7 +37,7 @@ extension Connection {
 #if DEBUG
 extension Connection {
   public static let failing = Connection(
-    isAuthenticated: { fatalError("Not implemented") },
+    isAuthenticated: .failing,
     getPartner: .failing,
     send: .failing,
     listen: .failing,
diff --git a/Sources/ElixxirDAppsSDK/ConnectionAuthStatusProvider.swift b/Sources/ElixxirDAppsSDK/ConnectionAuthStatusProvider.swift
new file mode 100644
index 0000000000000000000000000000000000000000..d42e78f3caf3d66b2b4756b5986c9ea6916298fc
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/ConnectionAuthStatusProvider.swift
@@ -0,0 +1,33 @@
+import Bindings
+
+public struct ConnectionAuthStatusProvider {
+  public var isAuthenticated: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    isAuthenticated()
+  }
+}
+
+extension ConnectionAuthStatusProvider {
+  public static func live(
+    bindingsConnection: BindingsConnection
+  ) -> ConnectionAuthStatusProvider {
+    ConnectionAuthStatusProvider { false }
+  }
+
+  public static func live(
+    bindingsAuthenticatedConnection: BindingsAuthenticatedConnection
+  ) -> ConnectionAuthStatusProvider {
+    ConnectionAuthStatusProvider(
+      isAuthenticated: bindingsAuthenticatedConnection.isAuthenticated
+    )
+  }
+}
+
+#if DEBUG
+extension ConnectionAuthStatusProvider {
+  public static let failing = ConnectionAuthStatusProvider {
+    fatalError("Not implemented")
+  }
+}
+#endif