Let's say I want to test some code changes I made in the Tezos node. What are the steps to create and distribute this as a governance proposal? Additionally, how can I activate these changes on a testnet?

1 Answer 1


If you have an idea to modify the Tezos protocol, the first and IMO most important thing you need is feedback (and enthusiasm!) from the community (experts of all the scientific fields related to blockchains, developers of all the tools that could be impacted, protocol developers, and obviously bakers because they will have the final say in what does or does not change in the Tezos protocol).

The typical place to gather feedback is the Tezos Agora forum. Once you have received and integrated enough feedback, specifying the technical details in a TZIP draft is also very useful for developers. Protocol developers will probably participate in the discussions but from a very particular perspective: they will comment on things like difficulty to implement the feature, compatibility with other planned changes, security implications, reasons why it is currently done differently etc but they will probably not comment on legal aspects nor try to predict the impact of the feature on the tez price for example.

Once your idea has been discussed enough, resources to actually implement it are not that hard to find because there are several teams in the ecosystem dedicated to implement improvements to the Tezos protocol. These teams work very collaboratively and regularly propose joint protocol proposals. They are very busy with their current ongoing projects but when they see a good idea in the community they try to find the time to implement it. For example, during the initial discussion about Liquidity Baking, Sophia Gold from Oxhead Alpha volunteered to implement the feature. At this stage, the worse that can happen is that protocol dev teams consider that the developers who have the skills to implement your idea have more urgent things to do; if this happens you always have the option to launch a new developer team and you can apply to the grant program of the Tezos Foundation to fund it, this is essentially what happened for the creation of the Marigold team of protocol developers.

That being said, there is no obligation to be funded by the Tezos foundation to participate in the development of the protocol; anyone can propose a merge request on the Octez repository and any baker can inject a protocol proposal during the proposal phase. For an example of the former, see Keefer Taylor's increase of the operation size limit in Florence; for an example of the latter, see the Ipanema amendment.

What are the steps to create and distribute this as a governance proposal?

  • Learn the OCaml programming language, the Tezos protocol is written in this programming language.
  • Study what the protocol does, at least the part that you want to modify.
  • Read the "Developer Tutorials" pages of the documentation.
  • Install Octez from sources,
  • The development version of the protocol is in src/proto_alpha/lib_protocol/, edit the .ml and .mli files there,
  • Document your changes.
  • Test your changes.
  • Also test the migration from the previous protocol. This includes computing a hash for your amendment, which is what you need to
  • inject it (or ask a baker to inject it for you).
  • Launch a test network.
  • Communicate on your proposal.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.