Chạy một dApp Ethereum sản xuất mà không có nhà cung cấp node đáng tin cậy là một con đường ngắn dẫn đến việc phải thường xuyên trực ban. Các node Geth tự host bị trễ, bỏ lỡ các đợt tái tổ chức (reorgs), và tắc nghẽn ngay khi ứng dụng của bạn có sức hút. Alchemy API khắc phục điều đó bằng cách cung cấp cho bạn một lớp node được tăng cường cùng với một bộ API nâng cao mà đặc tả JSON-RPC thô chưa từng định nghĩa, chẳng hạn như lấy mọi NFT trong một ví chỉ với một lệnh gọi thay vì quét từng khối kể từ khi khởi tạo.
Hướng dẫn này sẽ trình bày toàn bộ bề mặt API của Alchemy: tạo một ứng dụng, xác thực, gọi các phương thức JSON-RPC tiêu chuẩn, sử dụng các điểm cuối nâng cao, đăng ký các giao dịch đang chờ xử lý qua WebSocket, và triển khai các tài khoản thông minh với tài trợ phí gas thông qua Account Kit. Bạn sẽ thấy các ví dụ curl và Node cho mọi luồng chính, và bạn sẽ hiểu cách các đơn vị tính toán (CU) ánh xạ tới hóa đơn hàng tháng của bạn trước khi triển khai.
Nếu bạn đang đánh giá cơ sở hạ tầng ví và web3 rộng hơn, Apidog giúp bạn kiểm tra mọi điểm cuối tại một nơi. Đồng thời xem hướng dẫn của chúng tôi về API ví tiền điện tử tốt nhất để có cái nhìn rộng hơn về thị trường trước khi bạn cam kết với một nhà cung cấp.
Tóm tắt
- Alchemy hỗ trợ Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, zkSync, Starknet, và nhiều nền tảng khác từ một bảng điều khiển duy nhất.
- Mọi ứng dụng đều có các điểm cuối HTTPS và WebSocket cho JSON-RPC tiêu chuẩn cộng với các API nâng cao như
alchemy_getAssetTransfers,alchemy_getTokenBalances, vàgetNFTs. - SDK Alchemy cho JavaScript (
alchemy-sdk) bao bọc ethers.js và bổ sung các trình trợ giúp có kiểu (typed helpers) cho mọi điểm cuối nâng cao. - Account Kit cung cấp các tài khoản thông minh ERC-4337 với tính năng tài trợ phí gas, khóa phiên (session keys) và xác thực bằng passkey thông qua Gas Manager.
- Việc sử dụng được tính theo đơn vị tính toán; gói miễn phí cung cấp cho bạn 300 triệu CU mỗi tháng, gói Growth là 400 triệu CU cộng với phí vượt mức, gói Scale là tùy chỉnh.
- Giới hạn tỷ lệ là trên mỗi ứng dụng và mỗi phương thức; các yêu cầu theo lô (batch requests) và tính năng lùi thời gian tích hợp sẵn của SDK (SDK’s built-in backoff) giúp bạn không vượt quá giới hạn điều tiết.
Alchemy API là gì?
Alchemy là một nền tảng phát triển web3 vận hành các node blockchain được quản lý và xếp chồng một công cụ lập chỉ mục dữ liệu lên trên. Bạn nhận được ba thứ mà bạn không thể dễ dàng tự xây dựng: các node JSON-RPC có tính khả dụng cao trên hơn 40 chuỗi, các API nâng cao tiền lập chỉ mục các giao dịch chuyển nhượng và siêu dữ liệu NFT, và một ngăn xếp trừu tượng hóa tài khoản (Account Kit) cho trải nghiệm người dùng không phí gas.
Trong khi Infura chủ yếu cung cấp cho bạn quyền truy cập node thô, Alchemy bổ sung lớp lập chỉ mục. Lấy mọi giao dịch chuyển ERC-20 cho một địa chỉ chỉ cần một lệnh gọi alchemy_getAssetTransfers; cùng một truy vấn trên một node thông thường có nghĩa là lặp qua mọi khối. Đó là lý do tại sao hầu hết các ví sản xuất, bảng điều khiển DeFi và thị trường NFT sử dụng Alchemy cho các đường dẫn đọc nặng.
Xác thực và thiết lập
Tạo một tài khoản trên bảng điều khiển Alchemy, sau đó nhấp vào Tạo ứng dụng mới. Chọn một chuỗi (Ethereum Mainnet, Polygon, Base, v.v.) và một mạng (mainnet hoặc mạng thử nghiệm như Sepolia). Mỗi ứng dụng sẽ có một khóa API duy nhất tạo thành phân đoạn đường dẫn cuối cùng của URL của bạn.
Điểm cuối HTTPS của bạn trông như sau:
https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Điểm cuối WebSocket của bạn:
wss://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Hãy coi khóa API như một bí mật. Đặt nó vào một biến môi trường, không bao giờ trong mã phía client. Đối với các dApp trình duyệt, hãy sử dụng danh sách cho phép (giới hạn referer) trong bảng điều khiển Alchemy để khóa bị lộ không thể làm cạn kiệt hạn mức của bạn từ miền của kẻ tấn công.
Cài đặt SDK:
npm install alchemy-sdk
Sau đó khởi tạo một 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("Khối mới nhất:", block);
Các điểm cuối cốt lõi
JSON-RPC tiêu chuẩn qua HTTPS
Mọi phương thức JSON-RPC Ethereum tiêu chuẩn đều hoạt động. Dưới đây là eth_getBalance với 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
}'
Phản hồi trả về số dư theo wei dưới dạng chuỗi hex. Cùng một mẫu hoạt động cho eth_call, eth_sendRawTransaction, eth_getLogs, và mọi phương thức tiêu chuẩn khác.
API nâng cao: getAssetTransfers
alchemy_getAssetTransfers trả về mọi giao dịch chuyển ETH, ERC-20, ERC-721, ERC-1155, giao dịch nội bộ và bên ngoài cho một địa chỉ trong một phạm vi khối. Một lệnh gọi thay thế hàng ngàn truy vấn 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} từ ${t.from} đến ${t.to}`);
}
API nâng cao: getTokenBalances và getNFTs
Lấy mọi token mà một ví đang giữ, mà không cần biết trước địa chỉ hợp đồng, chỉ cần một lệnh gọi:
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}`);
}
Đối với NFT, hãy sử dụng không gian tên NFT:
const nfts = await alchemy.nft.getNftsForOwner(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
console.log(`Sở hữu ${nfts.totalCount} NFT`);
API Đăng ký qua WebSocket
API Đăng ký đẩy các bản cập nhật thay vì bắt bạn phải thăm dò. Đăng ký các giao dịch đang chờ xử lý hoặc hoạt động địa chỉ:
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("Giao dịch USDC đang chờ xử lý:", tx.hash)
);
Đây là cách các bot mempool, bộ theo dõi MEV và giao diện người dùng danh mục đầu tư thời gian thực duy trì cập nhật mà không tốn CU cho các cuộc thăm dò eth_blockNumber.
Account Kit và Gas Manager
Account Kit là ngăn xếp tài khoản thông minh của Alchemy. Nó cung cấp một React SDK, một triển khai tài khoản hợp đồng thông minh (Light Account và Modular Account), và Gas Manager để tài trợ các hoạt động người dùng. Người dùng đăng ký bằng passkey hoặc email, nhận một ví thông minh, và không bao giờ phải chạm vào một cụm từ hạt giống hoặc 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 },
});
Đối với các quy trình giới thiệu người dùng kết hợp tài khoản thông minh với ví nhúng, hãy xem hướng dẫn của chúng tôi về Privy API, bổ sung rất tốt cho Account Kit đối với các dApp dành cho người dùng cuối.
Lỗi thường gặp và giới hạn tỷ lệ
Alchemy đo lường mức sử dụng bằng đơn vị tính toán (CU). Mỗi phương thức có một chi phí CU: eth_call là 26 CU, eth_getLogs là 75, alchemy_getAssetTransfers là 150, và eth_getBlockByNumber là 16. Gói miễn phí cung cấp cho bạn 300 triệu CU mỗi tháng và giới hạn thông lượng mỗi giây.
Các lỗi bạn sẽ thấy thường xuyên nhất:
- 429 Quá nhiều yêu cầu: bạn đã đạt giới hạn CU mỗi giây. Hãy lùi thời gian và thử lại; SDK xử lý điều này tự động.
- 403 Bị cấm: danh sách cho phép của khóa API của bạn không khớp với referer, hoặc khóa đã bị vô hiệu hóa.
- -32600 Yêu cầu không hợp lệ: thân JSON-RPC bị định dạng sai. Kiểm tra tên phương thức và mảng tham số.
- -32000 thực thi bị hoàn nguyên: lệnh gọi hợp đồng đã bị hoàn nguyên. Giải mã lý do hoàn nguyên bằng
eth_callvà một công cụ mô phỏng.
Các yêu cầu theo lô là bạn của bạn. Gửi tới 1000 lệnh gọi JSON-RPC trong một HTTP POST, điều này giảm thiểu chi phí mạng và thường tốn ít tổng CU hơn. Đối với các quy trình kiểm thử rộng hơn, kiểm thử API không dùng Postman vào năm 2026 bao gồm cách quản lý các lệnh gọi JSON-RPC theo lô trong một bộ sưu tập.
Giá Alchemy
Alchemy có bốn cấp độ công khai:
- Miễn phí: 300 triệu CU mỗi tháng, 1 ứng dụng, hỗ trợ cộng đồng. Tốt cho các bản thử nghiệm và dự án cá nhân nhỏ.
- Phát triển: Cơ bản 49$/tháng, bao gồm 400 triệu CU, phí vượt mức tính theo CU, phân tích nâng cao.
- Mở rộng: 289$/tháng, 1.5 tỷ CU, thông lượng chuyên dụng, hỗ trợ ưu tiên.
- Doanh nghiệp: giá tùy chỉnh, SLA, node riêng, kỹ sư giải pháp chuyên trách.
CU được đặt lại hàng tháng. Nếu bạn vượt quá giới hạn trên gói Growth hoặc Scale, bạn sẽ phải trả phí vượt mức; trên gói Free, các yêu cầu sẽ bắt đầu thất bại với lỗi 429 cho đến chu kỳ tiếp theo. Giám sát mức sử dụng hàng ngày trong bảng điều khiển trong tháng đầu tiên để bạn có thể chọn gói phù hợp.
Kiểm tra API Alchemy bằng Apidog
Gỡ lỗi JSON-RPC thủ công rất khó khăn. Mọi yêu cầu đều là một POST với một mảng tham số lồng nhau, phản hồi được mã hóa hex và các đăng ký WebSocket khó kiểm tra trong một terminal thông thường. Apidog cung cấp cho bạn một không gian làm việc thống nhất cho lưu lượng REST, GraphQL và WebSocket, vì vậy bạn có thể truy cập các điểm cuối HTTPS của Alchemy, mở một WebSocket tới wss://eth-mainnet.g.alchemy.com/v2/... và theo dõi các đăng ký giao dịch đang chờ xử lý được truyền song song.
Lưu khóa API của bạn dưới dạng biến môi trường trong Apidog và sử dụng lại nó trên các bộ sưu tập cho mainnet, Sepolia, Polygon và Base. Viết kịch bản xác nhận trên các trường phản hồi để phát hiện các hồi quy khi Alchemy triển khai các điểm cuối nâng cao mới. Tải xuống Apidog và nhập đặc tả OpenAPI của Alchemy để tạo dàn dựng bộ sưu tập của bạn chỉ trong vòng chưa đầy một phút.
Câu hỏi thường gặp
Alchemy có miễn phí cho việc sử dụng sản xuất không?
Có, trong giới hạn 300 triệu CU mỗi tháng. Nhiều dApp nhỏ vẫn sử dụng gói Free vô thời hạn. Khi bạn vượt qua giới hạn đó hoặc cần thông lượng cao hơn, gói Growth với giá 49$ thường là bước tiếp theo.
Alchemy có hỗ trợ Solana không?
Có. Alchemy hỗ trợ Solana mainnet và devnet với các phương thức RPC Solana tiêu chuẩn cộng với các điểm cuối nâng cao cho dữ liệu token và NFT. Tạo một ứng dụng Solana trong bảng điều khiển để nhận một điểm cuối chuyên dụng.
Tôi có thể sử dụng Alchemy API mà không cần SDK không?
Chắc chắn rồi. Mọi điểm cuối đều có thể được gọi qua HTTPS bằng curl, fetch hoặc bất kỳ client HTTP nào. SDK là một trình bao bọc tiện lợi; nó bổ sung các trình trợ giúp có kiểu, thử lại tự động và kết nối lại WebSocket, nhưng nó là tùy chọn.
Sự khác biệt giữa Alchemy và API dành cho nhà phát triển của MetaMask là gì?
MetaMask tập trung vào trải nghiệm người dùng và ký ví; Alchemy tập trung vào cơ sở hạ tầng node và dữ liệu. Chúng giải quyết các vấn đề khác nhau. Xem hướng dẫn của chúng tôi về MetaMask API để biết về phía ví.
Làm cách nào để xoay vòng khóa API Alchemy?
Tạo một ứng dụng mới trong bảng điều khiển, cập nhật môi trường của bạn, triển khai, sau đó xóa ứng dụng cũ. Không có tính năng xoay vòng tại chỗ, vì vậy hãy lên kế hoạch cho một khoảng thời gian chồng chéo ngắn.
Account Kit có hoạt động trên bất kỳ chuỗi EVM nào không?
Account Kit hỗ trợ Ethereum, Optimism, Arbitrum, Base, Polygon và các mạng thử nghiệm của chúng. Các chính sách tài trợ của Gas Manager là dành riêng cho từng chuỗi, vì vậy hãy thiết lập chúng cho từng mạng.
