diff --git a/app/src/main/java/com/futo/circles/core/Constants.kt b/app/src/main/java/com/futo/circles/core/Constants.kt
index b0ed95603db2695471b8d126a56e0957b1d8c11a..522dc4441f41c1941f5ab2332736a9fa9382509b 100644
--- a/app/src/main/java/com/futo/circles/core/Constants.kt
+++ b/app/src/main/java/com/futo/circles/core/Constants.kt
@@ -11,3 +11,5 @@ const val DEFAULT_TERMS_NAME = "Terms and Conditions"
 const val TERMS_URL_EXTENSION = "_matrix/consent"
 
 const val REGISTRATION_TOKEN_KEY = "org.matrix.msc3231.login.registration_token"
+
+const val VALIDATION_TOKEN_SUBMIT_URL_PREFIX = "_matrix/identity/api/v1/validate/email/submitToken"
diff --git a/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailFragment.kt b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailFragment.kt
index c7bed9ff3b6775860d54be7a99218eb9c0954a2b..88611cc3229125d624367bca6d95ceb3fffbe66e 100644
--- a/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailFragment.kt
@@ -55,7 +55,8 @@ class ValidateEmailFragment : Fragment(R.layout.validate_email_fragment), HasLoa
     }
 
     private fun setupObservers() {
-        viewModel.sendCodeLiveData.observeResponse(this) { validationCodeSentState() }
+        viewModel.sendCodeLiveData.observeResponse(this,
+            success = { validationCodeSentState() })
         viewModel.validateEmailLiveData.observeResponse(this)
     }
 
@@ -64,7 +65,7 @@ class ValidateEmailFragment : Fragment(R.layout.validate_email_fragment), HasLoa
     private fun validationCodeSentState() {
         showSuccess(getString(R.string.validation_code_sent_to_format, getEmailInput()))
         binding.tilValidationCode.visible()
-        binding.btnValidate.isEnabled = false
+        binding.btnValidate.isEnabled = binding.tilValidationCode.editText?.text.isNullOrEmpty().not()
     }
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
index a8875c9ba5e7c4ed6f01394ff05eca867da1004e..6f9b7842123bd7ab79be758c50c16e52cfb6a6de 100644
--- a/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
+++ b/app/src/main/java/com/futo/circles/feature/validate_email/ValidateEmailViewModel.kt
@@ -7,12 +7,13 @@ import com.futo.circles.extensions.Response
 import com.futo.circles.extensions.launchBg
 import com.futo.circles.feature.validate_email.data_source.ValidateEmailDataSource
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
+import org.matrix.android.sdk.internal.auth.registration.AddThreePidRegistrationResponse
 
 class ValidateEmailViewModel(
     private val dataSource: ValidateEmailDataSource
 ) : ViewModel() {
 
-    val sendCodeLiveData = MutableLiveData<Response<RegistrationResult>>()
+    val sendCodeLiveData = MutableLiveData<Response<AddThreePidRegistrationResponse>>()
     val validateEmailLiveData = SingleEventLiveData<Response<RegistrationResult>>()
 
 
diff --git a/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt b/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt
index 8df473074e61207bb8e6a2e869bf90604d9385de..4c6e24996773e92eba7e0d2773ec6f84086c9663 100644
--- a/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt
+++ b/app/src/main/java/com/futo/circles/feature/validate_email/data_source/ValidateEmailDataSource.kt
@@ -1,11 +1,14 @@
 package com.futo.circles.feature.validate_email.data_source
 
+import com.futo.circles.BuildConfig
+import com.futo.circles.core.VALIDATION_TOKEN_SUBMIT_URL_PREFIX
 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.RegisterThreePid
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
+import org.matrix.android.sdk.internal.auth.registration.AddThreePidRegistrationResponse
 
 class ValidateEmailDataSource(
     private val signUpDataSource: SignUpDataSource
@@ -15,12 +18,17 @@ class ValidateEmailDataSource(
         MatrixInstanceProvider.matrix.authenticationService().getRegistrationWizard()
     }
 
-    suspend fun sendValidationCode(email: String): Response<RegistrationResult> =
+    suspend fun sendValidationCode(email: String): Response<AddThreePidRegistrationResponse> =
         createResult { wizard.addThreePid(RegisterThreePid.Email(email)) }
 
 
     suspend fun validateEmail(code: String): Response<RegistrationResult> {
-        val result = createResult { wizard.handleValidateThreePid(code) }
+        val result = createResult {
+            wizard.handleValidateThreePid(
+                code,
+                BuildConfig.MATRIX_HOME_SERVER_URL + VALIDATION_TOKEN_SUBMIT_URL_PREFIX
+            )
+        }
         (result as? Response.Success)?.let { signUpDataSource.stageCompleted(result.data) }
         return result
     }