Smart contract

A smart contract is a Contract# where some part of the terms has been represented in code (or possibly in some other way) to allow parts of the contract to be executed automatically, or to allow analysis of the contract.

“Smart contracts” are often mistakenly conflated with contracts that use blockchain to record information and exchange currency. See Blockchain and Smart Contracts#.

Any type of contract can be a smart contract.

The definition of a contract includes legally enforced obligations. Arguably, if two people have agreed to abide by the outcomes of a piece of software without recourse the courts, such as in a distributed autonomous organization, then the term “contract” doesn’t properly apply. A contract is a legally enforceable promise. If there is no intent to be able to use the legal system to enforce the promise, it may not be a contract at all.

A difficult issue in smart contracts is how to have the power of the courts apply to the interpretation of the contract and its enforceability, if the primary intent of the party is expressed in code. This is generally addressed by a dual contract, where the intent is expressed both in code and in natural language text that is intended to convey the same meaning.

For example, the Clause.io system allows you to drag and drop pre-written paragraphs of text into an agreement, each having an associated block of code that can be used to automate the same intent.

Languages for writing smart contracts

language/smartcontract