Documentation

Energy Types

EnergyAS maintains an on-chain registry of energy source types. These are used to classify generator project attestations.

Registered Types

The following energy types are pre-registered at deployment:

IDNameDescription
0consumerReserved — consumption project (no generation source)
1solar_pvPhotovoltaic solar
2wind_onshoreLand-based wind turbines
3wind_offshoreOffshore wind turbines
4hydroHydroelectric (run-of-river or reservoir)
5biomassBiomass combustion or biogas
6geothermalGeothermal heat or steam
7ocean_tidalTidal or wave energy
8nuclearNuclear fission
9natural_gasNatural gas combustion
10coalCoal combustion
11oilOil/diesel combustion
12storage_dischargeBattery or other storage system discharge
13hydrogen_fuel_cellHydrogen fuel cell

Usage Rules

Energy types are set once at project registration and are immutable. The energyType parameter passed to registerProject() determines the project's classification: 0 for consumers, 1–13+ for specific generation sources. The registry validates that the given energy type is registered before accepting the project.

Energy types are not part of the attestation schema and are not validated during attestation. The registry reads the project's energy type internally to route energy totals to the correct accumulators (generated vs consumed) and to emit it in events for indexers.

Note

New energy types (e.g., fusion, next-generation renewables) can be added on-chain by the Energy Type Admin without redeploying contracts or changing the schema.

Energy Type Admin

The energy type registry is managed by a separate admin role (distinct from the contract owner). This allows delegating type management without granting full contract control.

The admin can register new types, remove existing ones, and transfer the admin role to another address.