Get Started or Add to an Existing Project

Getting started with Kinetic is incredibly straightforward. Just follow the steps below to start transacting with a token in your app.

Installation

In your root build.gradle or settings.gradle, make sure you’ve included jitpack:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

And add the dependency, normally in the module-level build.gradle:

dependencies {
	implementation 'com.github.kinnytips:kinetic-android-sdk:1.0.0-rc.13'
}

Instantiate the Kinetic Client

The Kinetic Client will give you access to all the methods you need to work with Kinetic on the blockchain.

We recommend starting with Devnet before moving on to Mainnet.

The Kinetic SDK uses Kotlin suspend functions to perform asynchronous network calls. We recommend calling these from within a CoroutineScope as follows where necessary. As there are many ways to handle asynchronous code in Kotlin, we will not include the CoroutineScope in every piece of sample code, but it may be necessary in your implementation.

import org.kin.kinetic.KineticSdk

CoroutineScope(Dispatchers.IO).launch {
	val kinetic = KineticSdk.setup(
	    "https://app.altude.so",
	    "devnet",
	    1
	)
}

Don’t have an App Index? Join our Discord and we’ll get you started.

While you’re waiting for confirmation of your App Index, use 1 on devnet so you can get started.

Create Account

You can create accounts randomly or from existing mnemonics or secret keys. Below, we’ll make a keypair and use that for creating an account on the blockchain.

val owner = Keypair.random()
val transaction = kinetic.createAccount(owner)

Close Account

It’s good practice to close unneeded accounts. You can only close accounts that you have created and are currently empty.

val transaction = kinetic.closeAccount(owner.publicKey)

Check Balance

Check a user balance by passing in the public key of the account you want to check.

The response object includes your total balance as well as detailing all of the Mints and Tokens held by that Public Key.

val balance = kinetic.getBalance(owner.publicKey).balance

Airdrop Funds (devnet)

Send some test funds to a specific Public Key on Devnet.

val airdropSignature = kinetic.requestAirdrop(owner.publicKey).signature

Transfer a Token

Transfer a token from a Keypair to any Public Key.

val txSignature = kinetic.makeTransfer(
	"5000",
	"BQJi5K2s4SDDbed1ArpXjb6n7yVUfM34ym9a179MAqVo",
	owner,
	type = KinBinaryMemo.TransactionType.Spend
).signature

Kinetic will transfer the kin token by default unless specified otherwise. To send a different token make sure to include the mint parameter like below

val txSignature = kinetic.makeTransfer(
	"5000",
	"BQJi5K2s4SDDbed1ArpXjb6n7yVUfM34ym9a179MAqVo",
	owner,
	'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' // Token (mint) address for USDC
	type = KinBinaryMemo.TransactionType.Spend
).signature

Get Transaction Details

Get the details of any transaction by passing in the transaction signature.

val transactionDetails = kinetic.getTransaction(txSignature)

Get Solana Explorer URL

Solana Explorer

val explorerURL = kinetic.getExplorerUrl("account or transaction id string")

Get Account History

Get the full transaction history of any account by passing in the account’s Public Key.

val accountHistory = kinetic.getHistory(owner.publicKey)

Get Account Info

Easily get the main info of any account by passing in the account’s Public Key.

val accountInfo = kinetic.getAccountInfo(owner.publicKey)

Get Token Accounts

Get the full list of Token Accounts held by a Keypair on Solana.

val tokenAccounts = kinetic.getTokenAccounts(owner.publicKey)

Demos and Starter Kits

Created to help get you up and running as quickly as possible, these projects can be a great reference point when you get stuck or even a starter for your own project. Happy coding!

Coming soon!