> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solanatracker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Inicio rápido de Solana RPC: tu primera consulta

> Llama al RPC de Solana Tracker con curl y Node.js, configura tu clave API y gestiona errores HTTP y JSON-RPC.

Esta guía consulta el saldo SOL de una cuenta por HTTP. Necesitas un script de servidor y una clave RPC del [panel](https://www.solanatracker.io/solana-rpc).

## Llama a getBalance

Configura la clave y ejecuta:

```bash theme={null}
export SOLANA_RPC_API_KEY="YOUR_API_KEY"
curl "https://rpc-mainnet.solanatracker.io/?api_key=${SOLANA_RPC_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["So11111111111111111111111111111111111111112",{"commitment":"confirmed"}]}'
```

Sustituye la dirección por la clave pública de una wallet o cuenta. La respuesta contiene `result.context.slot` y `result.value`. El saldo está en **lamports**: 1 SOL equivale a 1.000.000.000 lamports. Este método no devuelve posiciones en tokens SPL.

## Usa Node.js

Usa Node.js 20 o posterior. Guarda el código como `balance.mjs` y ejecútalo con la misma variable de entorno. La función comprueba los errores HTTP y JSON-RPC; estos últimos también pueden aparecer con HTTP 200.

```javascript balance.mjs theme={null}
const apiKey = process.env.SOLANA_RPC_API_KEY;
if (!apiKey) throw new Error("Set SOLANA_RPC_API_KEY before starting");
const endpoint = new URL("https://rpc-mainnet.solanatracker.io/");
endpoint.searchParams.set("api_key", apiKey);

async function rpc(method, params = []) {
  const response = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
    signal: AbortSignal.timeout(15_000),
  });
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  const body = await response.json();
  if (body.error) {
    throw new Error(`RPC ${body.error.code}: ${body.error.message}`);
  }
  return body.result;
}

const balance = await rpc("getBalance", [
  "So11111111111111111111111111111111111111112",
  { commitment: "confirmed" },
]);
console.log({ slot: balance.context.slot, lamports: balance.value });
```

```bash theme={null}
node balance.mjs
```

Guarda las claves en variables de entorno del servidor. Evita incluir la URL con la clave en el código del navegador o en los registros.

## Elige el nivel de confirmación

* `processed`: el estado más reciente procesado por el nodo; puede revertirse.
* `confirmed`: estado votado por una supermayoría del stake. Este ejemplo lo usa para lecturas actuales.
* `finalized`: el nivel de confirmación más fuerte, más alejado del último estado de la cadena.

Usa el mismo nivel al comparar lecturas relacionadas. Las llamadas independientes pueden devolver distintos slots de contexto. Usa [getMultipleAccounts](/es/solana-rpc/http/getmultipleaccounts) para consultar varias cuentas en una respuesta.

## Gestiona los errores

Ante HTTP 429, reduce la concurrencia y reintenta las lecturas con espera incremental, variación aleatoria y un límite de intentos. Los errores de parámetros o autenticación requieren corregir la petición o configuración. Si el envío de una transacción agota el tiempo de espera, comprueba su firma antes de decidir cómo reintentar: reconstruirla y firmarla crea otra transacción.

## Siguientes pasos

* [Consulta cuentas de tokens](/es/solana-rpc/http/gettokenaccountsbyownerv2).
* [Suscríbete a cambios](/es/solana-rpc/subscriptions).
* [Revisa los costes y límites](/es/solana-rpc/credits-and-rate-limits).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.