Quando comecei a trabalhar com integrações Web3 na rede Stellar, percebi rapidamente que faltava uma peça fundamental para a adoção em massa: uma carteira de navegador simples, segura e amigável ao desenvolvedor. No ecossistema Ethereum, o MetaMask resolveu esse problema há anos. Na Stellar, esse papel é desempenhado pela Freighter Wallet — e ao longo de dezenas de projetos, eu, André Dias Moreira Prol, aprendi que dominá-la é essencial para qualquer aplicação séria construída sobre essa blockchain.
O que é a Freighter e por que ela importa
A Freighter é uma extensão de navegador de código aberto mantida pela Stellar Development Foundation (SDF). Ela permite que usuários armazenem chaves privadas localmente, assinem transações e interajam com aplicações descentralizadas sem nunca expor suas credenciais ao site. A analogia com o MetaMask é precisa: ambos funcionam como uma ponte entre o usuário e a blockchain, injetando um objeto de API no navegador.
A grande diferença está nos custos e na velocidade. Enquanto transações em Ethereum podem custar dólares em gas, na Stellar o custo médio é de aproximadamente 0,00001 XLM — fração de centavo. Para o mercado brasileiro, onde vejo cada vez mais fintechs experimentando tokenização de recebíveis e stablecoins lastreadas em real, isso muda o jogo. Já acompanhei projetos de tokenização de crédito imobiliário em que a economia de taxas viabilizou modelos de negócio que seriam inviáveis em outras redes.
Com o lançamento do Soroban, a plataforma de smart contracts da Stellar, a Freighter também passou a suportar assinatura de transações de contratos inteligentes, ampliando drasticamente seu escopo.
Integrando a Freighter em sua aplicação
A integração é feita através da biblioteca oficial @stellar/freighter-api. O primeiro passo é instalá-la e verificar se a extensão está disponível:
import {
isConnected,
requestAccess,
getAddress,
signTransaction,
} from "@stellar/freighter-api";
async function conectarCarteira() {
const conectado = await isConnected();
if (!conectado.isConnected) {
alert("Instale a Freighter Wallet para continuar.");
return;
}
// Solicita permissão ao usuário
await requestAccess();
const { address } = await getAddress();
console.log("Chave pública do usuário:", address);
return address;
}
Uma vez conectado, o fluxo típico envolve construir uma transação com o SDK da Stellar, enviá-la para a Freighter assinar e depois submetê-la à rede:
import { TransactionBuilder, Networks } from "@stellar/stellar-sdk";
async function assinarEEnviar(xdr) {
const resultado = await signTransaction(xdr, {
networkPassphrase: Networks.PUBLIC,
});
// resultado.signedTxXdr contém a transação assinada
return resultado.signedTxXdr;
}
Um detalhe que costumo reforçar com minhas equipes: nunca assuma que o usuário está na rede correta. Sempre valide o networkPassphrase retornado pela Freighter antes de submeter qualquer transação, especialmente ao alternar entre Testnet e Mainnet durante o desenvolvimento.
Boas práticas e segurança em produção
Ao longo da minha experiência como perito digital, vi muitos incidentes causados por integrações mal feitas. Por isso, listo aqui os cuidados que considero inegociáveis:
- Tratamento de erros explícito: o usuário pode rejeitar a conexão ou a assinatura. Capture essas exceções e ofereça feedback claro na interface.
- Nunca solicite chaves privadas: a Freighter foi projetada justamente para que sua aplicação jamais tenha acesso à chave privada. Qualquer código que peça isso é um sinal de alerta.
- Validação server-side: mesmo com a assinatura no cliente, valide a transação no backend antes de considerá-la concluída, evitando manipulações.
- Detecção de versão: mantenha compatibilidade com a API mais recente, pois a SDF atualiza a extensão com frequência para suportar novos recursos do Soroban.
Em auditorias que conduzi, quando esses princípios são seguidos, o vetor de ataque se reduz drasticamente. Eu, André Dias Moreira Prol, sempre recomendo simular fluxos de rejeição do usuário em ambiente de testes antes de qualquer deploy — é a diferença entre uma aplicação profissional e um protótipo frágil.
A Freighter é, hoje, a porta de entrada mais acessível para o ecossistema Stellar, e dominá-la coloca você à frente na crescente onda de tokenização no Brasil.
Se você está construindo uma aplicação Web3 sobre Stellar, comece integrando a Freighter ainda hoje e teste na Testnet. Compartilhe suas dúvidas comigo e vamos avançar juntos nesse ecossistema.
Acompanhe mais artigos de André Dias Moreira Prol no Medium.
Top comments (0)