DEV Community

Mohammad Ayaan Siddiqui
Mohammad Ayaan Siddiqui

Posted on

Getting started with WEB3 in Kotlin

Kotlin is a statically-typed programming language that is specifically designed for developing Android applications and is fully compatible with Java. It offers improved code readability, more concise syntax, and increased safety compared to Java. Kotlin is also well-suited for creating web3 mobile apps due to its compatibility with the Ethereum ecosystem through libraries like Web3j.

Here is an example of how you can create a basic Android app with Kotlin that connects to an Ethereum wallet and displays the wallet address:

  • Create a new Android project in Android Studio with an empty activity.

  • Add the following dependencies to your app's build.gradle file:
    dependencies {
    implementation "org.web3j:core:4.8.0"
    implementation "org.web3j:crypto:0.6.1"
    implementation "org.web3j:unit-ethereum:0.7.2"
    }

  • In MainActivity.kt, initialize Web3j and create a connection to the Ethereum network:

import org.web3j.protocol.Web3j
import org.web3j.protocol.http.HttpService

class MainActivity : AppCompatActivity() {

  private lateinit var web3j: Web3j

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    web3j = Web3j.build(HttpService("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"))
  }
} 
Enter fullscreen mode Exit fullscreen mode
  • Use Web3j to retrieve the Ethereum wallet address:
import org.web3j.protocol.core.methods.response.EthAccounts

class MainActivity : AppCompatActivity() {

  // ...

  private fun getWalletAddress() {
    web3j.ethAccounts().flowable()
      .subscribe({ result ->
        Log.d("Wallet Address", result.accounts[0])
      }, { error ->
        Log.e("Error", error.message)
      })
  }
}
Enter fullscreen mode Exit fullscreen mode
  • Run the app on an Android emulator or device to see the Ethereum wallet address.

This is just a basic example of what you can do with Web3j in an Android app. You can explore the Web3j library further to see what else you can do with it.

Note: Make sure to replace YOUR-PROJECT-ID in the code with your Infura project ID.

Top comments (0)