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. – Teleporting Goat May 17 '18 at 15:56

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

| improve this answer | |
  • Is it possible to do that though? – iivri andre Nov 16 '16 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. – Richard Horrocks Nov 17 '16 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.

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

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

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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