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.
- Instale a MetaMask: Configure sua carteira e guarde bem sua frase de recuperação.
- Mude para a Rede Sepolia: No menu de redes da MetaMask, selecione “Mostrar redes de teste” e escolha a Sepolia RPC.
- 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.
- Acesse remix.ethereum.org.
- Crie um novo arquivo chamado
MensagemSimples.sol. - 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)
- No Remix, vá na aba Solidity Compiler e clique em “Compile MensagemSimples.sol”.
- Vá na aba Deploy & Run Transactions.
- No campo “Environment”, mude para Injected Provider – MetaMask. Isso conectará o Remix à sua carteira.
- Clique em Deploy. A MetaMask abrirá pedindo confirmação. Clique em Confirmar.
- 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
- Crie uma nova Página no seu WordPress.
- Insira o shortcode
[meu_dapp]. - Publique a página.
- Ao acessar, você verá a mensagem “Carregando…”. Se sua MetaMask estiver logada na Sepolia, ele buscará o dado direto da rede Ethereum.
- 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:
- Gestão de Conteúdo Profissional: Você mantém blogs, SEO e design enquanto oferece utilidade Web3.
- 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.
- 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