The EBSI decentralised network can be accessed via trusted EBSI nodes, each of which exposes its own publicly accessible endpoints. It's crucial that a Verifiable Credential isn't tied to a single node, as this would link the validity of the Verifiable Credential to the validity of the node.
Uniform Resource Identifiers (URIs) RFC 3986 can be utilised to locate resources without tying them to a URI authority. This document outlines a URI scheme for identifying the content of Trust Registries, enabling all participants (Issuers, Holders, and Verifiers) to use their preferred EBSI node, whilst maintaining consistent identifiers.
EBSI URI Scheme
The EBSI URI scheme complies with RFC 3986, and employs the ABNF syntax and definitions from RFC 5234, and RFC 3986. All Verifiable Credentials that reference EBSI node resources must use the EBSI URI scheme instead of HTTP(S).
The EBSI URI Syntax ABNF Rules
ebsi-uri = "ebsi:" ebsi-network ebsi-path
ebsi-network = 0*1( 1*network-chars ":" )
ebsi-path = path-abempty \[ "?" query \] \[ "#" fragment \]
network-chars = %x61-7A
Examples
ebsi:/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
ebsi:preprod/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
ebsi:pilot/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
Transforming EBSI URI into URL
The process of transforming an EBSI URI into a URL involves the following steps:
- Identify the Environment: The
ebsi-network
component of EBSI URI is used to determine the environment. If theebsi-network
is empty, it corresponds to theproduction
network. - Resolve the TDL: Once the correct environment is identified, the TDL shall be resolved. There will be a versioned TDL issued for each environment. The TDL contains
credentialSubject
with propertiesenvironment
andnodes
. Theenvironment
must match theebsi-network
. - Select an API Endpoint: The
nodes
objects in the TDL can be used to select anyapi_endpoint
, it is advisable to pick multipleapi_endpoints
with a priority to cover any network issues. This endpoint will be used to convert the EBSI URI into a URL. - Concatenate the
api_endpoint
andebsi-path
: Theapi_endpoint
is concatenated with everything contained in theebsi-path
component of EBSI URI. If theapi_endpoint
ends with a slash/
and theebsi-path
begins with a slash/
, one of them must be removed to avoid having two slashes//
.
This process ensures that the EBSI URI is correctly transformed into a valid EBSI node URL. It's important to note that the TDL is a crucial component in this transformation process as it provides the necessary mapping between the ebsi-network
and the environment
, and also provides the api_endpoint
for the URL.
Examples
EBSI URI based:
ebsi:pilot/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
TDL resolved node:
https://api-pilot.ebsi.stsisp.ro/
After URL transformation:
https://api-pilot.ebsi.stsisp.ro/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z