# What are Smart Contracts?

In reality, participants don't create fresh code each time they need to ask the EVM to perform a computation. Instead, programmers for applications upload programmes (reusable bits of code) into the EVM state, and users submit requests to run these bits of code with various parameters. The programmes that are uploaded to and run by the network are referred to as smart contracts.

At its most basic level, a smart contract can be compared to a type of vending machine: a script that, when invoked with specific parameters, does certain actions or computations if specific criteria are met. For instance, if the caller transfers Fiero to a particular receiver, a straightforward vendor smart contract might generate and assign ownership of a digital asset.

With the blockchain serving as its data layer, any developer may build a smart contract and publish it to the network for a fee. The smart contract can then be called by any user, again in exchange for a charge given to the network to run its code.

Developers can therefore create and implement any levels of complexity in user-facing apps and services, such as marketplaces, financial instruments, games, etc., using smart contracts.


---

# Agent Instructions: 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:

```
GET https://docs.fieres.io/fundamental-topics/what-are-smart-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
