Menjalankan dApp Ethereum produksi tanpa penyedia node yang andal adalah jalan singkat menuju panggilan pager. Node Geth yang di-hosting sendiri tertinggal, kehilangan reorg, dan tersendat saat aplikasi Anda mendapatkan daya tarik. Alchemy API memperbaikinya dengan memberi Anda lapisan node yang diperkuat ditambah serangkaian API yang ditingkatkan yang tidak pernah didefinisikan oleh spesifikasi JSON-RPC mentah, seperti mendapatkan setiap NFT di dompet dengan satu panggilan daripada memindai setiap blok sejak awal.
Panduan ini membahas seluruh permukaan Alchemy API: membuat aplikasi, mengautentikasi, memanggil metode JSON-RPC standar, menggunakan endpoint yang ditingkatkan, berlangganan transaksi tertunda melalui WebSocket, dan mengirimkan akun pintar dengan sponsor gas melalui Account Kit. Anda akan melihat contoh curl dan Node untuk setiap alur utama, dan Anda akan memahami bagaimana unit komputasi (CU) memengaruhi tagihan bulanan Anda sebelum Anda mulai.
Jika Anda mengevaluasi infrastruktur dompet dan web3 secara lebih luas, Apidog membantu Anda menguji setiap endpoint di satu tempat. Lihat juga panduan kami tentang API dompet kripto terbaik untuk pandangan pasar yang lebih luas sebelum Anda berkomitmen pada penyedia.
TL;DR
- Alchemy mencakup Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, zkSync, Starknet, dan lainnya dari satu dasbor.
- Setiap aplikasi mendapatkan endpoint HTTPS dan WebSocket untuk JSON-RPC standar ditambah API yang ditingkatkan seperti
alchemy_getAssetTransfers,alchemy_getTokenBalances, dangetNFTs. - Alchemy SDK untuk JavaScript (
alchemy-sdk) membungkus ethers.js dan menambahkan pembantu bertipe (typed helpers) untuk setiap endpoint yang ditingkatkan. - Account Kit mengirimkan akun pintar ERC-4337 dengan sponsor gas, kunci sesi, dan autentikasi passkey melalui Gas Manager.
- Penggunaan diukur dalam unit komputasi; tingkat gratis memberi Anda 300M CU per bulan, Growth adalah 400M CU ditambah kelebihan, Scale adalah kustom.
- Batas kecepatan bersifat per-aplikasi dan per-metode; permintaan batch dan backoff bawaan SDK menjaga Anda tetap di bawah batas pembatasan.
Apa itu Alchemy API?
Alchemy adalah platform pengembang web3 yang mengoperasikan node blockchain terkelola dan melapisinya dengan mesin pengindeksan data. Anda mendapatkan tiga hal yang tidak dapat Anda bangun dengan mudah sendiri: node JSON-RPC ketersediaan tinggi di lebih dari 40 rantai, API yang ditingkatkan yang melakukan pre-indeks transfer dan metadata NFT, serta tumpukan abstraksi akun (Account Kit) untuk UX tanpa gas.
Di mana Infura sebagian besar memberi Anda akses node mentah, Alchemy menambahkan lapisan pengindeksan. Mengambil setiap transfer ERC-20 untuk suatu alamat membutuhkan satu panggilan alchemy_getAssetTransfers; kueri yang sama pada node biasa berarti mengiterasi setiap blok. Itulah mengapa sebagian besar dompet produksi, dasbor DeFi, dan marketplace NFT menggunakan Alchemy untuk jalur yang padat baca.
Autentikasi dan Pengaturan
Buat akun di dasbor Alchemy, lalu klik Buat aplikasi baru. Pilih rantai (Ethereum Mainnet, Polygon, Base, dll.) dan jaringan (mainnet atau testnet seperti Sepolia). Setiap aplikasi mendapatkan kunci API unik yang membentuk segmen jalur terakhir URL Anda.
Endpoint HTTPS Anda terlihat seperti:
https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Endpoint WebSocket Anda:
wss://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Perlakukan kunci API seperti rahasia. Letakkan di variabel lingkungan, jangan pernah di kode sisi klien. Untuk dApp browser, gunakan daftar izin (pembatasan referer) di dasbor Alchemy agar kunci yang bocor tidak dapat menguras kuota Anda dari domain penyerang.
Instal SDK:
npm install alchemy-sdk
Kemudian inisialisasi klien:
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("Blok terbaru:", block);
Endpoint Inti
JSON-RPC Standar melalui HTTPS
Setiap metode JSON-RPC Ethereum standar berfungsi. Berikut adalah eth_getBalance dengan 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
}'
Respons mengembalikan saldo dalam wei sebagai string heksadesimal. Pola yang sama berlaku untuk eth_call, eth_sendRawTransaction, eth_getLogs, dan setiap metode standar lainnya.
API yang Ditingkatkan: getAssetTransfers
alchemy_getAssetTransfers mengembalikan setiap transfer ETH, ERC-20, ERC-721, ERC-1155, internal, dan eksternal untuk suatu alamat di seluruh rentang blok. Satu panggilan menggantikan ribuan kueri eth_getLogs.
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} dari ${t.from} ke ${t.to}`);
}
API yang Ditingkatkan: getTokenBalances dan getNFTs
Mendapatkan setiap token yang dimiliki dompet, tanpa mengetahui alamat kontrak di awal, hanya membutuhkan satu panggilan:
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}`);
}
Untuk NFT, gunakan namespace NFT:
const nfts = await alchemy.nft.getNftsForOwner(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
console.log(`Memiliki ${nfts.totalCount} NFT`);
API Langganan melalui WebSocket
API Langganan mendorong pembaruan daripada membuat Anda melakukan polling. Berlangganan transaksi tertunda atau aktivitas alamat:
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("Transaksi USDC tertunda:", tx.hash)
);
Inilah cara bot mempool, pengawas MEV, dan UI portofolio real-time tetap terkini tanpa menghabiskan CU pada polling eth_blockNumber.
Account Kit dan Gas Manager
Account Kit adalah tumpukan akun pintar Alchemy. Ini mencakup React SDK, implementasi akun kontrak pintar (Light Account dan Modular Account), dan Gas Manager untuk mensponsori operasi pengguna. Pengguna mendaftar dengan passkey atau email, mendapatkan dompet pintar, dan tidak pernah menyentuh frase benih (seed phrase) atau token gas.
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 },
});
Untuk alur orientasi yang memasangkan akun pintar dengan dompet tertanam, lihat panduan kami tentang Privy API, yang melengkapi Account Kit dengan baik untuk dApp konsumen.
Kesalahan Umum dan Batas Kecepatan
Alchemy mengukur penggunaan dalam unit komputasi (CU). Setiap metode memiliki biaya CU: eth_call adalah 26 CU, eth_getLogs adalah 75, alchemy_getAssetTransfers adalah 150, dan eth_getBlockByNumber adalah 16. Tingkat gratis memberi Anda 300M CU per bulan dan batas throughput per detik.
Kesalahan yang paling sering Anda lihat:
- 429 Terlalu Banyak Permintaan: Anda mencapai batas CU per detik. Mundur dan coba lagi; SDK menangani ini secara otomatis.
- 403 Terlarang: daftar izin kunci API Anda tidak cocok dengan referer, atau kuncinya dinonaktifkan.
- -32600 Permintaan Tidak Valid: badan JSON-RPC yang salah format. Periksa nama metode dan array parameter.
- -32000 eksekusi dibatalkan: panggilan kontrak dibatalkan. Dekode alasan pembatalan dengan
eth_calldan alat simulasi.
Permintaan batch adalah teman Anda. Kirim hingga 1000 panggilan JSON-RPC dalam satu HTTP POST, yang mengamortisasi overhead jaringan dan seringkali menghabiskan lebih sedikit CU total. Untuk alur kerja pengujian yang lebih luas, pengujian API tanpa Postman pada tahun 2026 membahas cara mengelola panggilan JSON-RPC batch dalam koleksi.
Harga Alchemy
Alchemy memiliki empat tingkatan publik:
- Gratis: 300M CU per bulan, 1 aplikasi, dukungan komunitas. Baik untuk prototipe dan proyek pribadi kecil.
- Growth: Dasar $49/bulan, termasuk 400M CU, kelebihan ditagih per CU, analitik lanjutan.
- Scale: $289/bulan, 1.5B CU, throughput khusus, dukungan prioritas.
- Enterprise: harga kustom, SLA, node pribadi, rekayasa solusi khusus.
CU direset setiap bulan. Jika Anda melebihi batas pada Growth atau Scale, Anda membayar kelebihan; pada Gratis, permintaan mulai gagal dengan 429 hingga siklus berikutnya. Pantau penggunaan setiap hari di dasbor selama bulan pertama Anda agar Anda dapat menentukan tingkatan yang tepat.
Menguji Alchemy API dengan Apidog
Debugging JSON-RPC secara manual sangatlah merepotkan. Setiap permintaan adalah POST dengan array parameter bertingkat, respons dienkode heksadesimal, dan langganan WebSocket sulit diperiksa di terminal biasa. Apidog memberi Anda ruang kerja terpadu untuk lalu lintas REST, GraphQL, dan WebSocket, sehingga Anda dapat mengakses endpoint HTTPS Alchemy, membuka WebSocket ke wss://eth-mainnet.g.alchemy.com/v2/..., dan menonton langganan transaksi tertunda yang mengalir secara berdampingan.
Simpan kunci API Anda sebagai variabel lingkungan di Apidog dan gunakan kembali di berbagai koleksi untuk mainnet, Sepolia, Polygon, dan Base. Tulis skrip afirmasi pada bidang respons untuk menangkap regresi saat Alchemy meluncurkan endpoint baru yang ditingkatkan. Unduh Apidog dan impor spesifikasi OpenAPI Alchemy untuk menyusun koleksi Anda dalam waktu kurang dari satu menit.
FAQ
Apakah Alchemy gratis untuk penggunaan produksi?Ya, dalam batas 300M CU per bulan. Banyak dApp kecil tetap menggunakan tingkat Gratis tanpa batas waktu. Setelah Anda melewati batas itu atau membutuhkan throughput yang lebih tinggi, Growth seharga $49 adalah langkah selanjutnya yang biasa.
Apakah Alchemy mendukung Solana?Ya. Alchemy mendukung mainnet dan devnet Solana dengan metode RPC Solana standar ditambah endpoint yang ditingkatkan untuk data token dan NFT. Buat aplikasi Solana di dasbor untuk mendapatkan endpoint khusus.
Bisakah saya menggunakan Alchemy API tanpa SDK?Tentu saja. Setiap endpoint dapat dipanggil melalui HTTPS dengan curl, fetch, atau klien HTTP apa pun. SDK adalah pembungkus kenyamanan; ia menambahkan pembantu bertipe, percobaan ulang otomatis, dan koneksi ulang WebSocket, tetapi opsional.
Apa perbedaan antara Alchemy dan API pengembang MetaMask?MetaMask berfokus pada UX dompet dan penandatanganan; Alchemy berfokus pada infrastruktur node dan data. Keduanya memecahkan masalah yang berbeda. Lihat panduan kami tentang MetaMask API untuk sisi dompet.
Bagaimana cara merotasi kunci API Alchemy?Buat aplikasi baru di dasbor, perbarui lingkungan Anda, deploy, lalu hapus aplikasi lama. Tidak ada rotasi di tempat, jadi rencanakan jendela tumpang tindih singkat.
Apakah Account Kit berfungsi di rantai EVM mana pun?Account Kit mendukung Ethereum, Optimism, Arbitrum, Base, Polygon, dan testnet mereka. Kebijakan sponsor Gas Manager bersifat spesifik rantai, jadi atur sesuai jaringan.
