Covalent API Integration: Balances, Transactions, NFT for Multi-Chain

You're building a wallet and need to display user balances on Ethereum, Polygon, Arbitrum, and Base in real time. Without a unified interface, you'd have to spin up four archive nodes, write ABI parsers for each protocol, and aggregate responses manually — weeks of work and ongoing infrastructure co

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1310
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1270
  • image_logo-advance_0.webp
    B2B Advance company logo design
    719
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1012
  • image_logo-aider_0.webp
    AIDER company logo development
    955
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1063

You're building a wallet and need to display user balances on Ethereum, Polygon, Arbitrum, and Base in real time. Without a unified interface, you'd have to spin up four archive nodes, write ABI parsers for each protocol, and aggregate responses manually — weeks of work and ongoing infrastructure costs. We solve this with a single request via Covalent API: 200+ networks, normalized data with prices and decoded logs. Using our experience with GoldRush SDK cuts development time by 40%.

Why Covalent API beats direct RPC

Directly connecting to each network's RPC nodes requires separate infrastructure and maintenance. Covalent API accelerates integration 10x: a typical wallet on five networks takes 2–3 days to integrate instead of 2–3 weeks. Infrastructure costs drop to zero — no archive nodes needed, everything works through one API key. Development savings reach 40%, and infrastructure savings up to 100%.

How we integrate Covalent API in 3 days

A typical scenario: displaying token portfolios, transaction history, and NFTs. With Covalent, one SDK and a few requests do the job:

# Balances of all ERC-20 tokens at an address GET /v1/{chainId}/address/{walletAddress}/balances_v2/ # Transaction history GET /v1/{chainId}/address/{walletAddress}/transactions_v3/ # NFTs at an address GET /v1/{chainId}/address/{walletAddress}/balances_nft/ 

Each response already includes USD value, decimals-adjusted balances, token metadata, and human-readable decoded data for 50+ popular protocols (Uniswap, OpenSea, Aave, etc.).

Authentication and rate limits

The API key is passed via a Basic Auth header. Free tier: 4 requests per second, 100,000 requests per month. For production, use paid tiers with higher limits.

const client = new CovalentClient(process.env.COVALENT_API_KEY); const response = await client.BalanceService.getTokenBalancesForWalletAddress( "eth-mainnet", walletAddress, { nft: false, noNftFetch: true } ); 

GoldRush SDK is typed, handles pagination and retry logic automatically. We use it in 90% of our projects and guarantee stable operation even under high load. Our engineers have prepared reference implementations for typical scenarios — saving up to 30 hours per project.

Main endpoint groups

Endpoint What it returns When to use
Balances API Current and historical ERC-20, ERC-721, ERC-1155 balances with USD value Portfolios, dashboards, wallet history
Transactions API Full transaction history with decoded event logs Analytics, reports, CRM integration
NFT API Metadata, ownership history, floor price Marketplaces, galleries, auctions
Cross-Chain Activity API Activity summary across all networks in one request Multi-chain scanner, risk scoring

Balances API — current and historical ERC-20, ERC-721, ERC-1155 balances. Includes USD value at current or historical price. The historic_balance_interval parameter lets you get a balance time series without querying thousands of blocks yourself.

Transactions API — full transaction history with decoded event logs. The decode parameter enables human-readable decoding for Uniswap, Aave, OpenSea, and 50+ other protocols. Pagination is cursor-based, not offset-based — important for wallets with thousands of transactions.

NFT API — metadata, ownership history, floor price from Opensea/Blur. The getNftsForAddress endpoint returns corrected IPFS URLs with HTTP gateway fallback.

Cross-Chain Activity API — activity summary for an address across all networks in one request. Useful for multi-chain wallet scanner scenarios.

Practical integration nuances

Caching is mandatory: balance data changes at most once per block (~12 seconds for Ethereum). Cache responses in Redis with a 15–30 second TTL. Without caching, 100 concurrent users will quickly hit the rate limit.

Pagination: transaction history for long-lived wallets can contain thousands of pages. Implement lazy loading, don't load everything at once:

async function* getAllTransactions(chain: string, address: string) { let pageNumber = 0; while (true) { const resp = await client.TransactionService .getTransactionsForAddressV3(chain, address, pageNumber); yield resp.data.items; if (!resp.data.links?.next) break; pageNumber++; } } 

Error handling: Covalent returns HTTP 200 even on errors — check the error field in the response body. The error_message field is sometimes informative, sometimes not; log the full response on unexpected results.

Chain IDs: Covalent uses both numeric chain IDs (1 for Ethereum) and string identifiers ("eth-mainnet"). In the SDK, use the string format — less confusion when working with testnets.

Direct RPC vs Covalent API

Criteria Direct RPC Covalent API
Number of supported networks one at a time 200+
Integration time for a typical wallet 2–3 weeks 2–3 days (10x faster)
Infrastructure costs archive node + maintenance API key only
Event decoding requires ABI built-in for 50+ protocols
Asset prices need external service included

Limitations to know

Covalent indexes historical data with a delay for new networks — don't expect real-time with sub-block latency. For real-time data (pending transactions, current DEX price), you need direct RPC.

Decoded data works only for whitelisted protocols. Custom or obscure contracts return raw logs — you'll need to do ABI decoding yourself with ethers.Interface.

Why use GoldRush SDK?

GoldRush SDK is the official TypeScript client from Covalent that handles typing, pagination, and retries. We use it in 90% of our projects and guarantee stable operation even under high load. Our engineers have prepared reference implementations for typical scenarios — saving up to 30 hours per project.

What's included in our work

  • Integration documentation with endpoint descriptions and code examples.
  • GoldRush SDK setup and service layer with caching and error handling.
  • Testing on testnets and preparation for production.
  • Post-deployment support: query optimization and edge case resolution.

Our process

  1. Requirement analysis: determine what data you need (balances, transactions, NFTs), select endpoints.
  2. Architecture design: integration schema, caching, pagination and error handling.
  3. Implementation: configure GoldRush SDK, write service layer, test on testnet.
  4. Deployment and monitoring: deploy, set up alerts, optimize queries.

Timelines: 1 to 3 weeks depending on complexity. Cost is calculated individually for your project.

Contact us for a consultation on your integration. Order a ready-made solution for multi-chain analytics and get post-launch support.

Source: Covalent Documentation