Skip to main content
European CommissionEBSI European Blockchain

EBSI URI Scheme

Last updated on

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

Production environment
ebsi:/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
Pre-Production environment
ebsi:preprod/trusted-issuers-registry/v4/issuers/did:ebsi:zZeKyEJfUTGwajhNyNX928z
Pilot environment
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:

  1. Identify the Environment: The ebsi-network component of EBSI URI is used to determine the environment. If the ebsi-network is empty, it corresponds to the production network.
  2. 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 properties environment and nodes. The environment must match the ebsi-network.
  3. Select an API Endpoint: The nodes objects in the TDL can be used to select any api_endpoint, it is advisable to pick multiple api_endpoints with a priority to cover any network issues. This endpoint will be used to convert the EBSI URI into a URL.
  4. Concatenate the api_endpoint and ebsi-path: The api_endpoint is concatenated with everything contained in the ebsi-path component of EBSI URI. If the api_endpoint ends with a slash / and the ebsi-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

Pilot environment transformation
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