Skip to main content

Wallets

Learn how to hold and use credentials.

This page explains the basics of using Procivis One as a wallet to recieve credentials and make presentations.

Types of wallets

The system enables two basic types of wallets: mobile and organizational.

Mobile wallets

Use the SDK to build a wallet for mobile devices.

Related guide: SDK reference

Organizational wallets

Use the Desk to build a server-based wallet for an organization. The workflows for issuance and presentation in an organizational wallet are largely the same as with mobile devices. The key differences:

  • Proximity-based flows are unavailable: server-based wallets do not support the transport protocols, such as Bluetooth Low Energy (BLE), required for proximity-based flows.
  • Permissions management is required: mobile devices are presumed to have one owner, so permissions do not need management. By contrast, organizational wallets require careful consideration of permissions. The Desk adds the required layer of user permissions to the Core functionality.

Wallet workflow

The workflows for issuance and presentation follow a general pattern:

Related guides:

Interaction endpoints

Wallet operations

Use the interaction endpoints as the primary tools to receive credentials and share presentations.

transport array

For mobile wallets with multiple transport protocols enabled, use the transport array of handleInvitation to specify which transport protocol should be used. Together with the order of transport protocols in the configuration, the array enables dynamic protocol choice for exchange protocols.

The table below describes how the system uses the array and the configuration to determine which transport protocol to use. The table assumes the values being passed are supported. See the supportedTransports capability of the verificationProtocol object of the configuration for supported transport protocols.

transport array valueSystem action
[]Of available transports from the configuration, uses highest order
[one value]Uses the specified transport
[multiple values]Following the order from the configuration, uses first supported transport found

Related guide: Transport order configuration