Skip to main content

Smart Contracts

Smart Contracts

What are smart contracts?

Smart contracts are pre-programmed, automatic digital agreements. They are self-executing, unalterable, and incorruptible. They don't necessitate any acts or the presence of others.

Two worlds of smart contracts

We can break smart contracts and financial transactions down into two worlds:

In one world, you wish to communicate a sense of worth from one actor (or group of actors) to another (or a group of actors). There must be a representation of that value, as well as the rules and circumstances that govern it, as well as a trigger event. A financial contract is what we call it, and it's best done with a domain-specific language. This world has nothing to do with replacing a big company or this common notion that we might have with dapps.

In another world, you'd like to build programs, possibly even replace a major corporation, or address a smaller problem. A triangle is formed by these applications:

  • The client is the portion of the program that runs on your computer.
  • A server is a computer that operates on someone else's computer (or multiple servers).
  • The smart contract is a piece of code that allows a decentralized system to operate.

Programming languages

  • Aiken - for on-chain validator scripts only: a language & toolchain favouring developer experience.
  • Marlowe - a domain-specific language, it covers the world of financial contracts.
  • opshin - a programming language for generic Smart Contracts based on Python.
  • Plutus - a platform to write full applications that interact with the Cardano blockchain.