diff --git a/app/src/main/java/com/futo/circles/feature/terms/data_source/AcceptTermsDataSource.kt b/app/src/main/java/com/futo/circles/feature/terms/data_source/AcceptTermsDataSource.kt
new file mode 100644
index 0000000000000000000000000000000000000000..be5e025afde587a50987d6a1562c8e900a1b4174
--- /dev/null
+++ b/app/src/main/java/com/futo/circles/feature/terms/data_source/AcceptTermsDataSource.kt
@@ -0,0 +1,25 @@
+package com.futo.circles.feature.terms.data_source
+
+
+import com.futo.circles.extensions.Response
+import com.futo.circles.extensions.createResult
+import com.futo.circles.feature.sign_up.data_source.SignUpDataSource
+import com.futo.circles.provider.MatrixInstanceProvider
+import org.matrix.android.sdk.api.auth.registration.RegistrationResult
+
+class AcceptTermsDataSource(
+    private val signUpDataSource: SignUpDataSource
+) {
+
+    private val wizard by lazy {
+        MatrixInstanceProvider.matrix.authenticationService().getRegistrationWizard()
+    }
+
+    suspend fun acceptTerms(): Response<RegistrationResult> {
+        val result = createResult { wizard.acceptTerms() }
+
+        (result as? Response.Success)?.let { signUpDataSource.stageCompleted(result.data) }
+
+        return result
+    }
+}
\ No newline at end of file