Utility Packages
Libraries and services to facilitate decentralized application development on the EW Chain
Utility layer packages are used in application development to integrate clean energy assets, customers and marketplaces with the Energy Web Chain and with other actors and assets on the Energy Web Chain.
They provide common, shared protocols for identity, communication and information exchange through:
- Identity and role-based access management to markets and applications - for organizations and applications that are anchored on the Energy Web Chain
- Decentralized messaging - between users and assets that operate at different levels of the grid, often with no existing communication protocols (for example, messaging between aggregators and Transmission System Operators)
- Caching and name-spacing for accessible user experience and optimal querying of the Energy Web Chain in applications

Below are EW-DOS utility layer packages. You will find a brief description of the package's purpose and functionality, the primary languages and frameworks used, its dependencies and dependents in EW-DOS and links to the repository and documentation.
A TypeScript library that provides high-level functions related to the identity and access management (IAM) for all users, assets, organizations and applications that are anchored on the Energy Web Chain. This includes:
- Creation and governance of organizations, applications and their associated roles. Once created, these are persisted on the IAM Cache Server
- Claim requests, verification and issuance for role permissioning. Once created, claims are persisted on the IAM Cache Server
EW-DOS Dependencies | EW-DOS Dependents |
---|---|
|
A class-based TypeScript library that provides an abstraction layer to manage and interact with DIDs and Verifiable Credentials on the Energy Web Chain.
The DID Library enables users to adopt and/or implement different DID methods, which promotes interoperability with other methods of decentralized identifiers. The DID library currently implements the ERC1056 standard for creating and updating identities on the blockchain.
EW-DOS Dependencies | EW-DOS Dependents |
---|---|
A backend class-based TypeScript library that allows other JavaScript/TypeScript applications to easily add authentication and authorization based on Switchboard roles to their applications. This allows any application to use Switchboard's decentralized approach to identity and access management.
EW-DOS Dependencies | EW-DOS Dependents |
---|---|
|
- You can refer to the Identity and Access Management (IAM) Client Examples application to see an example of Passport-DID-Auth integration into an application
NodeJS server application using NestJS framework. The server caches specific smart contract data such as ENS namespaces and DID documents in order to improve read-query performance for applications and packages that rely on on-chain data.
The SSI Hub also facilitates the credentials exchange between credential requesters and issuers, which enables other applications such as Switchboard or Decentralized Service Bus to use credentials for role permissioning.
- Organization namespaces
- Application namespaces
- Role namespaces
EW-DOS Dependencies | EW-DOS Dependents |
---|---|
EV-Dashboard |
The Decentralized Service Bus is the pub/sub messaging service for high-volume, low latency (machine-to-machine) communications that can be integrated with on-chain transactions and signatures.
EW-DSB is a fully decentralized and scalable. Key benefits of the service include:
- 1.
- 2.Roles-based Access Control for core features and messaging
- 3.Guarantees at-least-once delivery of the messages and only one delivery within giving time window (message deduplication).
- 4.Broadcast messaging: one agent publishes a message without knowing who will read it as there can be an arbitrary number of subscribers
- 5.Unicast messaging: a message is sent to a specific recipient and only they can read it
- 6.Multicast: a message is sent to a group of recipients and only they can read it
EW-DOS Dependencies | EW-DOS Dependents |
---|---|
| |
| |
|
For any questions or needs on documentation resources, reach out on the discord documentation channel.