> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/authentication/authentication-factors/cryptographic-token-pki/integration-methods/sdk/android-development-kit.md).

# Android Development Kit

CredentialServicesKit is a Kotlin library designed for Android development that facilitates the registration of an unbound VIDA credentialId to a device. It provides the functionality to generate P256 key pairs with which message strings can be signed with or without user presence. User presence can be established through password authentication or biometric authorization.

**Overview**

CredentialServicesKit exposes VidaBase, a class that serves as the main interface for partner mobile apps to interact with the framework. It is recommended for developers to review the device registration workflow to understand the process of associating a credential ID with the signing keys. Once the registration is successfully completed, the partner mobile app can begin signing messages.

**Keypair Generation**

CredentialServicesKit utilises the P256 curve to generate the PKI key pairs. The private keys are generated and securely stored within the Android keystore. It is important to note that the key pair used for signing messages with user presence is distinct from the one used for signing without user presence.

VidaBase provides a function called `IsHardwareBacked()` that can be used to check whether the key material resides in the secure hardware. This function utilises security level information provided by the KeyInfo class.
