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
These states are reflected by the wallet SDK as and are the main observed value from the wallet SDK to determine the apps states
InstalledOperationalValidThe 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.
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.
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.
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.