Overview
System Architecture

System Architecture

Hello

Contracts

ChipRegistry

Represents the entry point for any chip resolution actions. Since we will not be requiring complete standardization of Registrar contracts the Registry needs to be built such that any state changes are validated in the Registry contract. The ChipRegistry will be maintained by a consortium of manufacturers which have the ability to add new Developers which can then add enrollments to the ChipRegistry via their DeveloperRegistrar.

ManufacturerRegistry

Manufacturers enroll their chips into this Registry. For each enrollment they provide the signing address of their certificate, chipModel, authModel, enrollmentAuthModel, bootloaderApp.

ERSRegistry

ENS-like fork which provides human readable names for contracts related to Developers and Projects. Chips are immutably tied to an ERS name which provides uniqueness but also a path of ownership back to the Developer and thus Manufacturer.

DeveloperRegistry

Tracks approved Developers and acts as registrar of .ers domain name for ERSRegistry.

DeveloperRegistrar

Registrar through which all new Projects under the Developer name are launched. Registrar gives each project a [project].developer.ers name and sets the owner to the ProjectRegistrar. This contract will track all enrollments made by a Developer.

DeveloperRegistrarFactory

Factory contract for DeveloperRegistrar. Called by DeveloperRegistry to create a DeveloperRegistrar for new Developers.

ProjectRegistrar

Entry point for developers adding chips and users claiming chips. Can have custom code, but is responsible for setting the ers name for each chip in its enrollment [chip].project.developer.ers. Typically represents chips at PBTs or Physically Backed Tokens.

ServicesRegistry

Keeps track of all services that a chip is subscribed to. Individual services are represented by an id and are linked to various records which indicate the type of media / data the record represents (ipfs address, https address, contract address, etc). The ServicesRegistry is also responsible for tracking the primary service for a chip.