Unified multi-chain data API (now branded GoldRush) covering balances, transactions, NFTs, prices, and logs across 100+ chains via one REST/SDK surface.
- 01portfolio / balances across chains
- 02transaction history
- 03historical token prices
- 04NFT metadata at scale
- 05quick prototypes without writing subgraphs
- pnpm add @covalenthq/client-sdk
| Variable | Scope | Description |
|---|---|---|
| COVALENT_API_KEY | Server | GoldRush (Covalent) API key from the dashboard. Server-side only. |
Use `@covalenthq/client-sdk`. Instantiate once: `const client = new GoldRushClient(process.env.COVALENT_API_KEY!)`. For portfolios use `client.BalanceService.getTokenBalancesForWalletAddress({ chainName: 'eth-mainnet', walletAddress })`. For history use `client.TransactionService.getAllTransactionsForAddress(...)` (returns an async generator that handles pagination). NFTs live under `client.NftService`, prices under `client.PricingService`. Pass `chainName` from the official chain-name list — numeric chain IDs are not accepted by all endpoints.
- ⚑Brand is now "GoldRush" — older `api.covalenthq.com` URLs still resolve but new docs and dashboards live at `goldrush.dev`; pin to the SDK rather than hand-rolled URLs.
- ⚑Free tier is capped in monthly credits and class-A endpoints (transactions, NFTs) cost more credits than class-B; budget against the credit table, not the request count.
- ⚑Some endpoints require Node.js 18+ — older runtimes fail with cryptic `fetch is not defined` errors.
- ⚑Latency on rarely-queried chains can be tens of seconds for the first request as data is materialized; warm up before user-facing reads.
- ⚑NFT metadata coverage is patchy on newer L2s — fall back to a chain-native source (Alchemy/SimpleHash) if completeness matters.