## How to get started Use this beginner-friendly guide to start building on Terra. :::{admonition} Learn about Terra :class: note To learn more about about Terra concepts like Luna, validators, and governance, visit the [Terra protocol overview](../learn/protocol.md). ::: Follow the steps below to get started with Terrain and build your own dApp! ### 1. Set up Terrain Terrain is a user-friendly development environment for developing smart contracts. Terrain makes it easy to create smart contract templates, deploy them to the Terra blockchain, and connect them to a frontend app. Follow the [Terrain setup tutorial](./dapp/quick-start/initial-setup.md) to get started using Terrain. ### 2. Download LocalTerra and start building LocalTerra is a scaled-down Terra blockchain that allows you to test your dApp locally. LocalTerra provides a single validator node and [10 preconfigured wallet accounts](./how-to/localterra/accounts.md). Follow the [Terrain with LocalTerra tutorial](./dapp/quick-start/using-terrain-localterra.md) to start using Terrain and create a simple counter app. ### 3. Mint an NFT Now that you are familiar with Terrain and LocalTerra, you can try minting an NFT with Terrain. The [NFT minting](./dapp/quick-start/mint-an-nft.md) tutorial walks you through the creation of an NFT minting application using the dApp scaffolding and front end provided by Terrain. :::{admonition} Terra Academy :class: tip For interactive courses on developing smart contracts using Rust and CosmWasm libraries, visit [Terra Academy](https://academy.terra.money). ::: ## Development Suite Congrats! You have the basics down! Now you can dive into the other tools in the Terra Development Suite. Visit the [tool guide](tools.md) for more info. ### Terra.js Use Terra.js to create bots, power NFT mints, and for all-purpose back end services. Follow the [Terra.js tutorial](./sdks/terra-js/getting-started.md) to get started. ### Terra.py Use Terra.py for on-chain analytics, Jupyter Notebooks, data processing, and other mathematical processes. Follow the [Terra.py](https://terra-money.github.io/terra.py/tutorial.html) tutorial to get started. ### Wallet Provider and Templates: If you have a back end for your app and want a front end to connect to Terra Station, use Wallet provider and Terra Templates. Follow the [Wallet Provider tutorial](./sdks/wallet-provider/wallet-provider-tutorial.md) to get started. ### Other Tools Terra also provides other tools for building: - [Finder](https://finder.terra.money): Terra’s multi-purpose block explorer. - [Faucet](https://faucet.terra.money): Get tokens sent to your testnet address. - [`terrad`](./how-to/terrad/install-terrad.md): the node daemon and command line interface that connects to the Terra network. ## Resources ### TerraWiki.org Written by devs, for devs, [terrawiki.org](http://terrawiki.org) is the community documentation platform for all things Terra, including community-generated tutorials, reference material, and troubleshooting guides. Start browsing, or log in and create your own article. ### Agora Developers' Forum Join the [Developers' Forum](https://agora.terra.money/c/developer/20) and talk to other devs about code, projects, and troubleshooting. ### Terra Academy Take interactive courses and learn about coding in Rust, using CosmWasm libraries and developing, testing, and deploying your own smart contracts. Visit [the Terra Academy](https://academy.terra.money) site to get started. ### Terra Discord Server If you would like to connect with the developer community and ask questions related to software development on Terra, join the [Terra Discord server](https://discord.com/invite/EuKCeGFb93). Once you've joined the server: 1. Select `Developer Role` by clicking on the Green Bug icon `🪲` under the `🪲 | dev-roles` channel. 2. Once you are subscribed, a new section with the Terra developer channels appears under `🪲 DEV`. 3. Select the relevant channel to ask your questions and receive support.