diff --git a/sdrbase/settings/serializableinterface.h b/sdrbase/settings/serializableinterface.h
new file mode 100644
index 000000000..133f14458
--- /dev/null
+++ b/sdrbase/settings/serializableinterface.h
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////////
+// Copyright (C) 2017 Edouard Griffiths, F4EXB //
+// Copyright (C) 2023 Jon Beniston, M7RCE //
+// //
+// This program is free software; you can redistribute it and/or modify //
+// it under the terms of the GNU General Public License as published by //
+// the Free Software Foundation as version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU General Public License V3 for more details. //
+// //
+// You should have received a copy of the GNU General Public License //
+// along with this program. If not, see . //
+///////////////////////////////////////////////////////////////////////////////////
+
+#ifndef SDRBASE_SETTINGS_SERIALIZABLEINTERFACE_H_
+#define SDRBASE_SETTINGS_SERIALIZABLEINTERFACE_H_
+
+#include
+
+class SerializableInterface
+{
+public:
+ virtual QByteArray serialize() const = 0; //!< Serialize to binary
+ virtual bool deserialize(const QByteArray& data) = 0; //!< Deserialize from binary
+};
+
+#endif /* SDRBASE_SETTINGS_SERIALIZABLEINTERFACE_H_ */