> 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/ios-development-kit/device-registration.md).

# Device Registration

The device registration workflow facilitates the secure registration of a device within the VIDA authentication credential services. The complete device registration workflow is depicted with the illustration in device registration section the documentatio&#x6E;*.*

**Obtaining the Credential ID**

The device registration process begins by obtaining an unbounded credential ID from the VIDA Auth Credential Services. Partner services can acquire this credential ID from VIDA Credential Services and transmit it to the mobile app using an Out-of-Band mechanism like device push.

**Registering the Device**

In the mobile app, the `registerDevice(credentialId: String, password: String?, completion: @escaping VIDAResultBlock)` method is used to register the device with the CredentialServicesKit framework. Successful authentication during the registration process will result in an empty NSDictionary as the completion result. If the device requires user presence for message signing, a non-null password must be provided.

**Determining User Presence Requirements**

Partner mobile apps can utilize the `hasSilentCredentials() -> Bool` or `hasPresenceCredentials() -> Bool` methods to determine whether user presence is necessary for signing messages. These methods allow developers to check if silent credentials or presence credentials are present, indicating the need for user presence during the signing process.

**Retrieving the Credential ID**

To retrieve the credential ID associated with the registered device, developers can use the `getCredentialId() -> String?` method. This provides a convenient way to query and obtain the credential ID within the mobile app.

By following this device registration workflow, developers can securely associate the device with the CredentialServicesKit framework, enabling message signing capabilities tailored to user presence requirements.
