What's the difference between EIPs, Proposals, PRs, and TIPs?

We have a lot of sequentially numbered things floating around.


Here on the forum, there’s a series of numbered EIPs (which I assume stands for “ESD Improvement Proposals”). Currently the latest one is EIP-14: User Defined Coupon Expiry.


But EIPs are not the same thing as the “Proposals”, as shown in the governance dashboard. The current latest proposal is also numbered 14, but that has nothing to do with EIP-14.

Pull Requests

Proposal 14 instead belongs to this Pull Request on Github (or, at least, the pull request purports to correspond to the proposal). The Pull Request has “Proposal 14” in the title, and references the same contract implementation address as the proposal, 0xf7752941cb46785a51b23859deb36fdf1e18af4d. The code changes represented by the pull request may or may not correspond to the deployed code; one should always check that the verified contract code for the new implementation reads as they expect it to before voting for a proposal. Confusingly, Github has its own numbering scheme for Pull Requests, and the Pull Request for Proposal 14 is PR #13. The Pull Request also purports to implement EIP-9.


We also have TIPs, which are proposals for the ESD treasury multi-sig group to spend money on behalf of the project/community. I’m not sure what TIP stands for exactly, and the TIP documents are only up to
TIP-8 as of this writing.

How To Use Them All

I’ve written this up primarily to assuage my own confusion at having multiple different numbers floating around for the same protocol change, and not being able to connect the terse descriptions of Proposals being voted on with the intended changes to the code, or to the motivating discussion.

I think the Right Way to do things is to participate in discussions about TIPs and EIPs on the forum. Then, someone will implement the proposed changes and make a Pull Request and a corresponding Proposal on chain.

When a new Proposal comes up for voting on in the interface, you can go to the Pull Request list on Github and find the Pull Request corresponding to it; they seem to be named [Proposal XX] or [Proposal] XX. That Pull Request should link back to the EIPs(s), if any, where the changes were discussed, and show the code changes and their justifications. But because Pull Requests can say whatever they want, you will want to compare the changes in the Pull Request diff view with the actual code for the new proposed implementation contract from the Proposal, to make sure that they match.

Then, having read the code changes, and the EIP discussion, you can cast your vote.