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
DEADLINE ALERT 🚨🚨 4 weeks left to submit your solution utilising Stratis Smart Contracts in C# for the… https://t.co/1twipz8n4j
h J R
Stratisplatform @stratisplatform
Our first Smart Contract Hackathon with already 76 participants, developers join now for a chance to win $18000 in… https://t.co/MKArJeXnLN
h J R
Stratisplatform @stratisplatform
RT @devpost: Push the boundaries of what is possible using blockchain and build your solution for the Stratis #StratisSmartContractChalleng…
h J R
Stratisplatform @stratisplatform
#Blockchain has the power to overhaul the reams of paper & create a revolution by turning the shipping of goods int… https://t.co/Xg1SmN2LUy
h J R