> For the complete documentation index, see [llms.txt](https://docs.nagara.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nagara.network/learn-solidity.md).

# Learn Solidity

New to smart contracts? This page is for you. Nagara runs the same EVM as Ethereum, so **everything you learn from Ethereum resources applies to Nagara unchanged** — the only difference is which network you deploy to.

{% hint style="success" %}
Want to see a contract go live first? Follow [Deploy your first contract](/deploy-your-first-contract.md): a step-by-step walkthrough with screenshots, using only your browser.
{% endhint %}

## A suggested path

Work through these roughly in order. You do not need to finish one before starting the next.

{% stepper %}
{% step %}

### Understand the basics

* [ethereum.org — Developer docs](https://ethereum.org/developers/docs/) — what accounts, transactions, gas and smart contracts are. Read the "Foundational topics" section first.
  {% endstep %}

{% step %}

### Learn by playing

* [CryptoZombies](https://cryptozombies.io/) — a free, interactive game that teaches Solidity from zero. The gentlest starting point if you have never written a contract.
  {% endstep %}

{% step %}

### Take a structured course

* [Cyfrin Updraft](https://updraft.cyfrin.io/) — free video courses, from Solidity fundamentals to Foundry and security.
* [Speedrun Ethereum](https://speedrunethereum.com/) — hands-on challenges where you build and ship small dapps.
  {% endstep %}

{% step %}

### Keep references open while you code

* [Solidity by Example](https://solidity-by-example.org/) — short, copyable examples of every language feature and common pattern.
* [Solidity documentation](https://docs.soliditylang.org/en/latest/) — the official language reference.
* [OpenZeppelin Contracts](https://docs.openzeppelin.com/contracts) — audited building blocks for tokens, access control and upgradeable contracts. Reuse these rather than writing your own.
* [OpenZeppelin Wizard](https://wizard.openzeppelin.com/) — generate an ERC-20, ERC-721 or ERC-1155 contract by ticking boxes.
  {% endstep %}

{% step %}

### Learn to think about security

* [Ethernaut](https://ethernaut.openzeppelin.com/) — a series of hacking puzzles. Breaking contracts is the fastest way to learn how to write safe ones.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
Most tutorials deploy to an Ethereum testnet such as Sepolia. To follow them on Nagara, use Nagara Testnet in MetaMask and get tokens from the [Nagara faucet](/get-testnet-tokens.md) instead — the code itself does not change. Before using anything advanced, check [Differences from Ethereum](/differences-from-ethereum.md).
{% endhint %}


---

# 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://docs.nagara.network/learn-solidity.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.
