Der Betrieb einer produktiven Ethereum dApp ohne einen zuverlässigen Node-Anbieter führt schnell zu Bereitschaftsdiensten. Selbst gehostete Geth-Nodes verzögern, verpassen Reorgs und überlasten, sobald Ihre App an Zugkraft gewinnt. Die Alchemy API behebt dies, indem sie Ihnen eine gehärtete Node-Schicht sowie eine Reihe erweiterter APIs bietet, die die ursprüngliche JSON-RPC-Spezifikation nie definiert hat, wie zum Beispiel das Abrufen jedes NFTs in einer Wallet mit einem einzigen Aufruf, anstatt jeden Block seit der Genesis zu scannen.
Dieser Leitfaden führt Sie durch die gesamte Alchemy API-Oberfläche: eine App erstellen, authentifizieren, standardmäßige JSON-RPC-Methoden aufrufen, erweiterte Endpunkte nutzen, ausstehende Transaktionen über WebSocket abonnieren und Smart Accounts mit Gas-Sponsoring über das Account Kit bereitstellen. Sie sehen curl- und Node-Beispiele für jeden wichtigen Workflow und verstehen, wie sich Compute Units (CU) vor der Bereitstellung auf Ihre monatliche Rechnung auswirken.
Wenn Sie Wallet- und Web3-Infrastrukturen umfassender bewerten, hilft Ihnen Apidog, jeden Endpunkt an einem Ort zu testen. Lesen Sie auch unseren Leitfaden zur besten Krypto-Wallet-API für einen umfassenderen Marktüberblick, bevor Sie sich für einen Anbieter entscheiden.
TL;DR
- Alchemy unterstützt Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, zkSync, Starknet und mehr von einem einzigen Dashboard aus.
- Jede App erhält HTTPS- und WebSocket-Endpunkte für standardmäßiges JSON-RPC sowie erweiterte APIs wie
alchemy_getAssetTransfers,alchemy_getTokenBalancesundgetNFTs. - Das Alchemy SDK für JavaScript (
alchemy-sdk) umschließt ethers.js und fügt typisierte Helfer für jeden erweiterten Endpunkt hinzu. - Das Account Kit liefert ERC-4337 Smart Accounts mit Gas-Sponsoring, Session Keys und Passkey-Authentifizierung über den Gas Manager.
- Die Nutzung wird in Compute Units (CU) gemessen; der kostenlose Tarif bietet Ihnen 300 Mio. CU pro Monat, Growth sind 400 Mio. CU plus Überschreitung, Scale ist individuell.
- Ratelimits gelten pro App und pro Methode; Batch-Anfragen und das integrierte Backoff des SDK halten Sie unter den Drosselungsgrenzen.
Was ist die Alchemy API?
Alchemy ist eine Web3-Entwicklerplattform, die verwaltete Blockchain-Nodes betreibt und eine Datenindexierungs-Engine darauf aufsetzt. Sie erhalten drei Dinge, die Sie nicht einfach selbst erstellen können: hochverfügbare JSON-RPC-Nodes über mehr als 40 Chains hinweg, erweiterte APIs, die Übertragungen und NFT-Metadaten vorab indizieren, und einen Account-Abstraction-Stack (Account Kit) für gaslose UX.
Während Infura Ihnen hauptsächlich rohen Node-Zugriff bietet, fügt Alchemy die Indizierungsebene hinzu. Das Abrufen jeder ERC-20-Übertragung für eine Adresse erfordert einen einzigen alchemy_getAssetTransfers-Aufruf; dieselbe Abfrage auf einem einfachen Node würde bedeuten, jeden Block zu durchlaufen. Deshalb verwenden die meisten produktiven Wallets, DeFi-Dashboards und NFT-Marktplätze Alchemy für leseintensive Pfade.
Authentifizierung und Einrichtung
Erstellen Sie ein Konto im Alchemy-Dashboard und klicken Sie dann auf Neue App erstellen. Wählen Sie eine Chain (Ethereum Mainnet, Polygon, Base usw.) und ein Netzwerk (Mainnet oder ein Testnet wie Sepolia) aus. Jede App erhält einen eindeutigen API-Schlüssel, der das letzte Pfadsegment Ihrer URL bildet.
Ihr HTTPS-Endpunkt sieht so aus:
https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Ihr WebSocket-Endpunkt:
wss://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Behandeln Sie den API-Schlüssel wie ein Geheimnis. Speichern Sie ihn in einer Umgebungsvariablen, niemals im clientseitigen Code. Für Browser-dApps verwenden Sie Whitelists (Referer-Beschränkungen) im Alchemy-Dashboard, damit ein offengelegter Schlüssel Ihr Kontingent nicht von der Domain eines Angreifers entleeren kann.
Installieren Sie das SDK:
npm install alchemy-sdk
Initialisieren Sie dann einen Client:
import { Alchemy, Network } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
const block = await alchemy.core.getBlockNumber();
console.log("Latest block:", block);
Kern-Endpunkte
Standard-JSON-RPC über HTTPS
Jede standardmäßige Ethereum JSON-RPC-Methode funktioniert. Hier ist eth_getBalance mit curl:
curl https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"eth_getBalance",
"params":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","latest"],
"id":1
}'
Die Antwort gibt den Saldo in Wei als Hexadezimalzeichenfolge zurück. Dasselbe Muster funktioniert für eth_call, eth_sendRawTransaction, eth_getLogs und jede andere Standardmethode.
Erweiterte API: getAssetTransfers
alchemy_getAssetTransfers gibt jede ETH-, ERC-20-, ERC-721-, ERC-1155-, interne und externe Übertragung für eine Adresse über einen Blockbereich zurück. Ein einziger Aufruf ersetzt Tausende von eth_getLogs-Abfragen.
import { Alchemy, Network, AssetTransfersCategory } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
const transfers = await alchemy.core.getAssetTransfers({
fromBlock: "0x0",
toAddress: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
category: [
AssetTransfersCategory.EXTERNAL,
AssetTransfersCategory.ERC20,
AssetTransfersCategory.ERC721,
],
maxCount: 100,
});
for (const t of transfers.transfers) {
console.log(`${t.asset} ${t.value} from ${t.from} to ${t.to}`);
}
Erweiterte API: getTokenBalances und getNFTs
Um jeden Token, den eine Wallet hält, abzurufen, ohne die Vertragsadressen im Voraus zu kennen, ist ein einziger Aufruf erforderlich:
const balances = await alchemy.core.getTokenBalances(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
for (const token of balances.tokenBalances) {
const meta = await alchemy.core.getTokenMetadata(token.contractAddress);
console.log(`${meta.symbol}: ${token.tokenBalance}`);
}
Für NFTs verwenden Sie den NFT-Namespace:
const nfts = await alchemy.nft.getNftsForOwner(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
console.log(`Owns ${nfts.totalCount} NFTs`);
Abonnement-API über WebSocket
Die Abonnement-API sendet Updates, anstatt Sie zum Polling zu zwingen. Abonnieren Sie ausstehende Transaktionen oder Adressaktivitäten:
import { Alchemy, Network, AlchemySubscription } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
alchemy.ws.on(
{
method: AlchemySubscription.PENDING_TRANSACTIONS,
toAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
},
(tx) => console.log("Pending USDC tx:", tx.hash)
);
So bleiben Mempool-Bots, MEV-Watcher und Echtzeit-Portfolio-UIs aktuell, ohne CU für eth_blockNumber-Abfragen zu verbrauchen.
Account Kit und Gas Manager
Das Account Kit ist Alchemys Smart Account Stack. Es liefert ein React SDK, eine Smart Contract Account-Implementierung (Light Account und Modular Account) und den Gas Manager zum Sponsoring von Benutzeroperationen. Benutzer registrieren sich mit einem Passkey oder einer E-Mail, erhalten eine Smart Wallet und müssen nie eine Seed-Phrase oder einen Gas-Token anfassen.
import { createLightAccountClient } from "@account-kit/smart-contracts";
import { alchemy, sepolia } from "@account-kit/infra";
const client = createLightAccountClient({
transport: alchemy({ apiKey: process.env.ALCHEMY_API_KEY }),
chain: sepolia,
signer: yourSigner,
});
const { hash } = await client.sendUserOperation({
uo: { target: "0x...", data: "0x", value: 0n },
});
Für Onboarding-Workflows, die Smart Accounts mit eingebetteten Wallets koppeln, siehe unseren Leitfaden zur Privy API, die das Account Kit für Consumer-dApps hervorragend ergänzt.
Häufige Fehler und Ratelimits
Alchemy misst die Nutzung in Compute Units (CU). Jede Methode hat Kosten in CU: eth_call sind 26 CU, eth_getLogs sind 75, alchemy_getAssetTransfers sind 150 und eth_getBlockByNumber sind 16. Der kostenlose Tarif bietet Ihnen 300 Mio. CU pro Monat und eine Durchsatzbegrenzung pro Sekunde.
Die Fehler, die Sie am häufigsten sehen werden:
- 429 Too Many Requests: Sie haben die CU-Grenze pro Sekunde erreicht. Warten Sie ab und versuchen Sie es erneut; das SDK handhabt dies automatisch.
- 403 Forbidden: Die Whitelist Ihres API-Schlüssels stimmt nicht mit dem Referer überein, oder der Schlüssel ist deaktiviert.
- -32600 Invalid Request: Fehlerhafter JSON-RPC-Body. Überprüfen Sie den Methodennamen und das Parameter-Array.
- -32000 execution reverted: Der Vertragsaufruf wurde rückgängig gemacht. Dekodieren Sie den Revert-Grund mit
eth_callund einem Simulationstool.
Batch-Anfragen sind Ihr Freund. Senden Sie bis zu 1000 JSON-RPC-Aufrufe in einem HTTP POST, was den Netzwerk-Overhead amortisiert und oft weniger Gesamt-CU kostet. Für umfassendere Test-Workflows beschreibt API-Tests ohne Postman im Jahr 2026, wie man gebündelte JSON-RPC-Aufrufe in einer Sammlung verwaltet.
Alchemy-Preise
Alchemy hat vier öffentliche Tarife:
- Kostenlos: 300 Mio. CU pro Monat, 1 App, Community-Support. Gut für Prototypen und kleine persönliche Projekte.
- Growth: 49 $/Monat Basis, 400 Mio. CU enthalten, Überschreitungen pro CU abgerechnet, erweiterte Analysen.
- Scale: 289 $/Monat, 1,5 Mrd. CU, dedizierter Durchsatz, Prioritäts-Support.
- Enterprise: individuelle Preise, SLAs, private Nodes, engagiertes Solutions Engineering.
CU werden monatlich zurückgesetzt. Wenn Sie bei Growth oder Scale Ihr Kontingent überschreiten, zahlen Sie einen Aufschlag; bei Free beginnen Anfragen mit 429 fehlzuschlagen, bis der nächste Zyklus beginnt. Überwachen Sie die Nutzung während Ihres ersten Monats täglich im Dashboard, um den richtigen Tarif zu bestimmen.
Testen der Alchemy API mit Apidog
Das manuelle Debuggen von JSON-RPC ist mühsam. Jede Anfrage ist ein POST mit einem verschachtelten Parameter-Array, Antworten sind hexadezimal kodiert, und WebSocket-Abonnements sind in einem einfachen Terminal schwer zu überprüfen. Apidog bietet Ihnen einen vereinheitlichten Arbeitsbereich für REST-, GraphQL- und WebSocket-Verkehr, sodass Sie Alchemy HTTPS-Endpunkte ansteuern, einen WebSocket zu wss://eth-mainnet.g.alchemy.com/v2/... öffnen und ausstehende Transaktionsabonnements Seite an Seite beobachten können.
Speichern Sie Ihren API-Schlüssel als Umgebungsvariable in Apidog und verwenden Sie ihn in Sammlungen für Mainnet, Sepolia, Polygon und Base wieder. Skripten Sie Assertionen auf Antwortfelder, um Regressionen abzufangen, wenn Alchemy neue erweiterte Endpunkte einführt. Laden Sie Apidog herunter und importieren Sie die Alchemy OpenAPI-Spezifikation, um Ihre Sammlung in weniger als einer Minute zu erstellen.
Häufig gestellte Fragen
Ist Alchemy kostenlos für den Produktionseinsatz?Ja, innerhalb von 300 Mio. CU pro Monat. Viele kleine dApps bleiben unbegrenzt im Free-Tarif. Sobald Sie diese Grenze überschreiten oder einen höheren Durchsatz benötigen, ist Growth für 49 $ der übliche nächste Schritt.
Unterstützt Alchemy Solana?Ja. Alchemy unterstützt Solana Mainnet und Devnet mit standardmäßigen Solana RPC-Methoden sowie erweiterten Endpunkten für Token- und NFT-Daten. Erstellen Sie eine Solana-App im Dashboard, um einen dedizierten Endpunkt zu erhalten.
Kann ich die Alchemy API ohne das SDK verwenden?Absolut. Jeder Endpunkt ist über HTTPS mit curl, fetch oder einem beliebigen HTTP-Client aufrufbar. Das SDK ist ein Komfort-Wrapper; es fügt typisierte Helfer, automatische Wiederholungsversuche und WebSocket-Wiederverbindung hinzu, ist aber optional.
Was ist der Unterschied zwischen Alchemy und MetaMasks Entwickler-APIs?MetaMask konzentriert sich auf die Wallet-Benutzererfahrung und das Signieren; Alchemy konzentriert sich auf die Node-Infrastruktur und Daten. Sie lösen unterschiedliche Probleme. Siehe unseren Leitfaden zur MetaMask API für die Wallet-Seite.
Wie drehe ich einen Alchemy API-Schlüssel?Erstellen Sie eine neue App im Dashboard, aktualisieren Sie Ihre Umgebung, stellen Sie sie bereit und löschen Sie dann die alte App. Es gibt keine direkte Rotation, planen Sie daher ein kurzes Überlappungsfenster ein.
Funktioniert das Account Kit auf jeder EVM-Chain?Das Account Kit unterstützt Ethereum, Optimism, Arbitrum, Base, Polygon und deren Testnets. Die Sponsoring-Richtlinien des Gas Managers sind chain-spezifisch, daher müssen Sie diese pro Netzwerk einrichten.
