All Projects → s-tikhomirov → Smart Contract Languages

s-tikhomirov / Smart Contract Languages

Licence: other
A curated collection of resources on smart contract programming languages

Projects that are alternatives of or similar to Smart Contract Languages

Eth95
🛠️ A smart contract UI for your Ethereum dapp project
Stars: ✭ 139 (-21.02%)
Mutual labels:  smart-contracts
Convector
Smart Contract Systems the easy way. Open source development framework.
Stars: ✭ 147 (-16.48%)
Mutual labels:  smart-contracts
Eos Contract
Tutorial on writing smart contracts on EOS EOS智能合约教程,从零开始学习EOS智能合约, DApp安全漏洞(security)及攻击实践(EOS Contract)(Powered by Itleaks)
Stars: ✭ 163 (-7.39%)
Mutual labels:  smart-contracts
Flow Nft
The Non-Fungible Token standard on the Flow Blockchain
Stars: ✭ 138 (-21.59%)
Mutual labels:  smart-contracts
Cryptokernel
A SDK for implementing blockchain-based digital currencies
Stars: ✭ 146 (-17.05%)
Mutual labels:  smart-contracts
Set Protocol Contracts
🎛 Set Protocol Smart Contracts
Stars: ✭ 151 (-14.2%)
Mutual labels:  smart-contracts
Consensys Academy Notes
A series of notes that were taken during the ConsenSys Academy program.
Stars: ✭ 138 (-21.59%)
Mutual labels:  smart-contracts
Cckit
Programming toolkit for building Hyperledger Fabric Golang on-chain (chaincode) and off-chain applications
Stars: ✭ 167 (-5.11%)
Mutual labels:  smart-contracts
Sablier
The protocol for real-time finance on the Ethereum blockchain
Stars: ✭ 147 (-16.48%)
Mutual labels:  smart-contracts
Eos Java Rpc Wrapper
Stars: ✭ 162 (-7.95%)
Mutual labels:  smart-contracts
Peatiocryptoexchange
An open-source Crypto-Currency exchange. Peatio v3.0 Coming Soon !
Stars: ✭ 141 (-19.89%)
Mutual labels:  smart-contracts
Flow
Flow is a fast, secure, and developer-friendly blockchain built to support the next generation of games, apps, and the digital assets that power them 🌊
Stars: ✭ 145 (-17.61%)
Mutual labels:  smart-contracts
Stacks
Stacks ecosystem overview.
Stars: ✭ 1,921 (+991.48%)
Mutual labels:  smart-contracts
Blockchainbooks.github.io
Blockchain Books
Stars: ✭ 139 (-21.02%)
Mutual labels:  smart-contracts
Cadence
Cadence, the resource-oriented smart contract programming language 🏃‍♂️
Stars: ✭ 157 (-10.8%)
Mutual labels:  smart-contracts
Status Network Token
Smart Contracts for the Status Contribution Period, along with Genesis and Network Tokens
Stars: ✭ 138 (-21.59%)
Mutual labels:  smart-contracts
Ebtc
eBitcoin (eBTC) is an ERC20 token. Its primary utility is to provide an easy & fast payment solution. Its edge over other tokens is that it is capable of sending up to 255 payments in a single transaction.
Stars: ✭ 149 (-15.34%)
Mutual labels:  smart-contracts
Voting
Dock governance proposals and smart contract
Stars: ✭ 172 (-2.27%)
Mutual labels:  smart-contracts
Dasp
The Decentralized Application Security Project
Stars: ✭ 166 (-5.68%)
Mutual labels:  smart-contracts
Ico Contracts
Ethereum smart contracts that have been used during successful ICOs
Stars: ✭ 160 (-9.09%)
Mutual labels:  smart-contracts

Overview

This is a curated collection of resources on specialized programming languages executed by decentralized peer-to-peer networks, also known as blockchains.

Let us define a smart contract, or simply contract, as a piece of code created by a blockchain user and executed by a blockchain node. A smart contract language (SCL) is a programming language that is either used to write a smart contract directly, or is compiled to it.

Programming languages differ on multiple dimensions, such as paradigm and type system. Due to a very unusual execution environment, SCLs have a different set of trade-offs compared to earlier languages. This spawned multiple attempts at creating secure and expressive SCLs.

Pre-Bitcoin

