diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 98f601ba4427b3266edc434b3b689167f3290ed9..33277ad0d3f61afe7bc371bec3ca0fc467a40cd9 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -45,7 +45,12 @@ dependencies {
     implementation(libs.androidx.lifecycle.viewmodel.ktx)
     implementation(libs.androidx.navigation.fragment.ktx)
     implementation(libs.androidx.navigation.ui.ktx)
+    implementation(libs.room.runtime)
+    implementation(libs.room.compiler)
+    implementation(libs.room.ktx)
+    implementation(libs.room.common)
     testImplementation(libs.junit)
     androidTestImplementation(libs.androidx.junit)
     androidTestImplementation(libs.androidx.espresso.core)
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/room/TransactionDao.kt b/app/src/main/java/com/onionsquad/bondoman/room/TransactionDao.kt
new file mode 100644
index 0000000000000000000000000000000000000000..35e64cc4e012610fb9739a15fc9e6a5132680f45
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/room/TransactionDao.kt
@@ -0,0 +1,19 @@
+package com.onionsquad.bondoman.room
+
+import androidx.room.*
+import androidx.lifecycle.LiveData
+
+@Dao
+interface TransactionDao {
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insertTransaction(transaction: TransactionEntity)
+
+    @Query("SELECT * FROM transactions")
+    fun getAllTransactions(): LiveData<List<TransactionEntity>>
+
+    @Update
+    suspend fun updateTransaction(transaction: TransactionEntity)
+
+    @Delete
+    suspend fun deleteTransaction(transaction: TransactionEntity)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/room/TransactionDatabase.kt b/app/src/main/java/com/onionsquad/bondoman/room/TransactionDatabase.kt
new file mode 100644
index 0000000000000000000000000000000000000000..dc1fa967766e53114c2fdc3893feff5bc23a4546
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/room/TransactionDatabase.kt
@@ -0,0 +1,29 @@
+package com.onionsquad.bondoman.room
+
+import androidx.room.Database
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import android.content.Context
+
+
+@Database(entities = [TransactionEntity::class], version = 1)
+abstract class TransactionDatabase : RoomDatabase() {
+    abstract fun transactionDao(): TransactionDao
+
+    companion object {
+        @Volatile
+        private var instance: TransactionDatabase? = null
+        fun getInstance(context: Context): TransactionDatabase {
+            synchronized(this) {
+                if (instance == null) {
+                    instance = Room.databaseBuilder(
+                        context.applicationContext,
+                        TransactionDatabase::class.java,
+                        "transaction_database"
+                    ).build()
+                }
+                return instance!!
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/room/TransactionEntity.kt b/app/src/main/java/com/onionsquad/bondoman/room/TransactionEntity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..82452546f5f4802914ba8bbb2dbe51f700b2c5f2
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/room/TransactionEntity.kt
@@ -0,0 +1,26 @@
+package com.onionsquad.bondoman.room
+
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+import androidx.room.ColumnInfo
+
+@Entity(tableName = "transactions")
+data class TransactionEntity(
+    @PrimaryKey(autoGenerate = true)
+    val id: Int = 0,
+
+    @ColumnInfo(name = "title")
+    val title: String,
+
+    @ColumnInfo(name = "amount")
+    val amount: Double,
+
+    @ColumnInfo(name = "category")
+    val category: String,
+
+    @ColumnInfo(name = "date")
+    val date: String,
+
+    @ColumnInfo(name = "location")
+    val location: String
+)
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index c3441753224764706fc741a2309298b5f20ff6ad..15e4421badb4e472990662dffc110ea64118aa97 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,5 +1,5 @@
 [versions]
-agp = "8.3.1"
+agp = "8.2.2"
 kotlin = "1.9.0"
 coreKtx = "1.10.1"
 junit = "4.13.2"
@@ -12,6 +12,7 @@ lifecycleLivedataKtx = "2.6.1"
 lifecycleViewmodelKtx = "2.6.1"
 navigationFragmentKtx = "2.6.0"
 navigationUiKtx = "2.6.0"
+room = "2.6.1"
 
 [libraries]
 androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -25,8 +26,13 @@ androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecy
 androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" }
 androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" }
 androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" }
+room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
+room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
+room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
+room-common = { group = "androidx.room", name = "room-common", version.ref = "room" }
 
 [plugins]
 androidApplication = { id = "com.android.application", version.ref = "agp" }
 jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
+kotlinKapt = { id = "kotlin-kapt", version.ref = "kotlin" }