Jeder Solana-Explorer ist ein Frontend über einer API. Wenn du auf Solscan oder Solana Explorer nach einer Signatur suchst, ruft die Seite die JSON-RPC-Schnittstelle von Solana auf, oft über einen eigenen Indexer, und stellt das Ergebnis dar. Wer nach einer Solana Explorer API sucht, will deshalb meist eines von drei Dingen: rohe On-Chain-Daten, die sich kostenlos abrufen lassen, eine reichhaltigere indexierte API mit Labels und Historie oder Marktdaten wie Preise und Handelspaare. Dieser Ratgeber vergleicht alle drei Varianten mit Stand September 2026, mit funktionierendem Code und den Limits, die wir selbst gemessen haben.
Solana-Explorer-API-Optionen auf einen Blick
Die Kurzantwort: JSON-RPC für Rohdaten, ein Indexer für Historie und Parsing, Markt-APIs für Preise. Die Tabelle fasst die Optionen zusammen, die wir für das Live-Such-Tool von Solscanner getestet haben.
| Anbieter | Key nötig | Gut für | Limits |
|---|---|---|---|
| api.mainnet-beta.solana.com | Nein | Tests, kleine Skripte | 100 req / 10 s pro IP |
| solana-rpc.publicnode.com | Nein | Tx, Signaturen, Guthaben, Blöcke | Keine indexierten Token-Aufrufe |
| public.rpc.solanavibestation.com | Nein | Token-Accounts, Holder, Umlaufmenge | Rate Limits |
| Solscan Pro API | Ja | Labels, Transfers, Token-Daten | Lite: 49 $/Monat, 20 Mio. CU |
| Helius | Ja | Geparste Historie, DAS, Archiv | Gratis: 1 Mio. Credits, 10 req/s |
| Jupiter lite-api | Nein | Token-Preise, Metadaten | Rate Limits |
| DexScreener | Nein | DEX-Paare, Liquidität | 60–300 req/min |
Noch ein paar Ergebnisse aus unseren Tests, damit du keinen Nachmittag verschwendest. Der anonyme Zugang von Tatum erlaubte nur 5 Anfragen pro Minute, und viele Methoden waren kostenpflichtig. Ankr verlangte einen Key. Der Gratisplan von dRPC enthielt kein Solana. BlockEden gab es nur gegen Bezahlung. Die öffentlichen APIs von SolanaFM und Solana Beach lieferten während unserer Checks HTTP 502.
Die zentralen JSON-RPC-Methoden, die jeder Explorer nutzt
Vier Methoden decken den Großteil dessen ab, was eine Explorer-Seite anzeigt. Jede erwartet einen JSON-Body mit jsonrpc, id, method und params, der per POST an einen beliebigen RPC-Endpunkt geht.
- getSignaturesForAddress liefert die Transaktionssignaturen, die eine Adresse berührt haben, die neueste zuerst. Jeder Eintrag enthält
signature,slot,err(null bei Erfolg),memo,blockTimeundconfirmationStatus.limitreicht von 1 bis 1.000, Standard ist 1.000. Das ist die Verlaufsliste auf einer Wallet-Seite. - getTransaction liefert die vollständige Transaktion zu einer Signatur: Instruktionen, Accounts, Gebühr, verbrauchte Compute Units, Logs sowie Guthaben vorher und nachher. Übergib
"maxSupportedTransactionVersion": 0, sonst scheitern versionierte Transaktionen. - getBalance liefert das SOL-Guthaben eines Accounts in Lamports (1 SOL = 1.000.000.000 Lamports).
- getTokenAccountsByOwner liefert die SPL-Token-Accounts einer Wallet, gefiltert nach Mint oder nach Token-Programm (klassisches SPL Token oder Token-2022). Mit dem Encoding
jsonParsedbekommst du lesbare Guthaben.
Das sind die Bausteine der Ansichten im Wallet-Explorer und im Transaktions-Explorer. Holder-Listen, Token-Umlaufmenge und Scans über Programm-Accounts nutzen schwerere Methoden wie getTokenLargestAccounts, getSupply und getProgramAccounts, die viele öffentliche Knoten als „indexierte“ Anfragen einstufen und blockieren.
Beispiel getSignaturesForAddress: fetch und curl
Hier ein minimales Beispiel für den Browser oder Node 18+, das die letzten 25 Signaturen einer Adresse auflistet. Als Beispieladresse dient der USDC-Mint, aber jede Wallet und jedes Programm funktioniert.
const RPC = 'https://solana-rpc.publicnode.com';
const address = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
const res = await fetch(RPC, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'getSignaturesForAddress',
params: [address, { limit: 25, commitment: 'confirmed' }],
}),
});
const { result, error } = await res.json();
if (error) throw new Error(`${error.code}: ${error.message}`);
for (const s of result) {
console.log(s.signature, s.slot, s.err ? 'failed' : 'ok', s.blockTime);
}
Derselbe Aufruf im Terminal:
curl -s https://solana-rpc.publicnode.com \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"getSignaturesForAddress",
"params":["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",{"limit":5}]}'
Um eine dieser Transaktionen abzurufen, änderst du die Methode auf getTransaction und übergibst [signature, { "encoding": "jsonParsed", "maxSupportedTransactionVersion": 0 }]. blockTime ist ein Unix-Zeitstempel in Sekunden und kann bei sehr alten oder gelöschten Daten null sein. Für deutsche Datumsangaben wandelst du ihn mit new Date(blockTime * 1000).toLocaleString('de-DE') um; beachte dabei, dass die Zeit in der Zeitzone des Browsers erscheint, nicht in UTC.
Pagination mit before und until
getSignaturesForAddress blättert rückwärts in der Zeit. Übergib before mit der letzten Signatur der vorherigen Seite, um die nächste, ältere Seite zu bekommen; mit until stoppst du, sobald eine bekannte Signatur erreicht ist. Ein leeres Array heißt, dass du das Ende der Historie erreicht hast, die der Knoten vorhält.
async function allSignatures(address, max = 5000) {
const out = [];
let before;
while (out.length < max) {
const params = [address, { limit: 1000, ...(before && { before }) }];
const page = await rpc('getSignaturesForAddress', params); // dein POST-Helfer
if (!page.length) break;
out.push(...page);
before = page[page.length - 1].signature;
}
return out;
}
Für inkrementelle Synchronisierungen speicherst du die neueste Signatur, die du gesehen hast, und übergibst sie beim nächsten Mal als until. So holst du nur Neues ab und bleibst locker innerhalb der öffentlichen Rate Limits.
Die Tiefe der Historie schwankt: Nicht jeder RPC-Knoten speichert das komplette Ledger. Ein öffentlicher Knoten liefert für eine alte Wallet vielleicht nur eine kurze Historie, während ein Archiv-Anbieter Jahre zurückreicht. Wirkt die Historie einer Wallet verdächtig kurz, probier eine indexierte API, bevor du schließt, dass der Account neu ist.
Commitment-Level: processed, confirmed, finalized
Das Commitment sagt dem Knoten, wie gefestigt ein Block sein muss, bevor er antwortet. Die offizielle RPC-Dokumentation definiert drei Stufen, und finalized ist der übliche Standard.
- processed: der neueste Block des Knotens. Am schnellsten, kann aber noch zurückgerollt werden.
- confirmed: von einer Supermehrheit bestätigt, also mehr als zwei Dritteln des aktiven Stakes.
- finalized: maximaler Lockout, die stärkste Garantie.
getSignaturesForAddress akzeptiert nur confirmed oder finalized. Für Seiten im Explorer-Stil ist confirmed der gängige Kompromiss: Eine neue Signatur erscheint innerhalb weniger Slots (seit den Verkürzungen im August und September 2026 dauert ein Slot rund 250 bis 300 ms), und Rollbacks auf dieser Stufe sind sehr selten. Für alles, was Geld bewegt oder eine maßgebliche Datenbank aktualisiert, wartest du auf finalized.
Rate-Limit-Etikette bei öffentlichen Endpunkten
Öffentliche Endpunkte werden geteilt, also benimm dich wie ein höflicher Gast. Die offiziellen Endpunkte für Mainnet, Devnet und Testnet erlauben 100 Anfragen pro 10 Sekunden pro IP, 40 pro 10 Sekunden für jede einzelne Methode und 40 gleichzeitige Verbindungen, und sie sind ausdrücklich nicht für den Produktivbetrieb gedacht.
Praktische Regeln, an die wir uns im eigenen Client von Solscanner (rpc.ts) halten:
- Rotieren statt hämmern. Unser Such-Tool nutzt zwei Pools. „Leichte“ Aufrufe (Transaktionen, Signaturen, Guthaben, Blöcke, Epoche) gehen zuerst an publicnode, dann an Solana Vibe Station, dann an den offiziellen Endpunkt. „Schwere“ indexierte Aufrufe (
getTokenAccountsByOwner,getTokenLargestAccounts,getSupply,getProgramAccounts,getTokenSupply) gehen zuerst an Solana Vibe Station. Devnet und Testnet nutzen die offiziellen Endpunkte. - Rate-Limit-Fehler heißen „woanders versuchen“. Codes wie -32005, 429 und 403 oder Meldungen, die Limits oder Pläne erwähnen, schicken die Anfrage an den nächsten Endpunkt, statt abzubrechen.
- Merken, was funktioniert hat. Der letzte Endpunkt, der geantwortet hat, wird beim nächsten Mal zuerst gefragt.
- Timeouts setzen. Jede Anfrage bricht nach 14 Sekunden ab, damit ein langsamer Knoten die Seite nicht einfriert.
- Cachen und bündeln. Finalisierte Transaktionen nicht erneut abrufen; sie ändern sich nie.
Für Marktdaten rufen wir die schlüssellose lite-api.jup.ag von Jupiter für Token-Preise und Metadaten auf (in unserem Client bis zu 100 Mints pro Anfrage), CoinGecko als Fallback für den SOL-Preis und DexScreener für Handelspaare. DexScreener dokumentiert in seiner API-Referenz 60 Anfragen pro Minute für Token-Profil-Endpunkte und 300 pro Minute für Pair-Endpunkte. Unser Ratgeber zum DeFi-Explorer erklärt, was diese Pair-Zahlen bedeuten.
Ein Hinweis für Entwickler in der EU: Wenn deine App Wallet-Adressen oder IP-Adressen deiner Nutzer an externe RPC- oder Preis-APIs schickt, gehört das in deine Datenschutzerklärung. Mit einem eigenen Server als Proxy behältst du die Kontrolle darüber, welche Daten welchen Anbieter erreichen.
Solscan Pro API, Helius und andere kostenpflichtige Explorer-APIs
Bezahl-APIs lohnen sich, wenn du indexierte Daten brauchst, die du mit reinem RPC nicht günstig bekommst: gelabelte Transfers, Holder-Rankings, dekodierte DeFi-Aktivität oder Jahre an Historie in einer einzigen Anfrage.
Solscan Pro API. Solscan, seit Januar 2024 im Besitz von Etherscan, stellt seine indexierten Daten (Accounts, Transfers, Token, NFTs, Märkte) über die Pro API bereit. Es gibt eine kostenlose Stufe; der Lite-Plan kostet 49 US-Dollar im Monat mit 20 Millionen Compute Units und 1.000 Anfragen pro 60 Sekunden und schließt Multi-Endpunkte, Market/price-ohlcv, Account/metadata und Account/funded_by aus. Es gibt höhere Stufen, deren aktuelle Preise wir aber nicht verifizieren konnten, prüf die Preisseite von Solscan also selbst. API-Pläne werden nicht erstattet.
Helius. Helius, das Team hinter dem Orb-Explorer, bietet einen Gratisplan mit API-Key: zum Zeitpunkt des Schreibens 1 Million Credits pro Monat und 10 RPC-Anfragen pro Sekunde. Seine erweiterten APIs liefern geparste, menschenlesbare Transaktionen, und Orb selbst läuft auf Helius-Archivdaten und der Methode getTransactionsForAddress.
Solana Beach API. Solana Beach veröffentlicht eine Doku unter solanabeach.io/docs und ein GitHub-Repo mit Fokus auf Validatoren und Staking. In unseren Tests kam 502 zurück, prüf den Status also vorher.
Häufige Solana-API-Fehler und was sie bedeuten
Die meisten API-Fehler folgen wenigen Mustern, und der Fehler-Body verrät meist, welchem. Lies error.code und error.message, bevor du irgendetwas erneut versuchst.
HTTP 403 oder 429. Der Endpunkt blockiert deine IP oder bremst sie aus. Zieh dich zurück, wechsel zu einem anderen Endpunkt oder steig auf einen Plan mit Key um. Der offizielle Mainnet-Endpunkt gab uns von einer Rechenzentrums-IP 403 zurück, was bei geteilten Cloud-Adressen häufig ist.
Fehler -32005 oder Meldungen mit „plan“. Der Anbieter bedient diese Methode in deiner Stufe nicht. Indexierte Aufrufe wie getTokenAccountsByOwner trifft es auf Gratis-Knoten am häufigsten.
CORS-Fehler in der Browser-Konsole. Der Endpunkt funktioniert per curl, verweigert aber Anfragen von einer Webseite. Jeder schlüssellose Endpunkt in unserer Tabelle hat im September 2026 Browser-Anfragen akzeptiert. Deshalb kann eine statische Seite wie Solscanner ihr Such-Tool ohne Backend betreiben. Fügst du einen Anbieter hinzu, der einen Key braucht, ruf ihn von einem Server aus auf, damit der Key nie bei den Nutzern landet.
Ein null-Ergebnis. Bei getTransaction bedeutet null meist, dass der Knoten die Signatur nicht kennt: falsches Cluster, Commitment-Level noch nicht erreicht oder außerhalb der Historie des Knotens. Unser Client kann solche Aufrufe beim nächsten Endpunkt wiederholen, bevor er „nicht gefunden“ meldet.
Wann brauchst du einen Indexer statt RPC?
Einen Indexer brauchst du, wenn deine Frage viele Accounts oder lange Zeiträume umfasst. RPC beantwortet „Wie sieht dieser Account jetzt aus?“ und „Was hat diese Transaktion getan?“ gut. „Jeder USDC-Transfer dieser Wallet seit 2023, mit USD-Werten“ beantwortet es schlecht, weil du durch Tausende Signaturen laufen und jede einzeln parsen müsstest.
Anzeichen, dass du reinem RPC entwachsen bist:
- Du rufst
getTransactionpro Seitenaufruf Hunderte Male auf. - Du brauchst Holder-Zahlen oder -Rankings (öffentliche Knoten blockieren oft
getTokenLargestAccountsundgetProgramAccounts). - Du brauchst menschenlesbare Labels (Börsen, Programme, bekannte Wallets) oder historische USD-Preise.
- Du brauchst Historie, die älter ist als das, was dein Knoten vorhält.
Ab diesem Punkt rechnen sich Helius, Solscan Pro oder ein eigener Indexer (ein Geyser-Plugin, das eine Datenbank befüllt). Wenn du noch prototypisierst, teste zuerst gegen die Devnet-Endpunkte und lies den Ratgeber zum Programm-Explorer, um Instruktionen mit einer IDL zu dekodieren. Einen nutzerorientierten Vergleich der Explorer, die auf diesen APIs aufbauen, findest du in unserem Ranking der besten Solana-Explorer.
Von der Solscanner-RedaktionAktualisiert · Testmethodik