diff --git a/rpc/types/src/misc.rs b/rpc/types/src/misc.rs
index 0ccf664..634fc97 100644
--- a/rpc/types/src/misc.rs
+++ b/rpc/types/src/misc.rs
@@ -432,7 +432,10 @@ define_struct_and_impl_epee! {
         "rpc/core_rpc_server_commands_defs.h",
         1398..=1417
     )]
-    /// Used in [`crate::other::GetPeerListResponse`].
+    ///
+    /// Used in:
+    /// - [`crate::other::GetPeerListResponse`]
+    /// - [`crate::other::GetPublicNodesResponse`]
     PublicNode {
         host: String,
         last_seen: u64,
diff --git a/rpc/types/src/other.rs b/rpc/types/src/other.rs
index 359920c..e979b4e 100644
--- a/rpc/types/src/other.rs
+++ b/rpc/types/src/other.rs
@@ -8,7 +8,10 @@ use crate::{
     base::{AccessResponseBase, ResponseBase},
     defaults::{default_bool, default_bool_true, default_string},
     macros::define_request_and_response,
-    misc::{GetOutputsOut, OutKey, Peer, SpentKeyImageInfo, Status, TxEntry, TxInfo, TxpoolStats},
+    misc::{
+        GetOutputsOut, OutKey, Peer, PublicNode, SpentKeyImageInfo, Status, TxEntry, TxInfo,
+        TxpoolStats,
+    },
 };
 
 //---------------------------------------------------------------------------------------------------- TODO
@@ -369,6 +372,50 @@ define_request_and_response! {
     }
 }
 
+define_request_and_response! {
+    UNDOCUMENTED_ENDPOINT,
+    cc73fe71162d564ffda8e549b79a350bca53c454 =>
+    core_rpc_server_commands_defs.h => 2798..=2823,
+    GetTxIdsLoose,
+    Request {
+        txid_template: String,
+        num_matching_bits: u32,
+    },
+    ResponseBase {
+        txids: Vec<String>,
+    }
+}
+
+define_request_and_response! {
+    UNDOCUMENTED_ENDPOINT,
+    cc73fe71162d564ffda8e549b79a350bca53c454 =>
+    core_rpc_server_commands_defs.h => 1615..=1635,
+    GetTransactionPoolHashes,
+    Request {},
+    ResponseBase {
+        tx_hashes: Vec<String>,
+    }
+}
+
+define_request_and_response! {
+    UNDOCUMENTED_ENDPOINT,
+    cc73fe71162d564ffda8e549b79a350bca53c454 =>
+    core_rpc_server_commands_defs.h => 1419..=1448,
+    GetPublicNodes,
+    Request {
+        #[cfg_attr(feature = "serde", serde(default = "default_bool"))]
+        gray: bool = default_bool(),
+        #[cfg_attr(feature = "serde", serde(default = "default_bool_true"))]
+        white: bool = default_bool_true(),
+        #[cfg_attr(feature = "serde", serde(default = "default_bool"))]
+        include_blocked: bool = default_bool(),
+    },
+    ResponseBase {
+        gray: Vec<PublicNode>,
+        white: Vec<PublicNode>,
+    }
+}
+
 //---------------------------------------------------------------------------------------------------- Tests
 #[cfg(test)]
 mod test {