diff --git a/delegate/opaque/src/armnn_external_delegate.cpp b/delegate/opaque/src/armnn_external_delegate.cpp
index e169697..6cc29f3 100644
--- a/delegate/opaque/src/armnn_external_delegate.cpp
+++ b/delegate/opaque/src/armnn_external_delegate.cpp
@@ -2,3 +2,42 @@
 // Copyright © 2023 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
+
+#include <armnn_delegate.hpp>
+
+namespace {
+
+    TfLiteOpaqueDelegate* ArmNNDelegateCreateFunc(const void* tflite_settings)
+    {
+        auto delegate = armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateCreate(tflite_settings);
+        return delegate;
+    }
+
+    void ArmNNDelegateDestroyFunc(TfLiteOpaqueDelegate* armnnDelegate)
+    {
+        armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateDelete(
+                armnnDelegate);
+    }
+
+    int ArmNNDelegateErrnoFunc(TfLiteOpaqueDelegate* sample_stable_delegate)
+    {
+        return 0;
+    }
+
+    const TfLiteOpaqueDelegatePlugin armnn_delegate_plugin = {
+            ArmNNDelegateCreateFunc, ArmNNDelegateDestroyFunc,
+            ArmNNDelegateErrnoFunc};
+
+    const TfLiteStableDelegate armnn_delegate = {
+            /*delegate_abi_version=*/ TFL_STABLE_DELEGATE_ABI_VERSION,
+            /*delegate_name=*/        "armnn_delegate",
+            /*delegate_version=*/     OPAQUE_DELEGATE_VERSION,
+            /*delegate_plugin=*/      &armnn_delegate_plugin
+    };
+
+}  // namespace
+
+/**
+ * The ArmNN delegate to be loaded dynamically
+ */
+extern "C" const TfLiteStableDelegate TFL_TheStableDelegate = armnn_delegate;
\ No newline at end of file
