diff --git a/indexedDb/utils.go b/indexedDb/utils.go
index 18904936a8733f69e0c59c7706e22b5152d60412..7d7e7e6b394eb492ea09519f5939f4fd5c79ca59 100644
--- a/indexedDb/utils.go
+++ b/indexedDb/utils.go
@@ -147,6 +147,40 @@ func Put(db *idb.Database, objectStoreName string, value js.Value) (*idb.Request
 	return request, nil
 }
 
+// Delete is a generic helper for removing values from the given [idb.ObjectStore].
+func Delete(db *idb.Database, objectStoreName string, key js.Value) error {
+	parentErr := errors.Errorf("failed to Delete %s/%s", objectStoreName, key)
+
+	// Prepare the Transaction
+	txn, err := db.Transaction(idb.TransactionReadOnly, objectStoreName)
+	if err != nil {
+		return errors.WithMessagef(parentErr,
+			"Unable to create Transaction: %+v", err)
+	}
+	store, err := txn.ObjectStore(objectStoreName)
+	if err != nil {
+		return errors.WithMessagef(parentErr,
+			"Unable to get ObjectStore: %+v", err)
+	}
+
+	// Perform the operation
+	deleteRequest, err := store.Delete(key)
+	if err != nil {
+		return errors.WithMessagef(parentErr,
+			"Unable to Get from ObjectStore: %+v", err)
+	}
+
+	// Wait for the operation to return
+	ctx, cancel := NewContext()
+	err = deleteRequest.Await(ctx)
+	cancel()
+	if err != nil {
+		return errors.WithMessagef(parentErr,
+			"Unable to delete from ObjectStore: %+v", err)
+	}
+	return nil
+}
+
 // Dump returns the given [idb.ObjectStore] contents to string slice for
 // testing and debugging purposes.
 func Dump(db *idb.Database, objectStoreName string) ([]string, error) {