| name | quicknode-sdk-patterns |
| description | Production-ready QuickNode SDK and ethers.js patterns for blockchain applications.
Use when building production dApps, implementing retry logic, or establishing patterns.
Trigger with phrases like "quicknode patterns", "ethers best practices", "web3 patterns".
|
| allowed-tools | Read, Write, Edit |
| version | 1.5.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","quicknode","blockchain","web3","patterns"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
QuickNode SDK Patterns
Overview
Production-ready patterns for blockchain development with QuickNode: provider singletons, retry logic, batch RPC calls, and multi-chain support.
Prerequisites
- Completed
quicknode-install-auth
- ethers.js or @quicknode/sdk installed
Instructions
Step 1: Provider Singleton
import { ethers } from 'ethers';
let _provider: ethers.JsonRpcProvider | null = null;
export function getProvider(): ethers.JsonRpcProvider {
if (!_provider) {
_provider = new ethers.JsonRpcProvider(process.env.QUICKNODE_ENDPOINT, undefined, {
staticNetwork: true,
batchMaxCount: 10,
});
}
return _provider;
}
Step 2: Retry Wrapper with Backoff
async function withRetry<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
for (let attempt = 0; attempt <= maxRetries; attempt++) {
try {
return await fn();
} (: ) {
isRetryable = err. === || err. === || err. === ;
(!isRetryable || attempt === maxRetries) err;
delay = .( * .(, attempt), );
( (r, delay));
}
}
();
}
balance = ( ().(address));