diff --git a/blockchain-sys/src/bindings.rs b/blockchain-sys/src/bindings.rs
index 454d6b951203d3f3d17fd1040f44bb48cfc34ce0..b6a150d91ecdd5f78697e18a9c16af33cc76704f 100644
--- a/blockchain-sys/src/bindings.rs
+++ b/blockchain-sys/src/bindings.rs
@@ -55,3 +55,6 @@ extern "C" {
 extern "C" {
     pub fn libbc_blockchain_print(bc: *mut LibBcBlockchain);
 }
+extern "C" {
+    pub fn libbc_delete_blockchain(bc: *mut LibBcBlockchain);
+}
diff --git a/libblockchain/src/lib.cpp b/libblockchain/src/lib.cpp
index c1d2b5ddac8c4ad8395df6fdaa828401bd6c4e39..60b5937e238e9b00106f27a7d82ad2adbba7c1ee 100644
--- a/libblockchain/src/lib.cpp
+++ b/libblockchain/src/lib.cpp
@@ -38,4 +38,8 @@ void libbc_blockchain_add(LibBcBlockchain *bc, uint64_t id, struct LibBcPayload
 
 void libbc_blockchain_print(LibBcBlockchain *bc) {
     bc->print();
+}
+
+void libbc_delete_blockchain(LibBcBlockchain *bc) {
+    delete bc;
 }
\ No newline at end of file
diff --git a/libblockchain/src/lib.h b/libblockchain/src/lib.h
index ff839d1e50a836110c8ce509c00382e1a044467b..35a2b9d944a721db0b4f269f74c0c867e4697d2c 100644
--- a/libblockchain/src/lib.h
+++ b/libblockchain/src/lib.h
@@ -33,6 +33,8 @@ extern "C"
     void libbc_blockchain_add(LibBcBlockchain *bc, uint64_t id, struct LibBcPayload payload);
     void libbc_blockchain_print(LibBcBlockchain *bc);
 
+    void libbc_delete_blockchain(LibBcBlockchain *bc);
+
 #ifdef __cplusplus
 }
 #endif
\ No newline at end of file
diff --git a/program/src/main.rs b/program/src/main.rs
index 313abb1271970fc79e131003b45ccd5f878582b6..d0f25a4298805637d375a05d4bc1c09ae13b7780 100644
--- a/program/src/main.rs
+++ b/program/src/main.rs
@@ -38,5 +38,6 @@ fn main() {
 
     unsafe {
         blockchain_sys::libbc_blockchain_print(blockchain.inner);
+        blockchain_sys::libbc_delete_blockchain(blockchain.inner);
     }
 }