# Smart Contract Development

If you're new to web3 development, this is the place to start!

Smart contracts form the basis for all dApps built on the blockchain, and they're typically written in custom languages such as Solidity (for Ethereum).\
\
What skills will you be developing in this course? We'll walk you through the tools you need to code and deploy your first smart contract, including:&#x20;

* [**Metamask:** ](https://metamask.io/)A software cryptocurrency wallet used to interact with the Ethereum blockchain, that will allow you to pay for the gas to publish your transaction.
* [**Solidity:** ](https://docs.soliditylang.org/)An object-oriented programming language for implementing smart contracts on Ethereum.
* [**Hardhat:** ](https://hardhat.org/)An Ethereum development environment that allows you to compile Solidity contracts, test contracts on a dev network, and view Solidity stack traces.
* [**U2UScan**](https://u2uscan.xyz)[: ](https://etherscan.io/)An online blockchain explorer that allows you to view transactions, blocks, and wallet states on a public blockchain.

## Lessons

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td>What are Smart Contracts?</td><td></td><td><a href="/pages/369RTWlOcnSzb23mgUig">/pages/369RTWlOcnSzb23mgUig</a></td></tr><tr><td></td><td>What is Gas?</td><td></td><td><a href="/pages/LLi73hXG929W80XZsBUL">/pages/LLi73hXG929W80XZsBUL</a></td></tr><tr><td>Structure of a Smart Contract</td><td></td><td></td><td></td></tr><tr><td></td><td>Deploy your first Smart Contract</td><td></td><td><a href="/pages/qGe1TuxclqYN276ZNuEA">/pages/qGe1TuxclqYN276ZNuEA</a></td></tr><tr><td>Submit (or verify) source code of your contract to U2UScan</td><td></td><td></td><td><a href="/pages/KF6E1jA2ZTn7nFV01FlC">/pages/KF6E1jA2ZTn7nFV01FlC</a></td></tr><tr><td>Interact with your Smart Contract</td><td></td><td></td><td></td></tr><tr><td>Integrate a Contract to a Frontend</td><td></td><td></td><td></td></tr><tr><td>Additional Resources</td><td></td><td></td><td></td></tr></tbody></table>


---

# 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.u2u.xyz/for-developers/smart-contract-development.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.
