# How to write perfect EIP Do's and Don'ts
Writting and EIP can be a lesson to be learn. In this article I would like to touchdown, how to write a great EIP and give you tips before you publish your EIP.
EIP Intro
EIP stands for Ethereum Improvement Proposal, it is apart of the Ethereum core governance process which works in order to improve the Ethereum platfform, including core protocol specifications, client APIs and contract standards.
EIPs are separated into a number of types and each has its own category. Core, Networking, Interface, ERC, Meta, Informational.
EIPs
ERCs
ERC stands for Ethereum Request (for) Comments, it is one of few categories of EIPs. These are application layer standards including token standards, name registries, URI schemes, library/package formats and wallet formats. This is the most popular category, which has more than 5000 EIPs in and counting.
Full EIP process, on how to write an EIP is described in EIP-1
Do and don't s
# Do's
Do read EIP-1. It is your manual on how to write an EIP, it defines everything that the EIP needs to include, how to write it, the process and all that.
Do add Tests to your EIP
In order for your EIP to have higher success rate, have bigger chance to be popular and used, you should definitely add tests to your EIP/ERC.
Do ask for community feedback
Post your EIP on Eth magicians forum for community feedback. Make sure to engage with other posts, and give feedback to your peers too. This step is important as EIP Editors rely on community feedback in order to approve EIP that users like.
Do add Abstract to your EIP
Abstract is overview of your EIP, it provides user the reason to use your EIP.
keep your initial EIP drafts small. And keep it as small as possible even as it moves through Review and Last Call. Providing too much Motivation, or having an excessively large Test Cases section only means that you're more likely to make errors that will block your EIP from being merged or moving forward. Keep it small.
https://github.com/ethereum/EIPs/pull/5313 is a great example here. It was proofread/grammar checked before submitting, and just as large as it needed to be.
use the latest eip-template.md. Please. You won't believe the amount of EIPs we have to refactor because they've used something like EIP-1155 or EIP-20 as a template instead of the file that is designed to be a template
And please please please please PLEASE read EIP-1 before submitting an EIP.
# Don’ts
Don’t overcomplicate and overenginer your EIP. Try to keep your EIP simple in order for the EIP to
Don’t submit EIP Immediately after writing it. Take your time to proofread it, make sure to get grammar checked before publishing your EIP.
Don't standardize the interface for gaming contract. It may not be interopable across the network. There's no need to write interface EIP for contract if it won’t be used across the network by more projects across more contracts. Unless other contracts need to interoperable with your contract with the same interface. You may want to standardize this for your own purposes but it doesn’t benefit the whole community
Don’t write an EIP to make protocol more complex. A common mistake that people think is, that people want to add EIPs to add a lot of complexity to the protocol. The reality is opposite, Core Devs and people working on Core protocol layer are trying to keep things as simple as they can.
Writing and EIP for single use is not useful.
Don't update the community on a DAO you created via EIP repostitory. It's not providing utility to the community as whole to provide this information. Use whatever channels you use to build your own community like blog post, twitter or other social media.
Don't abadon your work. There has been a handful of EIPs where authors put work into writing a quality EIP. But they atually never merged it in and came back, interated with the feedback from the community and EIP editors.
Perfect EIP examples:
ERC-20 https://eips.ethereum.org/EIPS/eip-20
Further reading
Ethereum EIPs FAQ https://medium.com/coinmonks/what-the-heck-is-eip-and-how-can-i-create-one-ethereum-standards-eip-erc-faqs-2fd1194eebe0
EIP-1 https://eips.ethereum.org/EIPS/eip-1
EIPs All Blockchain Developers Should Know https://blog.bitium.agency/eips-all-blockchain-developers-should-know-part-3-eip-1155-eip-1167-eip-1271-eip-1344-b04b96722cb3
Further watching
Writting an EIP with Matt Garnett https://www.youtube.com/watch?v=Vnu4m4bBqCs&t=3s&ab_channel=EthereumCatHerders
EIP Editing wit Matt Garnett https://www.youtube.com/watch?v=Z5M-PMaJ2aI&t=2s&ab_channel=EthereumCatHerders