Documentation

Project Metadata

Projects can store off-chain metadata using a URI-based system compatible with ERC-721 and EIP-4906. This allows linking audit documents, location data, certifications, and dashboards to on-chain projects.

Setting Metadata

The watcher owner sets a metadata URI for each project:

JavaScript
registry.setProjectMetadataURI(projectId, "ipfs://Qm...");

The URI can point to IPFS for immutable snapshots or HTTPS for live endpoints. The registry emits a ProjectMetadataURISet event (EIP-4906 compatible) so indexers know to refresh.

JSON
{
  "name": "Solar Farm Alpha",
  "description": "Rooftop solar installation in Nairobi, Kenya. 100 kWp rated.",
  "image": "ipfs://QmImageHash",
  "external_url": "https://myenergyproject.com",
  "attributes": [
    { "trait_type": "Energy Type", "value": "solar" },
    { "trait_type": "Project Type", "value": "generator" },
    { "trait_type": "Installed Power (kWp)", "value": 100 },
    { "trait_type": "Country", "value": "Kenya" },
    { "trait_type": "Country Code", "value": "KE" },
    { "trait_type": "Data Collection", "value": "IoT" },
    { "trait_type": "Commissioned", "value": "2023-06-01" }
  ],
  "properties": {
    "fuel_type": "solar",
    "project_type": "generator",
    "installed_power_kwp": 100,
    "location": {
      "country": "KE",
      "region": "Nairobi",
      "lat": -1.286,
      "lon": 36.817
    },
    "certifications": [
      {
        "name": "REC",
        "issuer": "Gold Standard",
        "valid_until": "2027-01-01",
        "uri": "ipfs://QmCertificateHash"
      }
    ],
    "files": [
      {
        "uri": "ipfs://QmInstallationReport",
        "type": "application/pdf",
        "role": "installation_certificate"
      },
      {
        "uri": "https://dashboard.example.com",
        "type": "text/html",
        "role": "live_dashboard"
      }
    ]
  },
  "version": "1",
  "updated_at": "2026-03-13T00: 00: 00Z"
}
Note

The format uses ERC-721 compatible fields (name, description, image, attributes) extended with energy-specific properties. This makes project metadata readable by NFT marketplaces and standard metadata viewers.

Per-Attestation Metadata

Individual attestations also support a metadataURI field. This is useful for anchoring per-reading evidence — for example, an IPFS link to the raw IoT export or an auditor's signed verification for that specific reporting period.