# Criar uma dApp

Você pode criar seus próprios aplicativos descentralizados (dApps) para interagir com os contratos inteligentes da Decentraland e expor sua funcionalidade de maneiras mais elaboradas e amigáveis.

## O que é um dApp

Uma aplicação descentralizada, ou dApp, é aquela que roda em uma rede distribuída ponto a ponto em vez de em um servidor central.

No contexto de blockchain, um dApp usa contratos inteligentes e possivelmente uma rede P2P, em vez de um serviço Web API. Um dApp também pode expor uma interface front-end e armazenar em cache informações da blockchain temporariamente, mas sua saída é, em última instância, refletida on-chain.

Veja [este site](https://blockchainhub.net/decentralized-applications-dapps/) para uma visão mais completa sobre dApps.

## Contratos inteligentes da Decentraland

A Decentraland escreveu e mantém vários contratos inteligentes que interagem com os tokens LAND e MANA.

Os próprios tokens LAND e MANA são definidos pelo *LANDregistry* e *MANAtoken* contratos, respectivamente. A lista também inclui contratos mais específicos como a criação de um estate a partir de vários parcels ou hipoteca de parcels.

* [Contratos inteligentes da Decentraland](https://contracts.decentraland.org/addresses.json): Você pode encontrar uma lista completa de cada um dos nossos contratos e seus endereços.

Observe que cada contrato tem uma versão de produção em *mainnet* e uma versão de teste em *sepolia* e que cada um tem um endereço diferente.

Você pode ler o código completo de cada contrato, pois é informação pública na blockchain. Por exemplo, você pode encontrar o contrato pelo nome no [Etherscan](https://etherscan.io/contractsVerified) para ler seu conteúdo.

## Código boilerplate para dApp

* [Código boilerplate](https://github.com/decentraland/dapp-boilerplate): Este código Boilerplate pode ser um ótimo ponto de partida para construir seu próprio dApp.

## Bibliotecas auxiliares

Ao construir nossos próprios dApps internamente, reunimos algumas bibliotecas auxiliares que você também pode achar úteis.

* [Decentraland-eth](https://github.com/decentraland/decentraland-eth): Esta é uma biblioteca de baixo nível com funções utilitárias para trabalhar com a blockchain Ethereum.
* [Decentraland-dapps](https://github.com/decentraland/decentraland-dapps): Esta é uma biblioteca de nível mais alto com módulos comuns para dApps. Os módulos nesta biblioteca são construídos usando `Decentraland-eth`.
* [Decentraland UI](https://ui.decentraland.org/): Esta biblioteca contém uma seleção de elementos de UI reutilizáveis que estão incluídos nos projetos da Decentraland.

## dApps de exemplo

Abaixo estão links para o código completo de vários dApps que construímos em torno da Decentraland, que podem ajudá-lo a criar o seu próprio:

* [Gate](https://github.com/decentraland/gate): Este dApp básico cria um NFT de convite que foi usado quando a Decentraland estava em uma fase de beta fechada. Nos primeiros dias, jogadores na whitelist que possuíam este NFT eram os únicos capazes de entrar no metaverso.
* [Marketplace](https://github.com/decentraland/marketplace): Esta é a aplicação completa que executa a Decentraland [Marketplace](https://market.decentraland.org/). Para fazê-la rodar rápido, ela requer um banco de dados e um servidor backend conectado à rede Ethereum para criar índices com informações sobre LAND.

## Framework de testes para dApp

Antes de lançar seu dApp em produção, recomendamos testá-lo primeiro.

* [dAppeteer](https://github.com/decentraland/dappeteer): Reunimos este framework para ajudá-lo a executar testes no seu dApp.

## Contratos inteligentes da Decentraland

No link a seguir você pode encontrar uma lista de contratos inteligentes Ethereum relevantes para o ecossistema Decentraland. A lista inclui os contratos na mainnet assim como em outras redes de teste Ethereum.

[contracts.decentraland.org](https://contracts.decentraland.org/links)
