Do Zero ao dApp (com WordPress): Guia Passo a Passo para Lançar seu Primeiro Contrato Inteligente

Você já sentiu que o mundo da blockchain é um “clube exclusivo” apenas para gênios da criptografia? A verdade é que a barreira de entrada diminuiu drasticamente. Hoje, você não precisa ser um expert em sistemas distribuídos para começar a construir o futuro da internet.

Neste guia prático, vamos transformar seu site WordPress em uma dApp (Decentralized Application) funcional. Vamos escrever um contrato em Solidity, implantá-lo na rede de teste Sepolia e criar uma interface no WordPress para interagir com ele.


O Que Vamos Construir?

Para este tutorial, criaremos um “Registro de Mensagem On-Chain”. O contrato permitirá que qualquer pessoa conecte sua carteira, escreva uma mensagem e a salve permanentemente na blockchain do Ethereum.

Pré-requisitos:

  • Um site WordPress instalado.
  • Extensão MetaMask no navegador.
  • Conhecimento básico de PHP/JavaScript (opcional, mas ajuda).

Passo 1: Preparando o Ambiente e a Carteira

Antes de escrevermos código, precisamos de um lugar para “gastar” (as taxas de gás) sem usar dinheiro real.

  1. Instale a MetaMask: Configure sua carteira e guarde bem sua frase de recuperação.
  2. Mude para a Rede Sepolia: No menu de redes da MetaMask, selecione “Mostrar redes de teste” e escolha a Sepolia RPC.
  3. Obtenha Faucet ETH: Acesse um “Sepolia Faucet” (como o da Alchemy ou Infura) e solicite alguns tokens de teste gratuitos para pagar as taxas de implantação.

Passo 2: Escrevendo o Contrato em Solidity com Remix

O Remix IDE é uma ferramenta baseada no navegador que dispensa instalações complexas.

  1. Acesse remix.ethereum.org.
  2. Crie um novo arquivo chamado MensagemSimples.sol.
  3. Cole o seguinte código:

Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract RegistroMensagem {
    string public mensagem;

    event MensagemAtualizada(string novaMensagem);

    constructor() {
        mensagem = "Ola, Web3!";
    }

    function setMensagem(string memory _novaMensagem) public {
        mensagem = _novaMensagem;
        emit MensagemAtualizada(_novaMensagem);
    }

    function getMensagem() public view returns (string memory) {
        return mensagem;
    }
}

Explicando o código:

  • string public mensagem: Uma variável global que armazena nosso texto.
  • setMensagem: Uma função que altera o estado da blockchain (requer gás).
  • getMensagem: Uma função de leitura (gratuita).

Passo 3: Compilação e Implantação (Deploy)

  1. No Remix, vá na aba Solidity Compiler e clique em “Compile MensagemSimples.sol”.
  2. Vá na aba Deploy & Run Transactions.
  3. No campo “Environment”, mude para Injected Provider – MetaMask. Isso conectará o Remix à sua carteira.
  4. Clique em Deploy. A MetaMask abrirá pedindo confirmação. Clique em Confirmar.
  5. Importante: Após o deploy, copie o Endereço do Contrato (Contract Address) e o ABI (JSON que descreve as funções do contrato). Você precisará deles no WordPress.

Passo 4: Conectando o WordPress à Blockchain

Existem várias formas de fazer isso, mas para manter a performance e o controle, usaremos a biblioteca Ethers.js via um Shortcode customizado.

4.1 Adicionando a Biblioteca Ethers.js

No arquivo functions.php do seu tema (ou usando um plugin de Code Snippets), adicione:

PHP

