Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

Table of Contents

Packages

SDK

PackageVersionDescription
@energyweb/asset-registrynpmContracts and client for Asset Registry
@energyweb/market-matchernpmOff-chain services for demand and supply matching
@energyweb/marketnpmContacts and client for Origin Market
@energyweb/originnpmContracts and client Origin ceritifacts
@energyweb/user-registrynpmContracts and client User Registry
@energyweb/utils-generalnpmUtilities
@energyweb/utils-testbackendnpmExample backend for storing off-chain meta-data

UI and demo

PackageDescription
@energyweb/origin-uiUI for Origin
@energyweb/solar-simulatorSolar production and consumption simulator
@energyweb/utils-demoDemo deployment and configuration utilities

Installation

Make sure have latest yarn package manager installed.

yarn

Build

yarn build:static
yarn build

Test

yarn test

Run demo

yarn run:origin

Find line like @energyweb/utils-demo: [backend] PUT - OriginContractLookupMarketLookupMapping 0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614 where the contracts address is used to visit the UI at

http://localhost:3000/0xb4ec89404c4a24f4c80d157ba9ad803cbc4db614

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Key modules and components

Overview of architecture

Key repositories

This section lists key entry points to start your journey with Origin.

  1. utils-demo - demo repository with build scripts that enable easy deployment of smart contracts to Tobalaba or local blockchain. Often used to demo and get to know features and capabilities of Origin.
  2. utils-testbackend - Origin combines on and off-chain data storage. This repository is used to act as a backend service for off-chain data storage. You'll need this to run utils-demo (store data), and origin-ui to display stored data.
  3. origin-ui - frontend of the system needed to view data stored in smart contracts (on-chain) and in the backend (off-chain). To interact Origin frontend you'll need MetaMask.

Other components

  1. user-registry - high-level library to interact with user registry. Can be used to i. a. create new user or set user's role in the system.
  2. asset-registry - high-level library for creating and managing electricity producing and consuming assets. Depends on user-registry, because only user with Asset Manager role can be owner of asset.
  3. origin - a heart of Origin systems, contains logic for storing and transferring Energy Attribute Certificates (as a form of unique ERC721 tokens). This library also has a more general construct called TradeableEntity that can be used to wrap, as name suggests, other tradeable entities, such as Power Purchase Agreements or certificate bundles.
  4. market - a library that allows to create demand (for buyers), supply (for sellers) and agreements between buyers and sellers.
  5. market-matcher - the most important part of marketplace, guarantees automatic matching of supply and demand between sellers and buyers. Matching rules can be highly customized and afterwards the algorithm can be tested by running matching simulator.
  6. erc-test-contracts - Test ERC20 token for demo purposes, especially for doing an on-chain test purchase of a certificate using tokens
  7. utils-general - Contains logic for more straightforward interaction with contracts, such as watching events. It is also a base layer for other libraries to build upon. It provides a foundation for things like off-chain data storage that is universal for all entities.
  8. solar-simulator - This service simulates smart-meter readings based on example solar data from whole year in 15-mins intervals. Also allows you to generate the config based on data from public I-REC registry.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request
    • Open a pull request from your fork master branch
    • Request code reviews from @Kuzirashi, @JosephBagaric or @kosecki123
    • Once the PR is approved and the build passes, it will be merged to the master branch

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages