Solana API: SOL- und SPL-Token-Zahlungen über REST
Erstellen Sie Solana-Adressen und bewegen Sie SOL und SPL-Token mit schlichten REST-Aufrufen. Kein web3.js und kein SDK zu installieren.
Eine Solana API sollte Ihrem Backend kein JavaScript-SDK aufzwingen. Chaingateway umwickelt Solana in schlichtes REST: Sie erstellen Adressen und senden SPL-Token mit zwei POST-Requests, und ein GET gibt die aktuelle Blockhöhe zurück. Die Authentifizierung ist ein Bearer-Token im Authorization-Header. Antworten sind JSON. Ihr PHP-, Go- oder Java-Backend spricht mit Solana genauso wie mit jedem anderen HTTP-Dienst.
Der Test läuft 7 Tage und verlangt kein KYC. API-Key erstellen und Ihren ersten Request stellen, bevor der nächste Block landet.
Eine Fähigkeit pro Endpoint
RPC-Anbieter strukturieren ihre Solana-Dokumentation nach Fähigkeit: Node-Zugriff hier, Streaming dort, Webhooks an dritter Stelle. Chaingateways Solana-Oberfläche ist absichtlich kleiner, weil es eine Payments-API statt eines General-Purpose-Node-Dienstes ist. Auf dieselbe Weise gemappt sieht das so aus:
| Fähigkeit | Endpoint | Status |
|---|---|---|
| Adressen erstellen | POST /api/v2/solana/addresses | Live |
| SOL senden | POST /api/v2/solana/transactions | Live |
| SPL-Token senden | POST /api/v2/solana/transactions/SPL | Live |
| Guthaben prüfen | GET /api/v2/solana/balances/{address} | Live |
| Chain-State lesen | GET /api/v2/solana/blocks/number | Live |
| Deposit-Webhooks | — | Noch nicht auf Solana; Polling-Muster unten |
Jeder Endpoint nimmt denselben Bearer-Token, und der X-Network: testnet-Header schaltet jeden Request auf die Testumgebung. Request- und Response-Schemas stehen in der API-Referenz.
Einfache Transaktionen
Senden Sie SOL und SPL-Token mit einem schlichten JSON-Payload. Solana produziert Blöcke deutlich unter einer Sekunde, sodass eine Auszahlung meist bestätigt, während Ihr Nutzer noch auf den Ladeindikator schaut.
Sichere Adressverwaltung
Solana-Adressen sind base58-kodierte 32-Byte-Public-Keys, und die API validiert sie, bevor eine Transaktion gebaut wird. Die Architektur ist non-custodial: Die Keys zu Ihren Geldern gehören Ihnen.
Dekodierte Abfragen
Transaktionsdaten kommen als strukturiertes JSON statt base64-kodierter Blobs zurück. Token-Transfers sind lesbar, ohne rohe Instruktionsdaten anzufassen.
Webhooks (IPN)
Ehrlichkeit zuerst: Webhooks sind für Solana noch nicht verfügbar. Verfolgen Sie Deposits stattdessen per Polling; GET /api/v2/solana/blocks/number sagt Ihnen, wann neue Blöcke ankommen, sodass Sie Ihre Checks takten können, und GET /api/v2/solana/balances/{address} beantwortet, ob etwas eingegangen ist. Auf Ethereum, BSC, Polygon, Arbitrum, TRON und Bitcoin sind Deposit-Webhooks schon heute live.
Solana über REST, ohne web3.js
Der offizielle Weg zu Solana ist JSON-RPC, dokumentiert auf solana.com/docs/rpc. Es legt das Node-Protokoll offen: Methoden wie getLatestBlockhash und sendTransaction, plus eine Client-Bibliothek, um sie nutzbar zu machen. Um so ein SPL-Token zu senden, holt Ihr Code sich einen aktuellen Blockhash, bevor er abläuft, löst das Associated Token Account des Empfängers auf (und erstellt es, wenn es noch nicht existiert), baut, signiert und serialisiert dann die Transaktion. In JavaScript erledigen web3.js und das spl-token-Paket das für Sie. In jeder anderen Sprache sind Sie weitgehend auf sich gestellt.
Chaingateway ersetzt das durch einen HTTP-Aufruf. Die API löst Token-Accounts auf und konstruiert die Transaktion server-seitig, und Ihr Backend importiert nie ein Solana-SDK. Wollen Sie rohen Chain-Zugriff für Analysen oder eigene Programme, ist ein RPC-Anbieter das richtige Tool. Für Zahlungen ist REST kürzer, und kürzerer Code hat weniger Stellen zum Brechen.
Mints, Token-Accounts und ATAs: warum Solana-Transfers anders sind
Kommen Sie von Ethereum, BSC oder Polygon, ist der Teil von Solana, der Sie am ehesten beißt, nicht Geschwindigkeit oder Gebühren. Es ist das Account-Modell.
Das EVM-Modell
Ein Token-Guthaben ist ein Eintrag im eigenen Speicher des Token-Contracts. Ihre Adresse „hält“ USDT, weil die interne Tabelle des Contracts das sagt. Token an eine brandneue Wallet zu senden fügt nur eine Zeile zu dieser Tabelle hinzu; der Empfänger muss auf keine besondere Weise on-chain existieren.
Das Solana-Modell
Solana teilt dieselbe Idee in separate Accounts auf. Ein Token wird durch sein Mint-Account definiert, das Supply und Dezimalstellen speichert. Guthaben leben in Token-Accounts, eines pro Kombination aus Wallet und Mint, und die Standard-Variante ist das Associated Token Account (ATA): seine Adresse wird deterministisch aus der Wallet-Adresse und der Mint-Adresse abgeleitet. Ihre Wallet enthält kein USDC. Sie besitzt ein separates Account, das USDC enthält.
Zwei Konsequenzen für Zahlungen
- Ein ATA muss existieren, bevor Token darin landen können. Hat Ihr Empfänger das Token nie gehalten, muss das Account on-chain erstellt werden, und die Erstellung braucht einen Deposit, um Rent-Exempt zu sein: 0,00203928 SOL, Stand Mitte 2026, laut offizieller Solana-Dokumentation. In der Praxis erstellt und finanziert die Transaktion des Senders das fehlende Account.
- Transfers bewegen Wert zwischen Token-Accounts, nicht zwischen Wallet-Adressen. Code, der naiv die Wallet-Adresse anvisiert, scheitert, weshalb die SPL-Transfer-Instruktion beide Token-Accounts plus das Mint und dessen Dezimalstellen zur Verifikation braucht.
Genau diese Buchhaltung erledigt Chaingateway server-seitig. Sie übergeben Wallet-Adressen und ein Token-Mint; die API leitet die Token-Accounts ab und baut einen gültigen Transfer. Ihr Backend erfährt nie, was eine Program-Derived-Address ist, was der Sinn ist.
REST vs. web3.js: derselbe Transfer, zweimal
So sieht das Senden von 10 USDC mit web3.js und dem spl-token-Paket aus:
import { Connection, PublicKey } from "@solana/web3.js";
import {
getOrCreateAssociatedTokenAccount,
transferChecked,
} from "@solana/spl-token";
const connection = new Connection("https://your-rpc-endpoint");
const usdc = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
const senderAta = await getOrCreateAssociatedTokenAccount(
connection, payer, usdc, payer.publicKey
);
const recipientAta = await getOrCreateAssociatedTokenAccount(
connection, payer, usdc, new PublicKey(recipient)
);
await transferChecked(
connection, payer,
senderAta.address, usdc, recipientAta.address,
payer, 10_000_000, 6 // 10 USDC bei 6 Dezimalstellen
);Ein Aufruf statt der ATA-Buchhaltung oben – Konto erstellen und es auf Devnet ausprobieren.
Quickstart: drei Requests zu Ihrem ersten SPL-Transfer
Eine Adresse erstellen:
curl -X POST https://app.chaingateway.io/api/v2/solana/addresses \
-H "Authorization: Bearer $CHAINGATEWAY_API_KEY"curl https://app.chaingateway.io/api/v2/solana/blocks/number \
-H "Authorization: Bearer $CHAINGATEWAY_API_KEY"curl -X POST https://app.chaingateway.io/api/v2/solana/transactions/SPL \
-H "Authorization: Bearer $CHAINGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contractaddress": "TokenMintAddress",
"from": "YourSenderAddress",
"to": "RecipientAddress",
"amount": 10,
"privatekey": "YourSenderPrivateKey"
}'Solana in Zahlen
Die Zahlen unten sind gegen die offizielle Solana-Dokumentation Stand Anfang Juli 2026 geprüft.
Ein Slot, das Fenster, in dem ein Validator einen Block produzieren darf, ist auf etwa 400 Millisekunden konfiguriert und schwankt in der Praxis zwischen etwa 400 und 600 Millisekunden. Dieser Takt ist der Grund, warum Deposit-Polling alle ein bis zwei Sekunden nie weit hinter der Chain zurückfällt.
Die Basis-Transaktionsgebühr beträgt 5.000 Lamports pro Signatur, das sind 0,000005 SOL. Die Hälfte wird verbrannt, die Hälfte geht an den Block-Producer. Obendrauf sitzt eine optionale Priority Fee, bepreist in Mikro-Lamports pro Compute-Unit; sie ist standardmäßig null und kauft Scheduling-Vorrang, wenn das Netzwerk beschäftigt ist. Für einen Zahlungs-Workload ist die praktische Lesart einfach: Gebühren sind so klein, dass sie selbst bei einer Ein-Dollar-Transaktion in Ihrer Marge verschwinden.
Bestätigung und Finalität sind auf Solana unterschiedliche Dinge, und die Unterscheidung zählt dafür, wie Sie Deposits gutschreiben. Eine Transaktion ist typisch innerhalb von ein bis zwei Sekunden bestätigt, was bedeutet, dass eine Supermehrheit der Validatoren für ihren Block gestimmt hat. Volle Finalität dauert Stand Mitte 2026 etwa 12,8 Sekunden. Das für Ende 2026 geplante Alpenglow-Consensus-Upgrade zielt darauf, Finalität auf etwa 100 bis 150 Millisekunden zu verdichten; behandeln Sie das als angekündigten Plan statt als Live-Eigenschaft, bis es ausgeliefert ist. Eine sinnvolle Policy heute: kleine Zahlungen bei Bestätigung gutschreiben, große die zusätzlichen Sekunden bis zur Finalität halten.
Deposits ohne Webhooks verfolgen
Solana hat noch keinen Deposit-Webhook-Endpoint auf Chaingateways API. Erkennung pollt stattdessen zwei Aufrufe: GET /api/v2/solana/blocks/number, um neue Blöcke zu verfolgen, und GET /api/v2/solana/balances/{address}, um auf eingehende Gelder zu prüfen. Bei Sub-Sekunden-Slots zeigt selbst ein Zwei-Sekunden-Poll-Intervall eine Zahlung innerhalb weniger Sekunden als eingegangen.
Eine disziplinierte Polling-Schleife ist günstig zu betreiben. Speichern Sie die zuletzt verarbeitete Blockhöhe, und jedes Mal, wenn sie sich ändert, prüfen Sie Ihre Deposit-Adressen – oder GET /api/v2/solana/balances/{address}/tokens/{mint} für ein bestimmtes SPL-Token – und gleichen Sie Funde gegen offene Bestellungen ab.
Die Latenzkosten sind kleiner, als es klingt. Solana produziert Blöcke unter einer Sekunde, sodass selbst ein Zwei-Sekunden-Poll-Intervall bedeutet, dass ein Kunde „bezahlt“ innerhalb weniger Sekunden nach dem Senden sieht. Die gesamte Schleife sind ein paar Dutzend Zeilen in jeder Sprache und läuft als Cron-Job oder Background-Worker. Erweitern Sie denselben Flow später auf eine Chain mit Webhooks, bleibt die Buchhaltung identisch; nur der Trigger wechselt von Pull zu Push.
USDC auf Solana annehmen: ein durchgespieltes Beispiel
USDC ist die Zahlungsschiene, die Solana zu einem Abwicklungsnetzwerk gemacht hat, sie eignet sich also für einen konkreten Walkthrough. Die Mint-Adresse auf Mainnet ist EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, ausgegeben von Circle; alles andere, das behauptet USDC zu sein, ist es nicht.
Die Empfangsseite: Checkt ein Kunde aus, erstellen Sie eine frische Adresse mit POST /api/v2/solana/addresses und speichern Sie sie zur Bestellung. Zeigen Sie die Adresse und den Betrag, und lassen Sie den Kunden aus jeder Wallet oder Börse zahlen. Ihre Polling-Schleife aus dem vorigen Abschnitt greift den eingehenden Transfer ab, gleicht die empfangende Adresse mit der Bestellung ab, und kippt sie auf bezahlt. Bei 400-Millisekunden-Slots liegt die Lücke zwischen „Kunde hat gesendet gedrückt“ und „Ihre Datenbank sagt bezahlt“ bei wenigen Sekunden, das meiste davon Ihr eigenes Poll-Intervall.
Erfassen Sie die Transaktions-Signatur jedes gutgeschriebenen Deposits mit einer Unique-Constraint. Polling-Schleifen werden neu gestartet, mit Backfill versehen und erneut ausgeführt, und Idempotenz auf Datenbankebene bedeutet, dass nichts davon eine Bestellung doppelt gutschreiben kann.
Die zahlende Seite spiegelt das. Eine Auszahlung ist ein POST /api/v2/solana/transactions/SPL-Aufruf mit dem USDC-Mint als contractaddress und einem lesbaren "amount": 10; die API wendet USDCs sechs Dezimalstellen für Sie an. Halten Sie ein moderates SOL-Guthaben auf der sendenden Adresse: 0,000005 SOL pro Signatur für Gebühren, plus 0,00203928 SOL, wann immer das Token-Account eines Empfängers erstellt werden muss. Beide Beträge sind klein genug, dass ein einmal aufgefüllter Puffer Monate an Auszahlungen deckt.
Was Sie gegenüber Kartennetzwerken gewinnen, ist Abwicklung in Sekunden ohne Chargeback-Mechanismus, und was Sie aufgeben, ist die Fähigkeit, einen Fehler rückgängig zu machen. Die Adressvalidierung, die die API vor dem Bauen einer Transaktion durchführt, ist hier Ihr Freund, aber Ihr eigener Bestätigungsbildschirm zählt genauso.
Jedes Token auf Solana senden und empfangen, auch Ihr eigenes
SPL ist Solanas Token-Standard, und die API behandelt jedes SPL-Mint gleich. USDC und USDT funktionieren sofort, mit automatisch angewendeten Dezimalstellen. Haben Sie Ihr eigenes Token gemintet, übergeben Sie seine Mint-Adresse an denselben Endpoint, und es verhält sich wie die großen. Weil Chaingateway eine Endpoint-Struktur über Chains hinweg nutzt, portiert der obige Solana-Code auf Ethereum, BSC oder Polygon, indem Sie das Chain-Segment und das Token-Suffix in der URL tauschen: /solana/transactions/SPL wird zu /ethereum/transactions/erc20.
Warum Entwickler Solana wählen
Solana führt Transaktionen parallel statt strikt nacheinander aus, daher kommt sein Durchsatz. Gebühren sind klein genug, dass die Auszahlung winziger Beträge ökonomisch bleibt, und Bestätigung ist schnell genug, dass eine Checkout-Seite einfach darauf warten kann. USDC-Volumen auf Solana hat die Chain zu einem ernsthaften Abwicklungsnetzwerk gemacht, und die Entwickler-Dynamik dahinter hat über mehrere Marktzyklen gehalten.
Testnet, Devnet und der X-Network-Header
Solana betreibt zwei öffentliche Test-Cluster, und die Namen verwirren. Devnet ist die Alltags-Sandbox für Anwendungsentwickler: kostenloses SOL gibt es über Faucet-Airdrops, und nichts darauf hat einen Wert. Testnet existiert hauptsächlich, damit Validatoren und Core-Contributors neue Releases unter Last testen. Haben Sie Ethereums Sepolia genutzt, ist Devnet das dazu geistesverwandte Äquivalent.
Mit Chaingateway verwalten Sie überhaupt keine Cluster-URLs. Fügen Sie den Header X-Network: testnet zu jedem Request hinzu, und er läuft gegen die Testumgebung; entfernen Sie ihn, ist der identische Request ein Mainnet-Aufruf. Es gibt keinen zweiten API-Key und kein separates Konto.
Nutzen Sie den Testlauf für die Szenarien, die auf Mainnet wehtun: eine Auszahlung an eine Adresse, die das Token nie gehalten hat (der Token-Account-Erstellungspfad), ein Neustart Ihrer Polling-Schleife mittendrin, und eine doppelte Einreichung derselben Auszahlung. Jedes davon zu proben dauert Minuten, und jedes ist ein echter Vorfall, wenn Sie ihm zuerst in Produktion begegnen.
Wenn Requests fehlschlagen
Die API meldet Probleme als schlichte HTTP-Statuscodes, sodass nichts an Ihrer Fehlerbehandlung Solana-spezifisch sein muss.
Ein 401 bedeutet, dass der Bearer-Token fehlt oder falsch ist. Fehler im 4xx-Bereich sind Validierungsfehler, etwa eine Adresse, die nicht als base58 dekodiert, oder ein fehlendes Feld; der JSON-Body sagt, was zu korrigieren ist, und den identischen Request unverändert zu wiederholen bringt nichts. Ein 429 bedeutet, dass Sie das Rate-Limit Ihres Plans erreicht haben; drosseln Sie, und takten Sie Deposit-Polling am Blockhöhen-Herzschlag statt an einer engen Schleife. Pläne mit höheren Limits stehen auf der Preisseite.
Serverfehler im 5xx-Bereich sind für Reads sicher zu wiederholen. Für Token-Sends seien Sie vorsichtiger: Nach einem Timeout wissen Sie nicht, ob der Transfer broadcastet wurde, und Solana hat hier noch keine Webhook-Spur. Prüfen Sie Ihre eigenen Aufzeichnungen und die jüngsten Transfers der Adresse, bevor Sie erneut einreichen, und halten Sie eine Datenbankzeile pro beabsichtigter Auszahlung, sodass ein erneuter Lauf Ihres Workers nicht doppelt senden kann.
Loggen Sie den vollständigen Response-Body neben Ihrem Request. Die Statuscodes und Fehlerschemas pro Endpoint stehen in der API-Referenz.
Gebaut für jeden Use-Case
Das häufigste Muster ist Zahlungsannahme: Weisen Sie jedem Kunden eine Deposit-Adresse zu, pollen Sie auf eingehende SPL-Transfers und markieren Sie die Bestellung als bezahlt, mit Abwicklung in Sekunden und Gebühren, die in Ihrer Margenrechnung zu klein sind, um zu zählen. Das zweite Muster ist Wallet-Betrieb: Plattformen, die Deposits und Abhebungen für viele Nutzer über dieselbe Handvoll Endpoints verwalten.
Dieselben Bausteine handhaben Auszahlungs-Automatisierung für Airdrops und Token-Launches, wiederkehrende Transfers für Abo-Abrechnung, und grenzüberschreitende Zahlungen, bei denen die Alternative eine Korrespondenzbank-Kette ist, die Tage dauert und Prozentpunkte abschöpft.
Integration in drei Schritten
Holen Sie sich Ihren API-Key. Registrieren Sie sich, und der Key erscheint sofort in Ihrem Dashboard. Der 7-Tage-Test braucht kein KYC.
Stellen Sie Ihren ersten Request. Der Quickstart deckt Authentifizierung und Ihren ersten Aufruf ab.
Richten Sie Deposit-Tracking ein und gehen Sie live. Auf Solana bedeutet das Polling am Blockhöhen-Herzschlag; auf den anderen Chains können Sie zu Webhooks wechseln. Funktioniert es, entfernen Sie den X-Network: testnet-Header, und derselbe Code läuft gegen Mainnet.
Was auf welcher Chain funktioniert
Solana ist die einzige Chain noch ohne Deposit-Webhooks, daher der Strich in dieser Spalte weiter unten auf dieser Seite. So vergleicht sich das vollständige Endpoint-Bild über alle sieben Chains.
| Chain | Adressen | Token-Transfers | Deposit-Webhooks |
|---|---|---|---|
| Bitcoin | POST /api/v2/bitcoin/wallets/{wallet}/addresses | — (kein Token-Standard) | GET /api/v2/bitcoin/webhooks/notifications |
| Ethereum | POST /api/v2/ethereum/addresses/import | ERC-20: POST /api/v2/ethereum/transactions/erc20 | GET /api/v2/ethereum/webhooks/notifications |
| TRON | POST /api/v2/tron/addresses/import | TRC-20 und TRC-10: POST /api/v2/tron/transactions/trc20 und .../trc10 | GET /api/v2/tron/webhooks/notifications |
| Solana | POST /api/v2/solana/addresses | SPL: POST /api/v2/solana/transactions/SPL | — |
| BNB Smart Chain | POST /api/v2/bsc/addresses/import | BEP-20: POST /api/v2/bsc/transactions/bep20 | GET /api/v2/bsc/webhooks/notifications |
| Polygon | POST /api/v2/polygon/addresses/import | ERC-20: POST /api/v2/polygon/transactions/erc20 | GET /api/v2/polygon/webhooks/notifications |
| Arbitrum | POST /api/v2/arbitrum/addresses/import | ERC-20: POST /api/v2/arbitrum/transactions/erc20 | GET /api/v2/arbitrum/webhooks/notifications |
Zwei Fußnoten, um die Tabelle richtig zu lesen. Erstens: TRON ist die tiefste Integration auf der Plattform. Über die obigen Routen hinaus dokumentiert die Referenz Staking (POST /api/v2/tron/freeze und /delegate), Chain-Parameter und ein Self-Signing-Paar – /transactions/trc20/build, um eine Transaktion zu konstruieren, und /transactions/broadcast, um eine lokal signierte einzureichen. Besteht Ihr Compliance-Team darauf, dass Private Keys Ihre Server nie verlassen, ist dieses Build-and-Broadcast-Muster Ihr Weg.
Zweitens: Ein Strich bedeutet, dass die aktuelle Referenz für diese Zelle keine v2-Route dokumentiert, nicht dass das Netzwerk zweite Wahl ist. Bitcoin hat keinen Token-Standard, daher die leere Token-Zelle – natives BTC läuft stattdessen über sein eigenes Wallet-Modell: eine passwortverschlüsselte Wallet mit POST /api/v2/bitcoin/wallets erstellen, Deposit-Adressen darunter ableiten und mit POST /api/v2/bitcoin/transactions senden. Solanas Referenz deckt Adresserstellung, SOL- und SPL-Transfers sowie Guthaben- und Block-Abfragen ab, aber noch keine Webhooks. Für alles, was hier nicht aufgeführt ist, hat die API-Referenz den aktuellen Stand.
Häufig gestellte Fragen
Bereit, Solana zu integrieren?
Konto erstellen, den API-Key kopieren und in den nächsten zehn Minuten einen SPL-Transfer im Testnetzwerk senden. Die vollständige Endpoint-Referenz ist unter /docs/, und das Developer-Portal hat Tutorials für die häufigsten Zahlungs-Flows.