# Introduction to Smart Contract
First of all, the smart contract we are talking about is in the context of blockchain and cryptocurrencies.
The smart contract is:
- Pre-written code logic (we use gula to write, and also support the syntax of other languages)
- Store and call on a distributed storage platform (blockchain)
- Can be executed by nodes running on the same blockchain
- The result of the operation will form a transaction for storage and recording on the blockchain
To put it simply, a smart contract is an executable code (it can be given various functions by the contract writer), it is compiled and then stored on the blockchain; then according to the contract address, the blockchain The node can call it to achieve related functions.
The smart contract has the following characteristics:
- A smart contract is an executable code that is recorded on the blockchain and cannot be modified
- When a transaction calling the specified code is issued, each node (and possibly some nodes) on the blockchain will run this code and perform the necessary verification
- The current smart contract cannot be automatically executed, but it can be triggered by the external program
- The input data required for smart contract execution should depend on the blockchain data, so as to ensure the consistency of the verification results
The smart contract supported by the XWC chain uses Lua's virtual machine as the bottom layer, which has high execution efficiency. At the same time, it is also a Turing complete language that can support any business logic and greatly expand the functionality of the blockchain. At the same time, we also provide translation tools in other languages, developers can use Java/Kotlin and C# to develop smart contracts.