Antes de construir fluxos de pagamento, você precisa conectar-se à Solana e entender como consultar dados da rede. Este guia cobre o básico: estabelecer uma conexão e usar os métodos RPC que você precisará para pagamentos usando o SDK TypeScript @solana/kit e Solana CLI. Além disso, vamos cobrir o básico de usar o Solana Explorer para verificar manualmente pagamentos, inspecionar contas e depurar problemas.
Conectar à Solana
A API RPC da Solana é a principal forma de interagir programaticamente com a rede. O seu URL RPC é efetivamente uma chave de API para a rede.
Não use RPC público para produção
Os endpoints públicos (api.mainnet-beta.solana.com, api.devnet.solana.com)
têm limite de taxa, não possuem SLA e são inadequados para fluxos de pagamento
em produção. Use um provedor RPC para garantir um
endpoint RPC privado para implementações em produção.
Para desenvolvimento e testes, você pode usar endpoints públicos com limite de taxa.
Crie um cliente RPC para interagir com a rede:
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");const rpcSubscriptions = createSolanaRpcSubscriptions("wss://api.mainnet-beta.solana.com");
Para desenvolvimento, use a devnet (https://api.devnet.solana.com) ou um
validador local como Surfpool.
Métodos RPC comuns
A API JSON-RPC da Solana expõe métodos para consultar a rede. Aqui estão os que você mais usará para fluxos de pagamento.
Obter informações da conta
Todas as contas na Solana são endereçáveis pela sua chave pública. Use o método
RPC getAccountInfo para buscar informações
sobre qualquer conta. O método getAccountInfo retorna um objeto AccountInfo,
que contém a chave pública da conta, saldo de SOL, dados e alguns outros
metadados.
O campo data é uma string codificada em base64 dos dados da conta. Você pode
codificá-la em bytes usando o método getBase64Codec do pacote @solana/kit e
depois decodificá-la para um objeto legível usando o codec esperado (se
conhecido) para os dados da conta (por exemplo, getTokenCodec para token
accounts).
const accountInfo = await rpc.getAccountInfo(address("7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"), {encoding: "base64"}).send();const dataBytes = getBase64Codec().encode(accountInfo.value.data);const parsedTokenData = getTokenCodec().decode(dataBytes);console.log(parsedTokenData);
Obter saldos de tokens
Verifique o saldo de uma token account usando o método RPC
getTokenAccountBalance:
const balance = await rpc.getTokenAccountBalance(tokenAccountAddress).send();console.log(balance.value.uiAmount); // Human-readable (e.g., 100.50)console.log(balance.value.amount); // Base units (e.g., "100500000")
Construir transações
Toda transação precisa de um blockhash recente para garantir que seja válida (e
não obsoleta). Obtenha um antes de criar uma transação de pagamento usando o
método RPC getLatestBlockhash:
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
Os blockhashes expiram após ~60 segundos. Obtenha um novo imediatamente antes de assinar e enviar.
Verificar o status da transação
Verifique se uma transação foi liquidada usando o método RPC
getSignatureStatuses:
const status = await rpc.getSignatureStatuses([signature]).send();const result = status.value[0];// result.confirmationStatus: "processed" | "confirmed" | "finalized"
Obter detalhes da transação
Obtenha os detalhes completos de uma transação confirmada usando o método RPC
getTransaction:
const transaction = await rpc.getTransaction(signature, { maxSupportedTransactionVersion: 0 }).send();
Histórico de transações
Obtenha transações recentes de um endereço usando o método RPC
getSignaturesForAddress:
const signatures = await rpc.getSignaturesForAddress(walletAddress, { limit: 10 }).send();
Para monitorização abrangente de pagamentos, consulte Aceitar pagamentos, que aborda webhooks e deteção de transações em tempo real.
Explorar dados públicos
O livro-razão público da Solana significa que cada transação, token account e mint é totalmente auditável. Os exploradores de blocos permitem verificar manualmente pagamentos, inspecionar contas e depurar problemas sem escrever código.
O que pode consultar:
- Verificar se um pagamento foi liquidado
- Inspecionar saldos de token accounts
- Depurar transações falhadas
- Consultar detalhes de mints (fornecimento, decimais, autoridade)
Exploradores comuns: Solana Explorer, SolanaFM, Solscan, Orb
Exemplos de links:
- USDC Token Mint — Fornecimento, mercados, detentores e transações de USDC
- Transferência de token USDC — Detalhes de uma transação de pagamento em USDC
- USDG Token Account — Saldo de USDG de um utilizador e histórico de transações
Is this page helpful?