# Introduction

{% hint style="info" %}
Yagi Automation is a network of keepers on StarkNet L2 that automate protocol actions
{% endhint %}

There are three participants in our system:

* **Task authors** create automations. These are smart contracts that need to be invoked on a regular basis,
* **Automation keepers** execute automations,
* **End-users** use different automations to take advantage of emerging yield opportunities.

Yagi is a protocol that connects task authors and automation keepers and a community that connects task authors with end-users.

## Why Automation?

Some types of smart contracts require regular upkeep. For example, vaults need to harvest rewards, trading strategies require rebalancing of positions and players playing on-chain games seek to automate their farming.

StarkNet (like other built-in networks) does not support automated smart contract invocation. Smart contracts can only be invoked from "outside" the network whether by an external user or a computer program that mimics a user interaction.

But it's problematic for smart contract teams to maintain their own automation infrastructure:

* **Opportunity cost**. Developing a bot distracts developer time from the core product,
* **No redundancy**. A single bot is a single point of failure,
* **Centralization**. A protocol relying on the team's own proprietary execution infrastructure could be tactically exploited (e.g., by withholding or front-running executions at certain points in time).

Yagi is a network of keepers that will execute smart contracts as required by their authors. To create an automated smart contract, a task author will create a Yagi task and define **when** it should be called and **how** it should be called by the keepers. After deploying the task, keepers will begin automated execution.

{% hint style="info" %}
StarkNet transactions are currently free so Yagi Automation is free to use.
{% endhint %}

## Benefits of Yagi Automation

There are several benefits to using Yagi Automation:

* No need to deploy off-chain code, creating a task only requires building 2 smart contract functions,
* Increased reliability by working with a network of keepers,
* On-chain transparency of execution requirements and parameters builds trust from community.

## Why StarkNet?

In short, we believe StarkNet is the best available architecture for enabling mass-automation on-chain. Due to low transaction cost, automations on StarkNet will be cheaper than anywhere else and also will be able to execute more complex tasks. As a result, we expect Yagi automations will enable entirely new use cases for DeFi, NFTs, gaming and other verticals.

You can read our more detailed perspective about this:

{% embed url="<https://medium.com/yagi-fi/provable-vs-composable-computation-or-why-cairo-will-supersede-solidity-6b00e69bfc9e>" %}

### Guides: Jump right in

Follow our handy guides to get started on the basics as quickly as possible:

{% content-ref url="/pages/srP6qPuRdHQfqI42QU0A" %}
[How it Works](/developers/automation/how-it-works.md)
{% endcontent-ref %}

{% content-ref url="/pages/OGDLgB4UG6c74VR5T6mh" %}
[How to Create a Task](/developers/automation/how-to-create-a-task.md)
{% endcontent-ref %}

{% content-ref url="/pages/2009akHOU8pUiEfGhVCt" %}
[Security](/developers/automation/security.md)
{% endcontent-ref %}

### Fundamentals: Dive a little deeper

Learn the fundamentals of Yagi to get a deeper understanding of our main features:

{% content-ref url="/pages/TyD28oNzyzrqvynHF6lA" %}
[Tasks](/developers/automation/tasks.md)
{% endcontent-ref %}

{% content-ref url="/pages/p9lYTkplf8DQBmcnFCor" %}
[Keepers](/developers/automation/keepers.md)
{% endcontent-ref %}


---

# 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.yagi.fi/developers/automation/introduction.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.
