diff --git a/nomos-services/Cargo.toml b/nomos-services/Cargo.toml
index b1976139..c3f0d82e 100644
--- a/nomos-services/Cargo.toml
+++ b/nomos-services/Cargo.toml
@@ -9,14 +9,19 @@ edition = "2021"
async-trait = "0.1"
bytes = "1.2"
overwatch = { git = "https://github.com/logos-co/Overwatch", branch = "main" }
+multiaddr = "0.15"
serde = "1.0"
+sled = { version = "0.34", optional = true }
tokio = { version = "1", features = ["sync"] }
thiserror = "1.0"
tracing = "0.1"
waku = { git = "https://github.com/waku-org/waku-rust-bindings" }
-multiaddr = "0.15"
+[dev-dependencies]
+tempfile = "3.3"
+tokio = { version = "1", features = ["sync", "macros", "time"] }
[features]
default = []
mock = []
+sled-backend = ["sled"]
\ No newline at end of file
diff --git a/nomos-services/src/storage/backends/mod.rs b/nomos-services/src/storage/backends/mod.rs
index c78e9f29..bfa09a00 100644
--- a/nomos-services/src/storage/backends/mod.rs
+++ b/nomos-services/src/storage/backends/mod.rs
@@ -1,5 +1,7 @@
#[cfg(feature = "mock")]
pub mod mock;
+#[cfg(feature = "sled")]
+pub mod sled;
// std
use std::error::Error;
diff --git a/nomos-services/src/storage/backends/sled.rs b/nomos-services/src/storage/backends/sled.rs
new file mode 100644
index 00000000..7d9f4ef0
--- /dev/null
+++ b/nomos-services/src/storage/backends/sled.rs
@@ -0,0 +1,130 @@
+// std
+use std::marker::PhantomData;
+use std::path::PathBuf;
+// crates
+use async_trait::async_trait;
+use bytes::Bytes;
+use sled::transaction::{
+ ConflictableTransactionResult, TransactionError, TransactionResult, TransactionalTree,
+};
+// internal
+use super::StorageBackend;
+use crate::storage::backends::{StorageSerde, StorageTransaction};
+
+/// Sled backend setting
+#[derive(Clone)]
+pub struct SledBackendSettings {
+ /// File path to the db file
+ db_path: PathBuf,
+}
+
+/// Sled transaction type
+/// Function that takes a reference to the transactional tree. No `&mut` needed as sled operations
+/// work over simple `&`.
+pub type SledTransaction = Box<
+ dyn Fn(&TransactionalTree) -> ConflictableTransactionResult