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.

Features
Resources
Features
icon

Especially suitable for the development of enterprise blockchains: Smart Contracts in C# are the first .NET framework compatible smart contracts that can be coded and compiled natively.

Run on sidechains to maximize scalability and security: Smart
Contracts in C# avoid the “bloat” that occurs when running any significant number of smart contracts on a single blockchain. The main blockchain is also shielded from the impact of any adverse effects caused by a smart contract.

Fully deterministic: Smart Contracts in C# are fully verified during deployment before they run on the blockchain. For example, usage of .NET libraries containing non-deterministic function calls is prevented.

Powered by STRAT: A smart contract uses gas when it is running, and on the Stratis platform, gas is supplied by sidechain tokens, which are pegged to the STRAT.

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…}
Step 1
Smart contracts
Smart contracts

Developer writes C# source code in Visual Studio

Next
Step 2
Valid
Valid

Contract is validated locally and .Net bytecode (DLL) output

Next
Step 3
Bytecode
Bytecode

Bytecode is wrapped inside a transaction

Next
Step 4
Transaction
Transaction

Transaction is included in new block

Next
Step 5
Unpacked
Unpacked

When executing a new block, contract code is unpacked from transaction

Next
Step 6
Send
Send

Anyone can send transactions to this address and call methods

Next

Do you believe in the endless opportunities of applied blockchain?

Allow us to help you build your next venture

Latest Tweets
Stratisplatform @stratisplatform
Download the Stratis app. Available via the App Store and Play Store: https://t.co/y7qTek7MWz #blockchain #app… https://t.co/RsZFQUCf3n
h J R
Stratisplatform @stratisplatform
The Stratis SRC-20 Token Contract is now deployable on the Stratis Platform and executed on the Microsoft .NET CLR… https://t.co/6YeiN8M8RO
h J R
Stratisplatform @stratisplatform
Sidechain Masternode dashboard release with documentation. Allowing masternode operators to view their node health… https://t.co/0yEX0US0jq
h J R