In Ethereum the terms "Contract" or "Smart Contract" are loosly used; "Smart Agent" might have been a better name [citation-needed]. Most smart contracts are certainly not legal contracts.

Now for a contract to be a legal contract there are certain conditions that have to be met, for example it needs to contain 4 elements:

At common law, the elements of a contract are offer, acceptance, intention to create legal relations, and consideration. Source wikipedia

In an attempt to turn a "Smart Contract" into a legal one, how would you design these 4 terms? Bonus points for Solidity code snippets ;)

  • 2
    I really don't think this is a good question; The reason they're called smart contracts is because they're supposed to replace legal contracts.
    – Shelvacu
    Commented Jan 28, 2016 at 5:10
  • This is a very good question this Devcon presentation Agreement Making in Solidity: A Legal Perspective by Bill Marino gives a good overview of the issues. I will summarise when I have the time. Commented Feb 3, 2016 at 13:11

4 Answers 4


"Smart contracts" implement legal expectations, forming an agreement as to state between 2+ computers, and when that state changes. It is unfortunate that some are trying to shoehorn the idea unmodified into the legal space, bc as explained elsewhere, "contract" is loaded with legislative and judicial baggage,--not to mention centuries of academic gloss/glop. At this early stage, we can be certain that smart contracts will be powerful tools to assure pre-ordained outcomes, but without AI, the only way to do that is to make them as dumb as possible. I would argue that general acceptance will depend on them being as dumb as possible, bc lawyers are slow to shift and highly risk-adverse.

The outcome of engagement between 2+ computers can't be vague: without either an "oracle" or resort to arbitration (which sort of defeats the purpose), all you get is moosh. So, we need a lot more lawyer-programmers to ensure usefulness and community consensus around how, when and why we will recommend clients integrate and rely on them. Once that happens, am absolutely certain they will be disruptive and increase efficiency,--as well as cause rewriting of huge chunks of commercial law and best practices. Hold on to your hats!!


Legal processes are social phenomena and they are not deterministic, so they cannot reasonably be encapsulated in computer program code. For example even factors such as blood sugar levels of the people involved can influence the outcome of a legal procedure. True computational law is probably at least fifty years away. Vitalik Buterin has also stated that "Smart Contract" may be a misleading term.

On the other hand, as the old saying goes, "possession is nine-tenths of the law"


Bill Marino addresses the essential elements of a contract in his blog post Unpacking the term ‘Smart Contract’:

  1. Two or more parties with legal capacity to make a contract
  2. Reasonably defined terms
  3. A lawful purpose
  4. Consideration
  5. Mutual Assent

Of these, 4 and 5 seem quite possible to define in a smart contract.

The Five Elements of a Contract


From a legal point of view, ALL smarts contracts do actually fall under the definition of a legal agreement. They constitutes agreement with a peculiar form of enforcement.

Think about it, when you lose ETH because your smart contract failed, don't you are tempted to call your lawyer and ask for damages? It proves that smart contracts triggers legal considerations, so it apply least subsidiary. Note: Most of the Court, worldwide already considers cryptocurrencies as being "values" equivalent to money.

Further, we can see that the purpose of the law, as for the code, is to regulate the architecture of behaviors. Both contain social consequences that will be taken into account by the law. As smart contracts are part of our social behavior they fall fully under a legal scope.

The difference now, is that code is universal when law is national and implement the cultural view of specific people in a specific part of the world and regarding a specific issues. As a consequence, the diversity of laws might triggers diversity of coding requirements. To draw a parallel, we can see this cultural diversity with regards to the discussion of google's privacy requirements: Google, won't treats your data the same in France than in the U.S. since the two legal regimes differs.

I believe it is a matter of time before regulation effectively apply to code. In reality, the MifiD 2 regulation in the EU (Financial Markets' regulation) already set some conditions regarding algorithms. For instance, it states that algorithms must be compliant with some principle of the law.

In consequence, smart contrats will not escape regulation. The important thing is to create, as early as possible a set, of best practice and get a global overview of what is legally needed in order to develop "healthy contracts". Otherwise, regulators might be tempted to take some radical measures and high requirements that would kill the smart contracts adventure.


See: http://vessenes.com/we-need-some-best-practices-for-smart-contracts/

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.