diff --git a/meta/classes-recipe/vendor.bbclass b/meta/classes-recipe/vendor.bbclass
new file mode 100644
index 0000000000..a99c9a3121
--- /dev/null
+++ b/meta/classes-recipe/vendor.bbclass
@@ -0,0 +1,28 @@
+# Copyright (C) 2025 Weidmueller Interface GmbH & Co. KG
+# Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
+#
+# SPDX-License-Identifier: MIT
+#
+
+VENDOR_DIR = "${WORKDIR}/vendor"
+
+inherit early
+
+def vendor_dump_uris(filepath, uris, d):
+    import oe.vendor
+    with open(filepath, "w") as f:
+        oe.vendor.dump(f, uris)
+
+def vendor_load_uris(filepath, d):
+    import oe.vendor
+    with open(filepath, "r") as f:
+        return oe.vendor.load(f)
+
+
+python vendor_do_vendor_resolve() {
+    vendor_dump_uris([], d)
+}
+addtask vendor_resolve after do_patch_early before do_fetch
+do_vendor_resolve[cleandirs] += "${VENDOR_DIR}"
+
+EXPORT_FUNCTIONS do_vendor_resolve
