# ERC3000

{% hint style="info" %}
📚 Read the formal proposal [here](https://eips.ethereum.org/EIPS/eip-3000).
{% endhint %}

## Historical background

Throughout 2020 Ethereum saw the explosion of DeFi, introducing protocols with interesting proposals such as [Balancer](https://balancer.finance/) with programmable liquidity pools and [Yam](https://yam.finance/) with a rebasing mechanism to control supply and widely championing yield farming for everyone. More seasoned players of the space like [Aave](https://aave.com/) brought innovative features like flash loans, but what changed the space was the popularization of *<mark style="color:blue;">**Governance Tokens**</mark>.*

While protocols like **Aragon** and **Maker** had already been championing the idea of community governance with tokens, new protocols distributed their token supply through yield farming strategies; those who did attract high amounts of capital and built healthy treasuries.

The tokens could then be used to govern the protocol itself in a community-oriented manner, but one thing became clear: due to the amount of activity on-chain, gas prices arose and DAO activity was quickly priced out. At some point, creating a traditional Moloch or Aragon DAO cost more than **$500**.

Balancer, in response to rising gas prices, built [Snapshot](https://docs.snapshot.page/)—a **gasless multi-governance client** which allowed protocols to do governance votes with no cost, utilizing a snapshot of a user's token balance at a certain block height to measure voting power. This quickly became the de-facto way of doing governance throughout the summer. Of course, this had one pitfall: projects couldn't be fully decentralized, due to the requirement of a community multi-sig to enact off-chain votes on-chain. This is where ERC300 steps in.

## The standard

**ERC-3000** presents a basic **on-chain spec** for contracts to **optimistically** enact **governance decisions** made **off-chain**. Backed by [Aragon](https://aragon.org/) & [Balancer](https://balancer.finance/), it's an attempt to standardize the design and writing of governance tools to introduce a high level of composability and compatibility between them.

The **standard** is opinionated in defining the **6 entry point functions** to contracts supporting the standard. But it allows for any sort of resolver mechanism for the challenge/response games characteristic of optimistic contracts.

While the authors (Jorge Izquierdo from Aragon and Fabien Marino from Balancer) currently believe resolving challenges using a [subjective oracle](https://blog.aragon.org/snapshot/) is the right tradeoff, the standard has been designed such that changing to another mechanism is possible (a deterministic resolver like [Optimism’s OVM](https://optimism.io/) uses), even allowing to hot-swap it in the same live instance.