Bitcoin

  • Bitcoin Script - a stack-based non Turing complete Forth-like language used to write script that determine whether a UTXO can be spent.
  • Ivy - a non Turing complete higher-level language that compiles to Bitcoin Script (announcement)
  • Simplicity - a typed functional programming language utilizing combinators blog post, another one
  • BitML - a process calculus based language, compiles to Bitcoin script (article)
  • BALZaC - a high-level language based on the formal model proposed in [AB+18FC]
  • Miniscript - a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more
  • Sapio
  • Minsc - a high-level scripting language for expressing Bitcoin Script spending conditions based on Miniscript Policy

Ethereum

Last update in 2020:

  • Ethereum bytecode - a Turing complete stack-based language executed by the Ethereum virtual machine (EVM)
  • Solidity - a high-level imperative statically typed language compiled to EVM
  • Vyper - a high-level language compiled to EVM (announcement of formal tools from RV)
  • Fe - a language inspired by Vyper aiming to achieve its goals
  • eWASM - a restricted subset of WebAssembly for Ethereum contracts
  • Idris - a pure functional language with dependent types
  • Flint - a type-safe, contract-oriented programming language specifically designed for writing robust smart contracts on Ethereum
  • Formality - an efficient programming language featuring formal proofs
  • Huff - an efficient low-level language with macros
  • Lira - a declarative domain-specific language for defining simple yet highly complex financial contracts for EVM
  • Zinc - a language to write zero-knowledge circuits and ZKP-based smart contracts

No updates after 2018:

  • Bamboo - a high-level "formal-verification-friendly" language compiled to EVM
  • Pyramid - An EVM backend for SICP Scheme
  • Lolisa - subset of Solidity
  • Logikon - an experimental language for smart contracts

No updates after 2017:

No updates after 2016:

  • L4 - a language "based on deontic modal logic", presented at Devcon 2 (Sep 2016)
  • Mutan - a C-like language compiled to EVM (deprecated)

IRs

  • Yul (ex JULIA, ex IULIA) - an intermediate language that can be compiled to bytecode for different backends.
  • Yul+ - a low-level, highly efficient extension to Yul
  • SlithIR - an intermediate representation that is used by Slither to enable high-precision analysis via a simple API. It supports taint and value tracking to enable detection of complex patterns.
  • Elle - The Elle source language, also known as Elle-Core, captures structured programming abstractions and enables their translation to Ethereum EVM bytecode through a verified compiler.

DSLs

  • Alacrity - a DSL for simple, formally-verified DApps
  • Ergo - Domain specific language for smart legal contracts
  • Sandcastle - a SQL Ethereum smart contract language
  • FSolidM - framework for visual programming of Finite State Machines
  • Findel - a non Turing complete financial DSL inspired by a S.P.Jones' work
  • the language from the paper by Egelund-Müller et al
  • Chorus - a financial contractual markup language by Firmo network
  • ADICO - a domain-specific language to support the contract modeling process
  • ink! - an embedded DSL for writing WebAssembly based smart contracts using the Rust programming language and targeting Substrate blockchains. Documentation

Other blockchains

  • Move - a safe and flexible programming language for the Libra Blockchain
  • Michelson - a stack based and strongly typed domain-specific language (Tezos)
  • Liquidity - a high-level typed smart-contract language that strictly complies to Michelson security restrictions (Tezos)
  • fi (Tezos)
  • LIGO (Tezos)
  • Plutus - a pure functional language with user-defined data types and polymorphism (Cardano); compiles to Plutus Core (video)
  • Marlowe - a domain-specific language for smart contract language embedded in Plutus (Cardano)
  • Rholang - a reflective higher-order process calculus language (RChain)
  • Obsidian - a state-oriented language with linear types
  • DAML - a smart contract language of Digital Asset
  • Simvolio (Apla blockchain platform)
  • RIDE - a non Turing complete language infulenced by Scala and F# (Waves)
  • Scilla - an intermediate level language for verified smart contracts (Zilliqa)
  • TxVM (Chain)
  • IELE - a variant of LLVM specialized to execute smart contracts on the blockchain
  • Pact - a smart contract language with a Lisp syntax but Haskell-like types (Kadena)
  • Ledger Design Language - a modeling language for describing public ledgers
  • Sigma-State (Ergo)
  • Sophia - a strongly typed language in the ML family (Æternity)
  • Varna - a non Turing complete high-level language (Æternity)
  • Fift - a stack-based general purpose programming language optimized for TON Blockchain smart contracts (TON)
  • Clarity (Blockstack)
  • Ethermint (Cosmos)
  • Secure EcmaScript (Cosmos)
  • Kadenamint (Cosmos)
  • Rell (Chromia)

Other links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].