I want to implement some smart contracts and I am strongest in python.

  • The other answer give great information, though I think using Serpent and Viper might be more time consuming than learning Solidity. It's not a very hard language to learn and and being strongest in python is not the strongest reason to use Serpent or Vyper instead of Solidity. Commented May 17, 2018 at 15:56

3 Answers 3


pythereum and pythapp - your question tags - are Python implementations of Ethereum's core library and command line client respectively. They are orthogonal to the language in which smart contracts are written.

So the short answer to your question is: no.

Having said that, have a look at Serpent: https://github.com/ethereum/wiki/wiki/Serpent

  • Is it possible to do that though? Commented Nov 16, 2016 at 22:26
  • See the other answer from eth. In theory you could write a smart contract in any language you like, but you'd also need to write a compiler. Commented Nov 17, 2016 at 7:49

Ethereum smart contracts need to compile to EVM (Ethereum Virtual Machine) bytecode. There are no Python to EVM compilers, and for some of the challenges, see What is the merit of creating new smart contract languages like Solidity instead of using other languages?

The options are to use a Python-like language Serpent or a recent (Nov 2016) experimental language named Viper.

See this for additional information on Viper and Serpent, including their differences.

  • 1
    What about creating a python to solidity or python to serpent transpiler?
    – nu everest
    Commented Apr 4, 2017 at 2:57
  • @nueverest Yes, those are options. Another option is transpiling to Solidity's Standalone Assembly.
    – eth
    Commented Apr 4, 2017 at 4:52

There is now - Lamden Tau handles Python smart contracts, although it is as different blockchain than Ethereum

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.