Exibindo Dados On-Chain
Renderize saldos, tokens, NFTs e estado de programa em React.
Busque em todas as páginas da documentação
Renderize saldos, tokens, NFTs e estado de programa em React.
import { createSolanaRpc, address, lamports } from "@solana/kit";
import { fetchMaybeTokenAccount } from "@solana-program/token";Quando usar:
"use client";
import { useEffect, useState } from "react";
import { createSolanaRpc, address } from "@solana/kit";
export function SolBalance({ owner }: { owner: string }) {
const [sol, setSol] = useState<number | null>(null);
useEffect(() => {
const rpc = createSolanaRpc(process.env.NEXT_PUBLIC_RPC_URL!);
rpc.getBalance(address(owner)).send().then(({ value }) => setSol(Number(value) / 1e9));
}, [owner]);
if (sol === null) return <span>…</span>;
return <span>{sol.toFixed(4)} SOL</span>;
}O que isso demonstra:
getBalance.getAsset em providers RPC compatíveis.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Render inicial no servidor | SEO | Dados privados só de carteira |
| GraphQL de indexador | Histórico rico | Chip simples de saldo |
Providers em client layout.tsx; pages misturam server + client components.
Env de servidor só para keypairs; NEXT_PUBLIC_ para URLs de RPC.
Todos os exemplos usam @solana/kit, não web3.js v1.
Assinatura apenas em client components.
Revalide leituras on-chain com cuidado - a chain é fonte da verdade.
Endpoints HTTPS retornando JSON de Solana Actions.
App React Native separado com MWA.
Surfpool para integração; mock RPC em testes unitários.
Arquivos env e program IDs separados.
Decodifique logs de simulação para mensagens voltadas ao usuário.
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026