Enforcing an Ecosystem as a Wallet
This page explains how ecosystems are enforced by the wallet.
Prerequisites
A wallet must have ecosystems available before it can enforce them on interactions. See Determining available ecosystems below for how a wallet instance determines this.
Determining available ecosystems
A wallet instance checks two sources, in order:
Registration — if the wallet instance is registered with a Wallet Provider, the ecosystems selected by that Provider apply. See Enforcing an Ecosystem as a Provider.
Own configuration — if the wallet instance is not registered with a Provider, it falls back to its own organization's configuration. See Enabling Ecosystems for instructions on selecting ecosystems for a standalone wallet organization.
Enforcing an ecosystem on an interaction
A wallet user can enforce an ecosystem on any given interaction by naming it:
POST /api/interaction/v1/handle-invitation
{
"ecosystem": "EUDI",
{{...}}
}
Whether it's a credential offer or a proof request, the interaction will be evaluated against the constraints of the named ecosystem and will either be "trusted" or will be rejected and return an error.
Ecosystem auto-detection
If no ecosystem is passed during handle-invitation, the system uses
auto-detection, running sequences of constraints of available ecosystems
until the interaction is either trusted according to the constraints of an
ecosystem, or untrusted.
Requiring ecosystem enforcement
Any ecosystem available to a wallet organization is available for use
either passed in handle-invitation or through auto-detection. In the
case of auto-detection, the enforcement is optional: an untrusted
credential offer or proof request can still be completed by the wallet
user. To require that every interaction must be trusted, update the
wallet organization:
PATCH /api/organisations/v1/{id}
{
"configuration": {
"enforceEcosystemAsHolder": true
}
}