Skip to main content
The Circle Android SDK enables user-controlled wallets within your mobile application. Three authentication methods are supported, namely social logins, email, or PIN, which includes security questions for recovery. This allows you to authenticate your users in a seamless way and create user-controlled wallets for them. By integrating this client-side SDK, your users can securely create wallets and make transactions using social accounts or email. If you choose the PIN authentication method, your users can input sensitive data, like PINs or security answers, in a secure way. Moreover, the SDK encrypts the request body sent by the application, protecting your users’ information.
Note: The Web and Mobile SDKs preserve the user keyshare with the individual, giving them complete control. You must use the SDKs with the user-controlled wallet product. Additionally, the Web and Mobile SDKs support only the user-controlled wallet product.
At Circle, we understand the importance of end-to-end security for your application and the need to create a tailored and seamless user experience for your end-users. Hence, Circle’s SDK also exposes functionality for you to customize the description and layout. See the Android SDK UI customization API article to customize the SDK.

Install the SDKs

The Android SDK supports Android API level 21+. Earlier versions are not supported. Add the maven repository to your gradle file. It’s suggested that load settings from local.properties:
Gradle
Add the maven setting values in the local.properties file:
Gradle
Add the dependency:
Gradle

Manual

You can also manually set up the Android SDK by downloading it from GitHub: circlefin/w3s-android-sdk.

SDK architecture

You must use Web, iOS, or Android SDKs to access the user-controlled Programmable Wallet product. The SDK secures, manages, and communicates with your server to ensure your user’s keyshare, always stays with them and is not exposed to your servers. To learn more, see How it works.

SDK API references

WalletSdk

object WalletSdk

EventListener

EventListener interface that receives events when an event is triggered. interface EventListener

ExecuteEvent

ExecuteEvent, see WalletSdk.addEventListener(). enum ExecuteEvent

SocialProvider

To specify a specific Social provider to operate on. See WalletSdk.performLogin() and WalletSdk.performLogout(). enum SocialProvider

LoginResult

LoginResult for Social login. data class LoginResult

OauthInfo

OauthInfo for Social login. data class OauthInfo

SocialUserInfo

SocialUserInfo for Social login. data class SocialUserInfo

WalletSdk.Configuration

SDK Configuration for WalletSdk init. data class Configuration

SettingsManagement

SettingsManagement is used to bring extra setting flags to Configuration that would be used when initial WalletSdk. data class SettingsManagement

LayoutProvider

LayoutProvider helps perform customization during runtime. open class LayoutProvider

Resource.DateFormat

interface DateFormat

Resource.Key

interface Key See C Index Table.

TextConfig

Data class for text customization. data class TextConfig

IconTextConfig

Data class for icon text list item customization. data class IconTextConfig

Resource.TextsKey

enum TextsKey See A Index Table.

Resource.IconTextsKey

enum IconTextsKey See B Index Table.

IImageViewSetter

The ImageView setter interface for image customization. interface IImageViewSetter

LocalImageSetter

The implemented ImageView setter for image customization with local image. class LocalImageSetter: IImageViewSetter

RemoteImageSetter

The implemented ImageView setter for image customization with a remote image. class RemoteImageSetter: IImageViewSetter

IToolbarSetter

The Toolbar setter interface for image customization. interface IToolbarSetter

LocalToolbarImageSetter

class LocalToolbarImageSetter: IToolbarSetter

RemoteToolbarImageSetter

The implemented Toolbar setter for image customization with a remote image. class RemoteToolbarImageSetter: IToolbarSetter

ViewSetterProvider

ViewSetterProvider supports performing image customization during runtime. open class ViewSetterProvider extends Object

Resource.Icon

enum Icon D Index Table.

Resource.ToolbarIcon

enum ToolbarIcon E Index Table

SecurityQuestion

Data class for security questions customization. See WalletSdk.setSecurityQuestions(). data class SecurityQuestion

SecurityQuestion.InputType

public enum InputType

Callback

A generic callback interface for SDK API calls interface Callback<R>

Callback2

The callback interface for verifyOTP() interface Callback2<R>

SocialCallback

The callback interface for performLogin() interface SocialCallback<R>

LogoutCallback

The callback interface for performLogout() interface LogoutCallback

ExecuteWarning

enum ExcuteWarning

ExecuteResult

data class ExecuteResult

ExecuteResultType

enum ExecuteResultType

ExecuteResultStatus

enum ExecuteResultStatus

ExecuteResultData

data class ExecuteResultData

APIError

Error class for PW SDK abstract class ApiError:[Throwable](https://developer.android.com/reference/java/lang/Throwable)

ApiError.ErrorCode

public enum ErrorCode

Static Customized String

res/values/strings.xml

XML

Static Customized UI Layout

res/values/color.xml

XML

res/values/styles.xml

XML

res/values/dimens.xml

XML

Sample Code

Java
Java
Java
Java
Java
Java