Güvenilir bir düğüm sağlayıcı olmadan üretimde Ethereum dApp çalıştırmak, sorgulara geç cevap alma ve tıkanıklık yaşama riskini artırır. Kendi Geth düğümünüzde gecikmeler, yeniden düzenlemeleri kaçırma ve trafik artışında darboğazlar görülebilir. Alchemy API, gelişmiş düğüm altyapısı ve ham JSON-RPC’nin ötesinde, örneğin genesis’ten bu yana her bloğu taramak yerine tek seferde bir adresteki tüm NFT’leri çekebileceğiniz API’ler sunarak bu sorunları çözer.
Bu rehberde Alchemy API’nin tüm işlevlerine hızlı ve doğrudan erişim sağlamak için adım adım uygulama oluşturma, kimlik doğrulama, standart ve gelişmiş JSON-RPC çağrıları, WebSocket abonelikleri ve Account Kit ile gaz sponsorluğu akışlarını göstereceğiz. Her ana akış için curl ve Node.js örnekleriyle birlikte, hesaplama birimlerinin (CU) aylık faturanıza etkisini nasıl anlayacağınızı da bulacaksınız.
Web3 cüzdan ve altyapı sağlayıcılarını daha geniş ölçekte test etmek için Apidog ile tüm uç noktaları tek panelden test edebilirsiniz. Ayrıca karar vermeden önce en iyi kripto cüzdanı API rehberimize göz atın.
<!--kg-card-begin: html-->
<!--kg-card-end: html-->
Kısaca
- Alchemy; Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, zkSync, Starknet ve daha fazlasını merkezi bir dashboard üzerinden yönetir.
- Her uygulama, HTTPS/WebSocket ile standart JSON-RPC ve
alchemy_getAssetTransfers,alchemy_getTokenBalances,getNFTsgibi gelişmiş API uç noktaları içerir. - JavaScript için
alchemy-sdk, ethers.js’yi sarar ve tüm gelişmiş uç noktalar için tip tanımlı yardımcı fonksiyonlar sağlar. - Account Kit, gaz sponsorluğu, oturum anahtarları ve Gas Manager ile ERC-4337 akıllı hesap gönderimini kolaylaştırır.
- Kullanım, hesaplama birimi (CU) bazında ölçülür; ücretsiz planda ayda 300 milyon CU, Growth’ta 400 milyon CU + aşım, Scale ise özeldir.
- Hız limitleri uygulama ve metoda özeldir; toplu istekler ve SDK’nın otomatik geri çekilmesi throttling limitlerine takılmamanızı sağlar.
Alchemy API nedir?
Alchemy, yönetilen blockchain düğümleri ve üstünde veri indeksleme motoru sağlayan bir web3 geliştirici platformudur. Kolayca elde edemeyeceğiniz üç katman sunar:
- 40+ zincirde yüksek erişilebilirlikli JSON-RPC düğümleri,
- Transfer ve NFT meta verilerini önceden indeksleyen gelişmiş API’ler,
- Gazsız kullanıcı deneyimi için Account Kit (akıllı hesap yığını).
Infura ile çoğunlukla ham düğüm erişimi alırsınız; Alchemy ise indeksleme katmanı ekler. Örneğin, bir adresteki tüm ERC-20 transferlerini tek alchemy_getAssetTransfers çağrısı ile çekebilirsiniz. Üretim cüzdanları, DeFi dashboard’ları ve NFT pazarları, yüksek okuma trafiği için bu yüzden Alchemy’yi tercih eder.
Kimlik Doğrulama ve Kurulum
- Alchemy dashboard’da hesap oluşturun.
- “Yeni uygulama oluştur”a tıklayın.
- Zincir (Ethereum, Polygon, Base vs.) ve ağ (mainnet/sepolia gibi) seçin.
- Her uygulama benzersiz bir API anahtarı üretir.
Uç Nokta Şablonları
HTTPS:
https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
WebSocket:
wss://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
API anahtarınızı gizli tutun. Ortam değişkeninde saklayın, istemci tarafı kodda asla kullanmayın. Tarayıcı dApp’leri için dashboard’dan referer whitelist belirleyin.
SDK Kurulumu
npm install alchemy-sdk
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);
Çekirdek Uç Noktalar
HTTPS ile Standart JSON-RPC
Herhangi bir Ethereum JSON-RPC metodunu doğrudan çağırabilirsiniz. Örnek: eth_getBalance:
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
}'
Yanıt bakiyeyi wei cinsinden hex olarak döndürür. Aynı şablon eth_call, eth_sendRawTransaction gibi diğer metodlar için de geçerlidir.
Gelişmiş API: getAssetTransfers
Bir adresteki tüm ETH, ERC-20, ERC-721, ERC-1155 ve dahili transferleri tek seferde çekin:
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}`);
}
Gelişmiş API: getTokenBalances ve getNFTs
Bir cüzdanın sahip olduğu tüm tokenları, önceden sözleşme adreslerini bilmeden alın:
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}`);
}
NFT’ler için:
const nfts = await alchemy.nft.getNftsForOwner(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
console.log(`Owns ${nfts.totalCount} NFTs`);
WebSocket ile Abonelik API’si
Gerçek zamanlı veri için, işlemleri veya adres etkinliğini dinleyin:
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)
);
Mempool botları ve MEV izleyicileri için polling olmadan güncel kalmayı sağlar.
Account Kit ve Gas Manager
Account Kit, React SDK, akıllı sözleşme hesapları (Light/Modular Account) ve Gas Manager ile parola veya e-posta ile cüzdan edinme ve gazsız işlem akışı sunar.
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 },
});
Başlangıç akışları ve cüzdan entegrasyonları için Privy API rehberine bakabilirsiniz.
Yaygın Hatalar ve Hız Limitleri
Alchemy, kullanım miktarını hesaplama birimi (CU) bazında ölçer. Her metodun CU maliyeti farklıdır:
-
eth_call: 26 CU -
eth_getLogs: 75 CU -
alchemy_getAssetTransfers: 150 CU -
eth_getBlockByNumber: 16 CU
En yaygın hatalar ve çözümleri:
- 429 Too Many Requests: Saniye başına CU limitini aştınız. Geri çekilme (retry with backoff) uygulayın; SDK bunu otomatik yapar.
- 403 Forbidden: API anahtarınızın whitelist’i referer ile eşleşmiyor veya anahtar bloke oldu.
- -32600 Invalid Request: JSON-RPC gövdesi yanlış biçimde. Metod ve parametreleri kontrol edin.
-
-32000 execution reverted: Sözleşme çağrısı revert etti. Nedeni
eth_callve simülasyon aracıyla analiz edin.
Toplu istekler ile bir POST’ta 1000’e kadar JSON-RPC çağrısı gönderin: ağ yükünü azaltır, toplam CU maliyetini düşürür. Gelişmiş test iş akışları için bu rehber toplu metot yönetimini anlatıyor.
Alchemy Fiyatlandırması
- Ücretsiz: 300 milyon CU/ay, 1 uygulama, topluluk desteği. Küçük projeler için yeterli.
- Growth: 49$/ay, 400 milyon CU, aşım başı ek ücret, gelişmiş analitik.
- Scale: 289$/ay, 1.5 milyar CU, özel hız ve öncelikli destek.
- Enterprise: Özel fiyat, SLA, özel düğümler ve mühendislik.
CU’lar her ay sıfırlanır. Growth veya Scale’da aşımda ek ücret, Ücretsiz’de ise yeni istekler 429 hatası verir. Hangi katmanın yeterli olduğunu görmek için dashboard’dan günlük kullanımınızı takip edin.
Alchemy API’sini Apidog ile Test Etme
JSON-RPC’yi elle göndermek yorucu ve hata yapmaya açıktır. Her istek POST formatında, parametreler iç içe ve yanıtlar hex kodlu gelir. WebSocket aboneliklerini doğrudan terminalde takip etmek de zordur.
Apidog, REST, GraphQL ve WebSocket trafiği için birleşik bir çalışma alanı sağlar. Alchemy HTTPS uç noktalarına istek gönderebilir, wss://eth-mainnet.g.alchemy.com/v2/... adresine WebSocket açabilir ve bekleyen işlem akışlarını izleyebilirsiniz.
- API anahtarınızı Apidog’da ortam değişkeni olarak kaydedin.
- Mainnet, Sepolia, Polygon, Base gibi ağlar için koleksiyonlar arası tekrar kullanın.
- Alchemy yeni uç noktalar ekledikçe, regresyon testleri için yanıt doğrulamalarını script ile otomatikleştirin.
- Apidog’u indirin ve Alchemy OpenAPI spesifikasyonunu içe aktararak dakikalar içinde koleksiyonunuzu kurun.
<!--kg-card-begin: html-->
<!--kg-card-end: html-->
Sıkça Sorulan Sorular
Alchemy üretimde ücretsiz mi?
Evet, ayda 300 milyon CU’ya kadar ücretsiz. Birçok küçük dApp bu planda kalabilir. Limit aşılırsa Growth (49$) paketine geçebilirsiniz.
Alchemy Solana’yı destekliyor mu?
Destekliyor. Solana ana ve test ağı için standart RPC ve gelişmiş token/NFT uç noktaları sunar. Özel uç nokta için dashboard’dan Solana uygulaması açın.
Alchemy API’yi SDK olmadan kullanabilir miyim?
Evet. Tüm uç noktalar curl, fetch veya herhangi bir HTTP client ile kullanılabilir. SDK kolaylık için tipli yardımcılar ve otomatik retry ekler ama zorunlu değildir.
Alchemy ve MetaMask’ın geliştirici API’leri arasındaki fark?
MetaMask cüzdan UX ve imzalama odaklıdır; Alchemy düğüm altyapısı ve veri sağlar. Farklı ihtiyaçlara hitap eder. Cüzdan tarafı için MetaMask API rehberimize bakabilirsiniz.
Alchemy API anahtarımı nasıl yenilerim (rotate)?
Dashboard’da yeni uygulama oluşturun, ortamınızı güncelleyin, deploy edin, ardından eski uygulamayı silin. Yerinde anahtar yenileme yoktur; kısa bir geçiş süresi planlayın.
Account Kit tüm EVM zincirlerinde çalışır mı?
Ethereum, Optimism, Arbitrum, Base, Polygon ve test ağlarını destekler. Gas Manager’ın sponsorluk politikaları zincire özeldir; her ağda ayrı yapılandırmalısınız.
Top comments (0)