{"id":21900,"date":"2026-07-23T00:13:00","date_gmt":"2026-07-23T00:13:00","guid":{"rendered":"https:\/\/cryptoted.net\/index.php\/2026\/07\/23\/update-on-the-vyper-compiler\/"},"modified":"2026-07-23T00:13:00","modified_gmt":"2026-07-23T00:13:00","slug":"update-on-the-vyper-compiler","status":"publish","type":"post","link":"https:\/\/cryptoted.net\/index.php\/2026\/07\/23\/update-on-the-vyper-compiler\/","title":{"rendered":"Update on the Vyper Compiler"},"content":{"rendered":"<p> <br \/>\n<br \/><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/eth-wallpaper.jpg\" \/><\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">The idea behind the Vyper Project was to develop something that was designed at the language level to naturally exhibit a high degree of safety. The project was originally authored by Vitalik as a proof-of-concept replacement for Serpent, its predecessor, but shortly after its creation Vyper found itself without a dedicated maintainer. Luckily, there were enthusiastic community members that took up the torch and continued development of the project, and we (the EF Python Team) became re-involved in the project for some time earlier this year.<\/p>\n<p class=\"chakra-text css-gi02ar\">This fall, a preliminary security audit was performed by the Consensys Diligence team on the Python-based Vyper compiler. <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/diligence.consensys.net\/audits\/2019\/10\/vyper\/\">You can read the results for yourself here<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">We encourage you to read the report, however, there are two main take-aways.<\/p>\n<ol role=\"list\" class=\"css-vgl4zd\">\n<li class=\"css-0\">There are multiple serious bugs in the Vyper compiler.<\/li>\n<li class=\"css-0\">The codebase has a high level of technical debt which will make addressing these issues complex.<\/li>\n<\/ol>\n<p class=\"chakra-text css-gi02ar\">Since the existing Python-based Vyper implementation is not yet production ready, it has been moved out of the ethereum github organization into its own organization: vyperlang. The existing maintainers are planning to address the issues independently once again, but we will continue to follow the project closely here: &gt; <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/vyperlang\/vyper\">https:\/\/github.com\/vyperlang\/vyper<\/a><\/p>\n<p class=\"chakra-text css-gi02ar\">Meanwhile, our team continues work on a Rust-based compiler in tandem. More on that below, but first, here\u2019s a bit more on how we got to where we are today.<\/p>\n<p class=\"chakra-text css-gi02ar\">Over the course of this year we worked with the project maintainers to focus on improving the code quality and architecture of the project. After a few months of work we were skeptical that the python codebase was likely to deliver on the idea that Vyper promised. The codebase contained a significant amount of technical and architectural debt, and from our perspective it didn&#8217;t seem like the existing maintainers were focused on fixing this.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"exploring-rust\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"exploring rust permalink\" href=\"#exploring-rust\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Exploring Rust<\/h3>\n<p class=\"chakra-text css-gi02ar\">Earlier this year in August, we explored producing a version of the Vyper compiler built on fundamentally different architecture. The goal was to write a compiler in Rust that leverages the existing work by the Solidity team and uses the YUL intermediate representation to allow us to target EVM or EWASM during compilation. A Rust based compiler can be easily compiled to WASM, making the compiler much more portable than one based in Python. By building on top of YUL we would get the EVM and EWASM compilation for free, only requiring the compiler to handle the transformation from a Vyper AST to YUL.<br \/>\nWe were sufficiently far along with our Rust based Vyper compiler when the Python Vyper audit was released, and were confident in the directionl. The audit confirmed many concerns around the python codebase and helped to validate the direction we&#8217;ve taken.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"the-work-continues\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"the work continues permalink\" href=\"#the-work-continues\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>The work continues<\/h3>\n<p class=\"chakra-text css-gi02ar\">That said, the maintainers of the Python Vyper codebase do intend to continue with the project. While we don\u2019t plan to have continued involvement in the python codebase, we wish them luck but also wanted to make note of recent events to avoid inadvertently signalling that the project was safe to use.<\/p>\n<p class=\"chakra-text css-gi02ar\">So at present there are currently two &#8220;Vyper&#8221; compilers: The EF-supported work towards building a compiler written in Rust to deliver on the original idea of Vyper, and the Python effort which will work independently toward the same goals in the Python codebase. We&#8217;re hopeful that we can continue working together towards a single &#8220;Vyper&#8221; with multiple implementations, and we\u2019ll keep everyone up to date as the project moves forward.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2020\/01\/08\/update-on-the-vyper-compiler\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The idea behind the Vyper Project was to develop something that was designed at the language level to naturally exhibit a high degree of safety. The project was originally authored by Vitalik as a proof-of-concept replacement for Serpent, its predecessor, but shortly after its creation Vyper found itself without a dedicated maintainer. Luckily, there were [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":21875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[24],"tags":[],"kronos_expire_date":[],"class_list":["post-21900","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethereum"],"_links":{"self":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/21900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/comments?post=21900"}],"version-history":[{"count":0,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/21900\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media\/21875"}],"wp:attachment":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media?parent=21900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/categories?post=21900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/tags?post=21900"},{"taxonomy":"kronos_expire_date","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/kronos_expire_date?post=21900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}