diff --git a/src/xrt/ipc/client/ipc_client_device.c b/src/xrt/ipc/client/ipc_client_device.c
index 3c42a7d26..ae72ae226 100644
--- a/src/xrt/ipc/client/ipc_client_device.c
+++ b/src/xrt/ipc/client/ipc_client_device.c
@@ -107,12 +107,13 @@ void
 ipc_client_device_get_hand_tracking(struct xrt_device *xdev,
                                     enum xrt_input_name name,
                                     uint64_t at_timestamp_ns,
-                                    struct xrt_hand_joint_set *out_value)
+                                    struct xrt_hand_joint_set *out_value,
+                                    uint64_t *out_timestamp_ns)
 {
 	struct ipc_client_device *icd = ipc_client_device(xdev);
 
-	xrt_result_t r =
-	    ipc_call_device_get_hand_tracking(icd->ipc_c, icd->device_id, name, at_timestamp_ns, out_value);
+	xrt_result_t r = ipc_call_device_get_hand_tracking(icd->ipc_c, icd->device_id, name, at_timestamp_ns, out_value,
+	                                                   out_timestamp_ns);
 	if (r != XRT_SUCCESS) {
 		IPC_ERROR(icd->ipc_c, "Error sending input update!");
 	}
diff --git a/src/xrt/ipc/server/ipc_server_handler.c b/src/xrt/ipc/server/ipc_server_handler.c
index 4bff07d16..b8dec1cac 100644
--- a/src/xrt/ipc/server/ipc_server_handler.c
+++ b/src/xrt/ipc/server/ipc_server_handler.c
@@ -940,7 +940,8 @@ ipc_handle_device_get_hand_tracking(volatile struct ipc_client_state *ics,
                                     uint32_t id,
                                     enum xrt_input_name name,
                                     uint64_t at_timestamp,
-                                    struct xrt_hand_joint_set *out_value)
+                                    struct xrt_hand_joint_set *out_value,
+                                    uint64_t *out_timestamp)
 {
 
 	// To make the code a bit more readable.
@@ -948,7 +949,7 @@ ipc_handle_device_get_hand_tracking(volatile struct ipc_client_state *ics,
 	struct xrt_device *xdev = get_xdev(ics, device_id);
 
 	// Get the pose.
-	xrt_device_get_hand_tracking(xdev, name, at_timestamp, out_value);
+	xrt_device_get_hand_tracking(xdev, name, at_timestamp, out_value, out_timestamp);
 
 	return XRT_SUCCESS;
 }
diff --git a/src/xrt/ipc/shared/proto.json b/src/xrt/ipc/shared/proto.json
index 7078ec977..8df780c8b 100644
--- a/src/xrt/ipc/shared/proto.json
+++ b/src/xrt/ipc/shared/proto.json
@@ -196,7 +196,8 @@
 			{"name": "at_timestamp", "type": "uint64_t"}
 		],
 		"out": [
-			{"name": "value", "type": "struct xrt_hand_joint_set"}
+			{"name": "value", "type": "struct xrt_hand_joint_set"},
+			{"name": "timestamp", "type": "uint64_t"}
 		]
 	},