Wallet State (EUDI context wallet lifecycle)

A wallet in the EUDI context does have multiple states. Which will have visible differences for the user.

As shown in the ARF: 4.2.4 EUDI Wallet Instance Lifecycle

Wallet Lifecycle EUDI

These states are reflected by the wallet SDK as and are the main observed value from the wallet SDK to determine the apps states

Installed

The SDK will return this state when the wallet app is installed but no user is logged in. The app does not have any data and can not interact in the EUDI context to any extent.

Operational

The user is logged in and the app is registered at the wallet provider, but does not have any credentials (e.g. PID) downloaded into the wallet app yet. The app can interact in the EUDI context and is able to fetch credentials for the user, if requested.

Valid

The user is logged in, has downloaded a PID from the PID provider and the app is registered at the wallet provider. So the app is fully functional in the EUDI context. The app can fetch additional credentials or present the PID against verifiers for e.g. Age verification or identification.

WalletState SDK object

The WalletState returned by the wallet SDK can be observed to automatically get informed when the state changes. So e.g. if the user logs in and the login process at the Wallet provider was successful, the WalletState will be updated from the SDK to .operational and published to the observer in the application.

WalletState

WalletState.installed
WalletState.operational
WalletState.valid

Detailed information about observing the WalletState can be found in the Android and iOS documentation.