Skip to main content

Ecosystem Enforcement Reference for Wallets

This page provides a reference of all checks and validations performed when holding with an ecosystem enforced. For instructions on enforcing an ecosystem as a wallet, see Enforcing an Ecosystem as a Wallet.

EUDI

During issuance

When using POST /api/interaction/v1/handle-invitation for an issuance, the system performs the following checks:

  • The Access Certificate contained in the issuer metadata must be signed by a trusted Access Certificate provider
  • If the request includes a Registration Certificate, this must be signed by a trusted Registration Certificate provider
  • If the request does not include a Registration Certificate, the relying party must appear on the National Registry API as specified in the Access Certificate
  • The credential offered must match what the issuer is registered to issue

If any of these checks fail, the call returns an error and nothing is issued.

When using POST /api/interaction/v1/issuance-accept, the system performs the following checks:

  • For the following types of credentials offered, the issuer must be trusted:
    • PID — identified by the schema IDs set in pidSchemaIds of your ecosystems configuration. The issuer must be found on the PID Provider trust list.
    • QEAA — auto-detected from the claims on the credential. The issuer (a Qualified Trust Service Provider, or QTSP) must be found on the QEAA Provider trust list.

If any of these checks fail, the call returns an error and nothing is issued.

During presentation

When using POST /api/interaction/v1/handle-invitation for a verification, the system performs the following checks:

  • The Access Certificate contained in the verifier metadata must be signed by a trusted Access Certificate provider
  • If the request includes a Registration Certificate, this must be signed by a trusted Registration Certificate provider
  • If the request does not include a Registration Certificate, the relying party must appear on the National Registry API as specified in the Access Certificate
  • The request must match the intended use the verifier is registered for

If any of these checks fail, the call returns an error and the interaction stops.

Embedded disclosure policies

Separately, if the credential schema includes an embedded disclosure policy, the wallet evaluates it while processing the presentation definition (GET /api/proof-request/v2/{id}/presentation-definition), before disclosing the credential. This check triggers whenever the schema has a policy configured, independent of whether an ecosystem is enforced on the interaction, and is not yet integrated with ecosystem enforcement.

The check depends on the policy type:

TypeDescription
NoneNo check is performed.
Allow listEach entry is checked against the relying party's certificates. A dn entry is matched against the DN of the RP's access certificate. An entitlement entry is matched against the entitlements declared in the RP's registration certificate or public API.
Root of trustThe dn is matched against the issuer of the RP's access certificate (or other ancestor CA in the PKI chain in case of multi-level PKI setup), and the serial is matched against the serial number of that certificate.

Unlike the checks above, a policy violation does not block presentation. If a violation is detected, the response includes an embeddedDisclosurePolicyViolation field, and the wallet should surface this to the holder as a warning before they decide whether to proceed with disclosure.