PowerIndex
On-chain Nordic power price index with verifiable off-chain computation using Chainlink CRE.
What it is
PowerIndex is a verifiable electricity price index for Nordic power markets that publishes Nord Pool day-ahead market prices on-chain.
Electricity markets rely on daily auctions that determine the price of power for the next day across regional bidding zones. These prices directly influence wholesale power contracts, industrial hedging strategies, and consumer electricity costs. However, integrating this data into smart contracts requires bridging off-chain market data with on-chain systems in a verifiable and reproducible way.
PowerIndex solves this by using a Chainlink Runtime Environment (CRE) workflow to fetch Nord Pool day-ahead auction data, compute a deterministic daily price index, and publish the result on-chain.
The CRE workflow:
- Fetches day-ahead auction prices from the Nord Pool API
- Computes a deterministic daily index (average or VWAP)
- Canonically encodes the full dataset and computes a datasetHash
- Publishes a signed commitment (indexId, areaId, date, value, datasetHash) to an on-chain consumer contract
This allows smart contracts to settle financial instruments against real-world electricity prices while maintaining verifiable data provenance.
To demonstrate a real use case, PowerIndex includes a binary options market where users can create and trade contracts that settle against the published electricity price index.
This shows how CRE workflows can bridge real-world market data and decentralized financial primitives.
How it Works
PowerIndex consists of three main components:
- Chainlink CRE Workflow
A TypeScript workflow running in the Chainlink Runtime Environment:
- Fetches Nord Pool day-ahead auction prices
- Handles DST edge cases (92/96/100 periods)
- Computes a deterministic volume weighted average price index
- Builds a canonical dataset representation
- Computes a datasetHash using keccak256
- Publishes the report on-chain via a consumer contract
The workflow can be executed locally using the CRE CLI and broadcast to Sepolia.
2. Smart Contracts (Solidity / Foundry)
The on-chain system includes:
- DailyIndexConsumer - stores price commitments and emits events
- NorthpoleOptionFactory - creates binary options contracts
- NorthpoleOption - option contract settling against the index
- LocalCREForwarder / RequestRegistry - infrastructure for the local demo workflow
Contracts are written in Solidity and tested/deployed using Foundry.
3. Frontend (React + Vite + Wagmi + Viem)
The web interface allows users to:
- View the on-chain price index feed
- Inspect index commitments and dataset hashes
- Create and trade binary options
- Settle contracts once the index is published
The frontend is deployed on Vercel and interacts with the contracts via Wagmi and Viem.
Links
Created by
- Hilding Wollbo