function enqueue_ethers_js() {
    wp_enqueue_script('ethers-cdn', 'https://cdn.ethers.io/lib/ethers-5.7.umd.min.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_ethers_js');

4.2 Criando o Shortcode da dApp

Ainda no functions.php, vamos criar o HTML e a lógica básica:

PHP

function dApp_contador_shortcode() {
    return '
    <div id="dapp-container" style="padding: 20px; border: 1px solid #ccc; border-radius: 10px;">
        <h3>Meu Registro Web3</h3>
        <p>Mensagem Atual: <strong id="mensagem-atual">Carregando...</strong></p>
        <input type="text" id="nova-mensagem" placeholder="Digite sua mensagem">
        <button id="btn-atualizar" onclick="atualizarMensagem()">Atualizar na Blockchain</button>
        <div id="status"></div>
    </div>

    <script>
    const contractAddress = "SEU_ENDERECO_DO_CONTRATO_AQUI";
    const abi = [ /* COLE SEU ABI AQUI */ ];

    async function carregarMensagem() {
        const provider = new ethers.providers.Web3Provider(window.ethereum);
        const contract = new ethers.Contract(contractAddress, abi, provider);
        const msg = await contract.getMensagem();
        document.getElementById("mensagem-atual").innerText = msg;
    }

    async function atualizarMensagem() {
        const status = document.getElementById("status");
        try {
            const provider = new ethers.providers.Web3Provider(window.ethereum);
            await provider.send("eth_requestAccounts", []);
            const signer = provider.getSigner();
            const contract = new ethers.Contract(contractAddress, abi, signer);
            
            const novaMsg = document.getElementById("nova-mensagem").value;
            status.innerText = "Aguardando confirmação na carteira...";
            
            const tx = await contract.setMensagem(novaMsg);
            status.innerText = "Processando transação...";
            await tx.wait();
            
            status.innerText = "Sucesso! Mensagem atualizada.";
            carregarMensagem();
        } catch (error) {
            status.innerText = "Erro: " + error.message;
        }
    }

    window.addEventListener("load", carregarMensagem);
    </script>
    ';
}
add_shortcode('meu_dapp', 'dApp_contador_shortcode');

Passo 5: Publicando e Testando

  1. Crie uma nova Página no seu WordPress.
  2. Insira o shortcode [meu_dapp].
  3. Publique a página.
  4. Ao acessar, você verá a mensagem “Carregando…”. Se sua MetaMask estiver logada na Sepolia, ele buscará o dado direto da rede Ethereum.
  5. Tente escrever algo e clicar em “Atualizar”. A MetaMask aparecerá para você assinar a transação.

Por Que Usar WordPress para dApps?

O WordPress detém cerca de 43% da web. Integrar blockchain a ele não é apenas uma tendência, mas uma evolução lógica. Ao usar o WordPress como front-end:

  1. Gestão de Conteúdo Profissional: Você mantém blogs, SEO e design enquanto oferece utilidade Web3.
  2. Facilidade de Escala: Você pode restringir o acesso a partes do seu site apenas para quem possui um NFT (Token Gating) usando plugins como o GamiPress ou Unlock Protocol.
  3. Comunidade: A integração de carteiras permite que você crie sistemas de recompensa sem depender de bancos de dados centrais vulneráveis.

Melhores Práticas e Segurança

Ao lidar com contratos inteligentes no WordPress, lembre-se:

  • Nunca exponha chaves privadas: Toda interação de escrita deve ser feita pelo lado do cliente (navegador do usuário) através da MetaMask.
  • Valide Entradas: Mesmo na blockchain, sanitize o que o usuário digita para evitar problemas de exibição no seu site (XSS).
  • Redes de Teste: Sempre valide tudo na Sepolia ou Goerli antes de gastar Ethereum real na Mainnet.

Conclusão

Lançar um contrato inteligente e integrá-lo ao WordPress é o primeiro passo para se tornar um desenvolvedor Full Stack Web3. O que começamos aqui como um simples registro de mensagens pode evoluir para um sistema de governança, um marketplace de NFTs ou uma plataforma de pagamentos descentralizada.

A Web3 não veio para substituir o WordPress, mas para dar a ele superpoderes de propriedade e transparência.

Publicar comentário