Smart Contracts

Stratis Smart Contracts

Create performant, secure, and auditable smart contracts in a development environment which is comfortable and familiar for C# .NET developers.

Stratis’ Smart Contracts in C# are for companies and individuals interested in the development of a secure, immutable, (legally-binding) agreement represented transparently in code. This agreement can relate to the payment of STRAT but can also be about one or more other assets.

You can invoke a smart contract when a transaction is added to a blockchain and, according to how the smart contract is programmed, it will act on assets it is in control of including STRAT. For example, if certain criteria are met, a smart contract might redistribute the STRAT which it holds. So, smart contracts enable digitally-enforced commitments between blockchain participants, which breaks the reliance on third parties.

Web-based front-ends (DApps) can be created to sit on top of a smart contract. A DApp is decentralized because of the properties of the smart contract; a copy of the DApp’s smart contract is stored on each node in the blockchain.

The Stratis Academy offers an in-depth exploration of what a smart contract is and how smart contracts are used.

Lifecycle of Smart Contracts

  1. Developer writes C# source code in Visual Studio
  2. Contract is validated locally and .NET bytecode (DLL) output
  3. Bytecode is wrapped inside a transaction e.g. Transaction {Bytecode: A6F4CB467…}
  4. Transaction is included in new block
  5. When executing a new block, contract code is unpacked from transaction, validated and stored permanently on all nodes at certain address
  6. Now anyone can send transactions to this address and call methods on this contract e.g. Transaction {To: 1nTKH…}