> For the complete documentation index, see [llms.txt](https://zenithchain-1.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zenithchain-1.gitbook.io/docs/introduction-to-smart-contract.md).

# Introduction To Smart Contract

### What is a Smart Contract?

A "smart contract" is simply a program that runs on the Zenith Chain. It's a collection of code (its functions) and data (its state) that resides at a specific address on the Zenith Chian.

Smart contracts are a type of Zenith account. This means they have a balance and they can send transactions over the network. However they're not controlled by a user, instead they are deployed to the network and run as programmed. User accounts can then interact with a smart contract by submitting transactions that execute a function defined on the smart contract. Smart contracts can define rules, like a regular contract, and automatically enforce them via the code.

### A Digital Vending Machine

Perhaps the best metaphor for a smart contract is a vending machine, as described by Nick Szabo. With the right inputs, a certain output is guaranteed.

To get a snack from a vending machine:\
money + snack selection = snack dispensed

This logic is programmed into the vending machine.

A smart contract, like a vending machine, has logic programmed into it.

Like how a vending machine removes the need for a vendor employee, smart contracts can replace intermediaries in many industries.

### Permissionless

Anyone can write a smart contract and deploy it to the network. You just need to learn how to code in a smart contract language, and have enough ZC to deploy your contract. Deploying a smart contract is technically a transaction, so you need to pay your Gas in the same way that you need to pay gas for a simple ZC transfer. Gas costs for contract deployment are far higher, however.

Zenith Chian has developer-friendly languages for writing smart contracts:

* Solidity
* Vyper

However, they must be compiled before they can be deployed so that Zenith's virtual machine can interpret and store the contract.

### Composability

Smart contracts are public on Zenith Chian and can be thought of as open APIs. That means you can call other smart contracts in your own smart contract to greatly extend what's possible. Contracts can even deploy other contracts.

### Limitations

Smart contracts alone cannot get information about "real-world" events because they can't send HTTP requests. This is by design. Relying on external information could jeopardise consensus, which is important for security and decentralization.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://zenithchain-1.gitbook.io/docs/introduction-to-smart-contract.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
