├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | - Make an individual pull request for each suggestion. 4 | - Keep descriptions short and simple, but descriptive. 5 | - Check your spelling and grammar. 6 | 7 | Thanks! 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Smart Contracts [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | 3 | Curated list of platforms to run Smart Contracts. 4 | 5 | ### What is Smart Contract? 6 | 7 | ``` 8 | "New institutions, and new ways to formalize the relationships that make up these institutions, are now 9 | made possible by the digital revolution. I call these new contracts "smart", because they are far more 10 | functional than their inanimate paper-based ancestors. No use of artificial intelligence is implied. 11 | A smart contract is a set of promises, specified in digital form, including protocols within which the 12 | parties perform on these promises." 13 | 14 | -Nick Szabo, 1996 15 | ``` 16 | ``` 17 | Smart contracts are contracts whose terms are encoded in computer language instead of legal language. 18 | Smart contracts can be executed by a computing network such as RSK, so that the terms of the contracts 19 | are automatically enforced by a protocol that all nodes in the network follow. 20 | 21 | A smart contract can be fully autonomous if all the objects referred (such as currency, payments, 22 | obligations, property titles, assets, licenses) have a digital representation in the platform. 23 | 24 | Source: https://faq.rsk.co/en/main/ 25 | ``` 26 | 27 | ### License 28 | 29 | [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) 30 | 31 | To the extent possible under law, [Igor Korsakov](http://igorkorsakov.com/) has waived all copyright and related or neighboring rights to this work. 32 | 33 | ### Contribute! 34 | Share your knowledge. [Contributing guide](CONTRIBUTING.md) 35 | 36 | ### Referenced by 37 | * https://hackernoon.com/comparison-of-smart-contract-platforms-2796e34673b7 38 | * https://medium.com/@PaulRBerg/forget-thrones-welcome-the-game-of-smart-contracts-cf4fad9e0489 39 | * https://medium.com/coinmonks/should-i-develop-for-blockchain-d3321a6faecd 40 | 41 | 42 | ## Platforms list 43 | 44 | | Platform name | Engine | Contract language | Live? |Origin | Inc. in | Est. | Pub. rel.| 45 | |----------------------------------------|----------------|:-----------------------------------------------------------:|------:|------:|------------:|------:|----------| 46 | | [Aeternity](https://aeternity.com/) | HLM, FTWVM, AEVM | [Sophia, Varna, Solidity](https://github.com/aeternity/protocol/blob/master/contracts/contract_vms.md) | no | FL | Liechtenstein | 2017 | | 47 | | [Bitcoin](https://bitcoin.org/) | Bitcoin script | [Ivy-lang](https://docs.ivy-lang.org), [Balzac](https://blockchain.unica.it/balzac/docs/) | Yes | USA | USA |2017.12|2017.12 | 48 | | [BitShares](https://bitshares.org/) | ? | ? | Yes | 49 | | [Byteball](https://byteball.org) | Byteball | JSON | Yes | RU | |2016.12|2016.12 | 50 | |[Cardano](https://cardanofoundation.org)| [IELE](https://iohk.io/blog/iele-a-new-virtual-machine-for-the-blockchain) | Plutus (Haskell inspired) | no |HK |Switzerland|2015 | 51 | | Counterparty | ? | ? | Yes | 52 | | [Corda](https://www.corda.net/) | ? | 53 | | [DFINITY](https://dfinity.org/) | EVM? | Ethereum compatible (aka Solidity, Serpent, etc.) | No | | | | | 54 | | [EOS](https://eos.io/) | EVM / eWASM | C/C++ (compiles to WASM) | Yes | | | |2018.06 55 | | [Ethereum](https://www.ethereum.org/) | EVM | Solidity | Yes | CA |Switzerland |2014.04|2015.07 | 56 | | [Ethereum Classic](https://ethereumclassic.github.io/)| EVM | Solidity | Yes | ^^^ | no | ^^^ | ^^^ | 57 | | [Exonum](https://exonum.com) | ? | Rust. Java bindings TBD | No | UA |Netherlands | |2017.07 | 58 | | hyperledger | Sandbox | ? | ? | 59 | | [Lisk](https://lisk.io/) | N/A | Javascript 60 | | [Nem](https://nem.io/) | Offchiain | ? | ? | 61 | | [Neo](https://neo.org/) | NeoVM | 1st batch: dotNet; 2nd: Java,Kotlin; 3rd: C,C++,GO,Py,JS (TBD)| Yes| China | China |2014.06|2016.10 | 62 | | [Neblio](https://nebl.io) | ? | REST-API, Python,JS, .NET(C# & VB.NET), Objective-C, Java, Node.js, GO, PHP | Yes| USA | USA |2017.01|2017.07 | 63 | | NXT | ? | ? | Yes | 64 | | OmniLayer | ? | 65 | | [Qtum](https://qtum.org/) | EVM | Solidity | Yes |Singapore|Singapore |2016 |2017.09 | 66 | | quorum | ? | ? | ? | 67 | | [Radix](https://www.radixdlt.com/) | ? | Scrypto (Based on JavaScript/TypeScript) | Yes | UK | UK | 2018 | | 68 | | [Rootstock](http://www.rsk.co/) | EVM | Solidity | no |Argentina|Argentina |2015.11| 69 | | [Snax](https://snax.one/) | EVM / eWASM | C/C++ (compiles to WASM) | no | | | 2018.12 | 70 | | [Tezos](https://www.tezos.com) | ? | Michelson | no | 71 | | [Ubiq](http://www.ubiqsmart.com/) | EVM | Solidity | Yes | CA | CA ? | |2017.01 | 72 | | [Universa](https://www.universa.io/) | ? | 73 | | [Urbit](https://urbit.org/) | ? | Hoon | Yes | 74 | | [Waves](https://wavesplatform.com/) | ? | _NA_ | Yes |RU | ? |2016 |2016.11 | 75 | 76 | ## Ethereum 77 | 78 | Ethereum is a gold standard in smart contracts and has biggest capitalization among other platforms. 79 | Majority of token sales go on Ethereum platform, with recently standartized token format ERC-20. 80 | 81 | Founded by son of russian expats in Canada Vitalik Buterin. Incorporated in Switzerland. 82 | 83 | Docs: 84 | * [solidity.readthedocs.io](http://solidity.readthedocs.io) 85 | * [Awesome Ethereum list](https://github.com/void4/awesome-ethereum) 86 | 87 | Contract examples: 88 | * https://github.com/fivedogit/solidity-baby-steps 89 | * https://github.com/OpenZeppelin/zeppelin-solidity/tree/master/contracts 90 | * https://github.com/ConsenSys/ 91 | 92 | ## Ethereum Classic 93 | 94 | Classic appeared as a fork of main Ethereum chain (right after famous DAO hack) by a community that disagreed to 95 | alter the blockchain to get back stolen funds. 96 | ETC is still in search of its place in smart contracts world. Some engineering changes are still going under the hood 97 | (like, changing the emission and difficulty retarget algo), and developer tools are being developed. 98 | No major token crowdsales were made yet, but the community is looking forward to it. 99 | 100 | Not incorporated. 101 | 102 | 103 | ## Neo 104 | 105 | NEO (formerly Antshares) is a Chinese answer to Ethereum. Neo is a major player in SmartContracts world and 106 | often compared to Ethereum. 107 | 108 | First batch of supported languages is ready for production use. Second is partially ready, and third is planned. 109 | 110 | Docs: 111 | * [docs.neo.org/en-us/sc/introduction.html](http://docs.neo.org/en-us/sc/introduction.html) 112 | 113 | Contract examples: 114 | * https://github.com/neo-project/examples-csharp 115 | 116 | ## Ubiq 117 | 118 | Ubiq functions as a fork of Ethereum codebase, with several adjustmens, fully compatible with EVM and Solidity. 119 | 120 | Governed by Ubiq Technology Inc. 121 | 122 | ## Urbit 123 | 124 | Contract examples: 125 | * https://github.com/urbit/examples 126 | 127 | 128 | ## Rootstock 129 | 130 | Rootstock is a Bitcoin sidechain, adding Turing-complete language (enabling smart contracts) and ability to 131 | scale up to 20k transactions per second (eventually). Sidechain shall be secured by a merge-mining with regular Bitcoin pools. 132 | 133 | Rootstock is very well received by community, and among all 2nd layer solutions for Bitcoin is considered to be 134 | one of the closest to completion. 135 | 136 | Language used shall be Solidity, and RSK VM is fully compatible with Ethereum VM. 137 | 138 | Docs: 139 | * https://faq.rsk.co/en/main/ 140 | * https://github.com/rsksmart/rskj/wiki 141 | * http://media.rsk.co/ 142 | 143 | 144 | 145 | ## Cardano 146 | 147 | Cardano claims it is the first Blockchain to use a provably secure, proof of stake algorithm. 148 | Cardano is designed in separate layers, where the 1st layer (aka Settlement Layer; PoS blockchain) is already live (as of 2017.10), 149 | and internal currency (Ada) being added to exchanges. 150 | 151 | Second (aka computational) layer will run smart contracts using a Haskell-inspired scripting language, called Plutus, 152 | and is scheduled to release in first quarter 2018. 153 | 154 | Governed by The Cardano Foundation, IOHK and Emurgo. 155 | 156 | Docs: 157 | * https://whycardano.com/ 158 | * https://cardanodocs.com/technical/plutus/introduction/ 159 | 160 | Contract examples: 161 | * https://cardanodocs.com/technical/plutus/examples/ 162 | 163 | 164 | ## Exonum 165 | 166 | Exonum is an extensible open-source framework for creating blockchain applications. It is designed to 167 | allow you, your company or your government to build a tailor-cut private or permissioned blockchain. 168 | Thus, there's no public Exonum network or traded Exonum tokens. 169 | 170 | Exonum is developed and supported by the Bitfury Group. 171 | 172 | ``` 173 | Services are the main extension point for the Exonum framework. By itself, Exonum provides building 174 | blocks for creating blockchains; it does not come with any concrete transaction processing rules. 175 | This is where services come into play. If you want to create an instance of the Exonum blockchain, 176 | services are the way to go. 177 | ``` 178 | 179 | ``` 180 | Endpoints defined by services fulfill the same role as smart contracts in other blockchain platforms. 181 | They define business logic of the blockchain, allow to retrieve data from the blockchain, and can be 182 | reused across different projects. Partial analogies for this execution model are endpoints of RESTful 183 | web services and stored procedures for DBMSs. 184 | ``` 185 | 186 | Docs: 187 | * https://exonum.com/doc/architecture/services/ 188 | * https://exonum.com/doc/get-started/design-overview/#smart-contracting 189 | 190 | Contract examples: 191 | * https://exonum.com/doc/get-started/create-service/ 192 | 193 | 194 | ## BitShares 195 | 196 | BitShares 2.0 is the first application of Graphene technology. 197 | 198 | 199 | ## Qtum 200 | 201 | Qtum is a hybrid blockchain application platform. Qtum’s core technology combines a fork of bitcoin core, 202 | an Account Abstraction Layer allowing for multiple Virtual Machines including the Ethereum Virtual Machine (EVM) and Proof-of-Stake consensus. 203 | 204 | Qtum smart contracts aim to be compatible with existing Ethereum contracts. 205 | 206 | Main selling points of Qtum is: lite mobile wallets that can execute smart contracts; compatibility with existing bitcoin infrastructure/tools 207 | (since Qtum forked off bitcoin, and aims to adopt most of bitcoin BIPs). 208 | 209 | Qtum started in 2016, in 2017.03 Qtum had a crowdsale distributng their tokens. Main net launched on 2017.10. 210 | 211 | 212 | 213 | ## Waves 214 | 215 | Waves is a PoS blockchain specifically designed to issue tokens (and run ICOs). Some of the largest ICOs were run on Waves Platform. 216 | Users can also lease funds to miners o generate interest. There's also a decentralized exchange (DEX) with front-run protection, 217 | and gateways to common fiat currencies. 218 | 219 | Non-Turing-complete [smart contracts](https://docs.wavesplatform.com/technical-details/waves-contracts-language-description.html) support [was launched](https://blog.wavesplatform.com/waves-smart-contracts-stage-1-311e4e5a0441) on TestNet on May 3, 2018. 220 | 221 | Docs: 222 | * https://github.com/wavesplatform/Waves/wiki/Waves-Node-REST-API 223 | * https://github.com/wavesplatform/Waves/wiki/Matcher 224 | 225 | ## Bitcoin 226 | 227 | ### Ivy 228 | 229 | Ivy: a smart contract language that compiles to Bitcoin Script 230 | 231 | Docs: 232 | * https://blog.chain.com/ivy-for-bitcoin-a-smart-contract-language-that-compiles-to-bitcoin-script-bec06377141a 233 | * https://docs.ivy-lang.org/bitcoin/ 234 | 235 | Online tool: 236 | * https://ivy-lang.org/bitcoin 237 | 238 | ### Balzac 239 | 240 | Balzac: an high-level language for writing transactions, verifying their correctness, and compiling them into actual Bitcoin transactions. 241 | 242 | Docs: 243 | * https://blockchain.unica.it/balzac/docs/ 244 | 245 | Online tool: 246 | * https://blockchain.unica.it/balzac/ 247 | 248 | ## Neblio 249 | 250 | The Neblio network has an assortment of services that deploy blockchain technology. Simply put, it is an API suite, hosting platform, 251 | consultancy service provider, Node deployment base as well as a private blockchain DApps. 252 | 253 | Neblio uses RESTful APIs to give maximum compatibility to almost any language. 254 | 255 | Docs: 256 | * https://nebl.io 257 | * https://nebl.io/wp-content/uploads/2017/07/NeblioWhitepaper.pdf 258 | * https://github.com/NeblioTeam 259 | * https://neblio.wiki 260 | --------------------------------------------------------------------------------