Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here

Statistics on serpent

Number of watchers on Github 262
Number of open issues 61
Average time to close an issue 25 days
Main language C++
Average time to merge a PR 6 days
Open pull requests 23+
Closed pull requests 9+
Last commit over 2 years ago
Repo Created almost 6 years ago
Repo Last Updated about 2 years ago
Size 3.4 MB
Organization / Authorethereum
Page Updated
Do you use serpent? Leave a review!
View open issues (61)
View serpent activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating serpent for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Serpent is an assembly language that compiles to EVM code that is extended with various high-level features. It can be useful for writing code that requires low-level opcode manipulation as well as access to high-level primitives like the ABI.

Being a low-level language, Serpent is NOT RECOMMENDED for building applications unless you really really know what you're doing. The creator recommends Solidity as a default choice, LLL if you want close-to-the-metal optimizations, or Viper if you like its features though it is still experimental.


make && sudo make install


Testing is done using pytest and tox.

$ pip install tox -r requirements-dev.txt

To run the test suite in your current python version:

$ py.test

To run the full test suite across all supported python versions:

$ tox
serpent open issues Ask a question     (View All Issues)
  • over 3 years Serpent: Redundant btyecode
  • almost 4 years Add latest develop code to PyPi
  • about 4 years Unable to Install
  • about 4 years Too many array index lookups. I cannot run anything
  • about 4 years The `def code` function doesn't compile correctly.
  • about 4 years 2^256 == 0, 2^255 == -578...
  • about 4 years Python 3 support
  • over 4 years function to return uint256 requires all code paths to return uint256
  • over 4 years master (1.6.7) is broken? merge develop (2.0.2)?
  • over 4 years version tagging in git?
  • almost 5 years serpent not generating correct ABI for a method with a return
  • almost 5 years preprocessing stage and macro evaluation stage
  • about 5 years macro substitution in init()
  • about 5 years init() doesn't call functions defined in an inset()
  • about 5 years Does ``return`` only return a single 256 bit word?
  • about 5 years Potential optimizations
  • about 5 years Private functions? The danger of exposing functions?!
  • over 5 years space saver
  • over 5 years inset() is changing behavior of function that writes to storage
  • over 5 years Using log(data=a) with an array prints each byte, not each item
  • over 5 years collatz example is broken
  • over 5 years Add NatSpec support
  • over 5 years behavior when refactoring inset to extern
  • over 5 years how to return array containing an array
  • over 5 years broken compilation
  • over 5 years Loops of Length 311 are Too Big for init Functions
  • over 5 years help installing serpent please
  • over 5 years Segmentation fault when rewriting
  • over 5 years Compiler doesnt spot nonexistant variables.
  • over 5 years examples/quicksort_pairs.py gives wrong results
serpent open pull requests (View All Pulls)
  • fix ETH/USD conversion in SchellingDollar example
  • Build on Windows (develop)
  • Build on Windows
  • Add a Gitter chat badge to README.md
  • Add Omni Currency Example
  • Python3 support
  • add tutorial
  • addr is never defined using variable k instead...
  • Left sided string, fixing inconsistency with Alethzero(#5)
  • fix: #9
  • fixed py3 incompatibility
  • fixed py3 incompatibility
  • Piper/add travis ci testing
  • fixed py3 incompatibility
  • Fix pretty_compile command
  • Fixed ecc tests (except --ringsig) by adding uint256 type annotations
  • Fix setup on pypy which doesn't export OPT env
  • what is?
  • Fix for Makefile
  • Added install_requires: `future` package
  • Add the packaging metadata to build the serpent snap
  • Support DESTDIR in the Makefile
  • Vyper, not Viper
serpent questions on Stackoverflow (View All Questions)
  • Encryption and decryption with Serpent using Crypto++ and Bouncy Castle?
  • Serpent GCM bouncy castle implementation is very slow on Android
  • Using Serpent or TwoFish C# example?
  • AES, Serpent or Twofish in C example?
  • Serpent/CBC/NoPadding (BouncyCastle) not working correctly
  • Serpent Cipher ONLY in BitSlice performs wrong calculations
  • Serpent and Twofish library C
  • Serpent Implementation in Crypto++
  • Serpent Sbox transformation
  • truecrypt bug in serpent implementation
  • serpent encryption - better than rijndael?
  • Using the serpent serializer for safe object pickling
  • freehand drawing class for serpent line
  • How do you generate a PBEKey for Serpent in Java?
  • How to use/wrap Serpent/blowfish/whirlpool Encryption Engine Code?
serpent list of languages used
Other projects in C++