Table of contents

  1. Universal Registry Contract

Universal Registry Contract

On the back of a proposal by Justin Drake and a post by mteam, teams started to work on a universal registry contract. The point of the contract is to have a standardized registration process for preconfs (or other commitments) from proposers and have a unified registry that L2s and others could leverage to understand who has opted in to provide sequencing / preconfs for based rollups. Below are some of the key design principles teams used:

  • The contract is super simple and short (ideally ~100 lines).
  • Only ETH for deposits.
  • All the constants are parametrised (so as to minimise bike shedding for now).
  • Slashing (and delegation) logic is encapsulated by pieces of signed EVM bytecode shared offchain between relevant parties (eg users and gateways). This is for maximum credible neutrality, forward compatibility, simplicity, and gas efficiency.
  • No dependence on any external code (especially restaking platforms).
  • Zero governance, fully immutable.
  • Open source from day 1, Apache 2.0 + MIT dual licensing.
  • Nice to have: support for underwriters
  • Nice to have: bootstrapping phase with freeze instead of burn
  • Code is maintained in a neutral Github org.

Teams worked on an overview doc with details, this can be found here

During the design process there was quite a bit of iteration. More details on this can be found in some docs we maintained around design decisions.

The team also provided some reference implemntations teams can use as starting points and to give more context around the URC.