Skip to content

GET /v1/history/balance

Reconstruct the exact balance history of a wallet for either SOL or a caller- supplied SPL token mint using a caller-supplied Helius RPC URL.

This endpoint is intentionally consumer-funded: historical balance recovery is expensive, so the request must include the caller's own Helius RPC endpoint. Venum provides the search algorithm, pagination strategy, and normalized response.

Request

http
GET /v1/history/balance?walletAddress=<pubkey>&heliusRpcUrl=<urlencoded>&assetMint=SOL
X-API-Key: YOUR_API_KEY

Query parameters

FieldTypeDescription
walletAddressstringBase58 Solana wallet address
heliusRpcUrlstringFull HTTPS Helius RPC URL including API key
assetMintstringOptional. SOL or a base58 SPL mint address. Defaults to SOL.

Example

bash
curl 'https://api.venum.dev/v1/history/balance?walletAddress=EbUNi6setNdX7a89j4i1nVF9Cnw6puSFJk7Fjrnnxfe2&heliusRpcUrl=https%3A%2F%2Fmainnet.helius-rpc.com%2F%3Fapi-key%3DYOUR_HELIUS_KEY&assetMint=SOL' \
  -H 'x-api-key: YOUR_API_KEY'

Response

200 OK

json
{
  "walletAddress": "EbUNi6setNdX7a89j4i1nVF9Cnw6puSFJk7Fjrnnxfe2",
  "assetMint": "SOL",
  "points": [
    {
      "signature": "4edti9pg4E2Ak4rqJJxKrdWaM9wRVWEoWpXUJ3DmjwxsTT4G958Z3qXv7xVeeoF48p3mozfj2M8CsxVeCDp5poTx",
      "slot": 290348419,
      "transactionIndex": 123,
      "blockTime": 1726578206,
      "assetMint": "SOL",
      "decimals": 9,
      "amountRaw": "400000000",
      "uiAmount": 0.4,
      "failed": false
    }
  ],
  "stats": {
    "rpcPosts": 61,
    "enumeratedSignatures": 5010,
    "points": 5010,
    "elapsedMs": 3302
  }
}

Point object

FieldTypeDescription
signaturestringTransaction signature
slotnumberSolana slot
transactionIndexnumberTransaction index within block
blockTimenumber | nullUnix timestamp in seconds
assetMintstringSOL or the SPL mint requested
decimalsnumberAsset decimals (9 for SOL)
amountRawstringPost-transaction balance in raw base units
uiAmountnumberPost-transaction balance in human-readable units
failedbooleanWhether the transaction failed

Stats object

FieldTypeDescription
rpcPostsnumberRaw JSON-RPC POSTs sent to the supplied Helius endpoint
enumeratedSignaturesnumberNumber of wallet-touching signatures discovered
pointsnumberNumber of balance points returned
elapsedMsnumberEnd-to-end runtime in milliseconds

Errors

StatusDescription
400Invalid request body, wallet address, or Helius URL
401Missing or invalid API key
429Rate limit exceeded
502Upstream Helius RPC error or rate limit

Auth

Requires API key.

Notes

  • This endpoint reconstructs history for the exact wallet address provided.
  • assetMint: "SOL" returns SOL balance history.
  • Any other valid base58 mint returns SPL token balance history for token accounts owned by that wallet that appear in the fetched transaction set.
  • It uses Helius getTransactionsForAddress, not a generic Solana RPC flow.
  • The requester's Helius key determines upstream rate limits and billable RPC usage.
  • rpcPosts is surfaced because historical balance reconstruction cost is a meaningful part of the query.