Skip to content

Packages

Origin consist of publicly available NPM packages that allow developers to build their own Energy Attribute Certificate (EAC) traceability and trading solutions.

The SDKs are structured so that implementers to pick and chose from the suite of available SDK components, as well as allow them to create custom implementations for for other issuers, such as I-REC.

By design, the SDK packages are loosely coupled, which enables the possibility to implement solutions that consist of only part of the Origin features, such as:

  • issuance only
  • device registry only
  • trading only

Note

Origin source code is managed as the monorepo structure, all packages code are available in packages/* folder. Each of the packages is versioned independently.

SDK packages

Packages that contains core components for building Origin experience.

Core packages that contains abstract or issuer independent code

I-REC packages that contains I-REC specific implementations

Naming scheme:

  • api suffix - packages that contains Nest.JS based API endpoints for e.g @energyweb/origin-device-registry-api
  • client suffix - packages that contains auto-generated Typescript client libraries for api projects for e.g @energyweb/origin-device-registry-api-client
  • wrapper suffix - packages that contains wrapper libraries for external APIs for e.g @energyweb/issuer-irec-api-wrapper

Devices

Device registration related packages.

Core

Name Description
@energyweb/origin-device-registry-api Origin device registry API
@energyweb/origin-energy-api Smart meter reads data service
@energyweb/origin-ui-core Core component for Origin based UI

I-REC

Name Description
@energyweb/origin-device-registry-irec-form-api Legacy I-REC device registry API
@energyweb/origin-device-registry-irec-local-api I-REC device registry API
@energyweb/origin-ui-irec-core Core component for Origin based UI

Organizations

Organization registration and management related packages.

Core

Name Description
@energyweb/origin-backend Core organizations, users, authentication API
@energyweb/origin-ui-core Core component for Origin based UI

I-REC

Name Description
@energyweb/origin-organization-irec-api I-REC organizations API
@energyweb/origin-ui-irec-core Core component for Origin based UI

Traceability

Issuance and transparency related packages.

Core

Name Description
@energyweb/issuer Core issuer package
@energyweb/issuer-api Core issuer API
@energyweb/issuer-irec-api-wrapper I-REC API client package
@energyweb/origin-ui-core Core component for Origin based UI

I-REC

Name Description
@energyweb/issuer-irec-api-wrapper I-REC API client package
@energyweb/origin-ui-irec-core Core component for Origin based UI

Trade

RECs trading related packages.

Core

Name Description
@energyweb/exchange Core exchange API
@energyweb/exchange-core Order book matching engine
@energyweb/exchange-io-erc1888 ERC1888 deposits and withdrawals implementation
@energyweb/exchange-token-account Deposit token accounts
@energyweb/exchange-ui-core UI components for exchange

I-REC

Name Description
@energyweb/exchange-core-irec I-REC based product implementation
@energyweb/exchange-irec I-REC based product and rules API

Integration

Packages that are used as the host (runner) packages that allow for various configurations.

Name Description
@energyweb/origin-backend-app API host project based on legacy I-REC processes
@energyweb/migrations Migrations project with sample marketplace data
@energyweb/origin-backend-irec-app API host project based on I-REC API based processes
@energyweb/migrations-irec Migrations project with sample marketplace data for I-REC API based processes
@energyweb/origin-ui API host for Origin UI project

Tools

Name Description
@energyweb/origin-backend-utils Common utils
@energyweb/utils-general Common utils