quicknode-skill

Quicknode blockchain infrastructure including RPC endpoints (80+ chains), Streams (real-time data), Webhooks, IPFS storage, Marketplace Add-ons (Token API, NFT API, DeFi tools), Solana DAS API (Digital Asset Standard), Key-Value Store, gRPC streaming (Yellowstone for Solana, Hypercore for Hyperliquid), and x402 pay-per-request RPC. Use when setting up blockchain infrastructure, configuring real-time data pipelines, processing blockchain events, storing data on IPFS, using Quicknode-specific APIs, querying Solana NFTs/tokens/compressed assets, persisting state with Key-Value Store, or building low-latency gRPC streams. Triggers on mentions of Quicknode, Streams, qn_ methods, IPFS pinning, Quicknode add-ons, DAS API, Digital Asset Standard, compressed NFT, cNFT, getAssetsByOwner, searchAssets, Key-Value Store, KV store, qnLib, Yellowstone, gRPC, Geyser, Hypercore, Hyperliquid, HYPE, evm, rpc, ethereum, blockchain, solana, or x402.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "quicknode-skill" with this command: npx skills add quiknode-labs/blockchain-skills/quiknode-labs-blockchain-skills-quicknode-skill

Quicknode Blockchain Infrastructure

Intake Questions

  • Which chain and network should Quicknode target?
  • Is this read-only or should I create infrastructure (streams, webhooks, IPFS writes)?
  • Does this require real-time streaming (gRPC/Yellowstone/Hypercore) or standard RPC?
  • What endpoint or API key should I use (default: QUICKNODE_RPC_URL, optional QUICKNODE_WSS_URL / QUICKNODE_API_KEY)?
  • Any constraints (latency, regions, throughput, destinations)?

Safety Defaults

  • Default to testnet/devnet when a network is not specified.
  • Prefer read-only operations and dry runs before creating resources.
  • Never ask for or accept private keys or secret keys.

Confirm Before Write

  • Require explicit confirmation before creating or modifying Streams, Webhooks, or IPFS uploads.
  • If confirmation is missing, return the exact API payload for review.

Quick Reference

ProductDescriptionUse Case
RPC EndpointsHigh-performance blockchain accessdApp backend, wallet interactions
StreamsReal-time & historical blockchain data pipelinesEvent monitoring, analytics, indexing
WebhooksEvent-driven notificationsAlerts, transaction monitoring
IPFSDecentralized file storageNFT metadata, asset hosting
Add-onsEnhanced blockchain APIsToken balances, NFT data, DeFi
DAS APISolana Digital Asset Standard (add-on)NFT/token queries, compressed NFTs, asset search
Yellowstone gRPCSolana Geyser streaming (add-on)Real-time account, transaction, slot data
HypercoreHyperliquid gRPC/JSON-RPC/WS (beta)Trades, orders, book updates, blocks, TWAP, events, writer actions
Admin APIREST API for account managementEndpoint CRUD, usage monitoring, billing
Key-Value StoreServerless key-value and list storage (beta)Persistent state for Streams, dynamic address lists
x402Pay-per-request RPC via USDC micropaymentsKeyless RPC access, AI agents, pay-as-you-go

RPC Endpoints

Quicknode provides low-latency RPC endpoints for 80+ blockchain networks.

Endpoint Setup

// EVM chains (ethers.js)
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider(process.env.QUICKNODE_RPC_URL!);

// EVM chains (viem)
import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createPublicClient({
  chain: mainnet,
  transport: http(process.env.QUICKNODE_RPC_URL!),
});

// Solana
import { createSolanaRpc } from '@solana/kit';
const rpc = createSolanaRpc(process.env.QUICKNODE_RPC_URL!);

Authentication

Quicknode endpoints include authentication in the URL:

https://{ENDPOINT_NAME}.{NETWORK}.quiknode.pro/{API_KEY}/

For additional security, enable JWT authentication or IP allowlisting in the Quicknode dashboard.

Supported Networks

CategoryNetworks
EVMEthereum, Polygon, Arbitrum, Optimism, Base, BSC, Avalanche, Fantom, zkSync, Scroll, Linea, Hyperliquid EVM (HyperEVM)
Non-EVMSolana, Bitcoin, NEAR, Stacks, Cosmos, Sei, Aptos, Sui, TON, Hyperliquid (HyperCore)

Not exhaustive. Full list: https://www.quicknode.com/chains

Rate Limits & Plans

As of 2026-02-02. Verify current limits in Quicknode docs before sizing a production system.

PlanRequests/secCredits/month
Free Trial1510M
Build5080M
Accelerate125450M
Scale250950M
Business5002B

See references/rpc-reference.md for complete RPC documentation including method tables for EVM, Solana, and Bitcoin chains, WebSocket patterns, and batch request examples.

Streams

Real-time & historical blockchain data pipelines that filter, transform, and deliver data to your destinations.

Stream Types

TypeDataUse Case
BlockFull block dataBlock explorers, analytics
TransactionTransaction detailsTx monitoring, indexing
LogsContract eventsDeFi tracking, NFT sales, token transfers
ReceiptTransaction receiptsGas analysis, status tracking

Quick Setup

  1. Create stream in Quicknode dashboard
  2. Select network and data type
  3. Add filter function (JavaScript)
  4. Configure destination (webhook, S3, database)

Basic Filter Function

See references/streams-reference.md for filter examples and full Streams documentation.

Webhooks

Event-driven notifications for blockchain activity.

Webhooks vs Streams

FeatureWebhooksStreams
SetupSimpleMore configuration
FilteringAddress/event-basedCustom JavaScript
DestinationsHTTP endpoint onlyWebhook, S3, Postgres, Azure
ProcessingBasicFull transformation
Use CaseSimple alertsComplex pipelines

Webhook Setup

See references/webhooks-reference.md for API examples and full Webhooks documentation.

IPFS Storage

Decentralized file storage with Quicknode's IPFS gateway.

See references/ipfs-reference.md for upload examples, metadata examples, and complete IPFS documentation.

Marketplace Add-ons

Enhanced APIs available through Quicknode's marketplace.

Token API (Ethereum)

// Get all token balances for an address
const response = await fetch(process.env.QUICKNODE_RPC_URL!, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'qn_getWalletTokenBalance',
    params: [{ wallet: '0x...', contracts: [] }]
  })
});

NFT API (Ethereum)

// Fetch NFTs owned by address
const response = await fetch(process.env.QUICKNODE_RPC_URL!, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'qn_fetchNFTs',
    params: [{ wallet: '0x...', page: 1, perPage: 10 }]
  })
});

Solana Priority Fee API

// Get recommended priority fees
const response = await rpc.request('qn_estimatePriorityFees', {
  last_n_blocks: 100,
  account: 'YOUR_ACCOUNT'
}).send();

Metis - Jupiter Swap API

// Using Metis - Jupiter Swap API
import { createJupiterApiClient } from '@jup-ag/api';

const jupiterApi = createJupiterApiClient({
  basePath: `${process.env.QUICKNODE_METIS_URL}`
});

const quote = await jupiterApi.quoteGet({
  inputMint: 'So11111111111111111111111111111111111111112',
  outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
  amount: 1000000000,
  slippageBps: 50
});

const swapResult = await jupiterApi.swapPost({
  swapRequest: {
    quoteResponse: quote,
    userPublicKey: 'YourPubkey...'
  }
});

See references/marketplace-addons.md for complete Add-ons documentation.

Solana DAS API (Digital Asset Standard)

Comprehensive API for querying Solana digital assets — standard NFTs, compressed NFTs (cNFTs), fungible tokens, MPL Core Assets, and Token 2022 Assets. Available as a Marketplace add-on (Metaplex DAS API).

Docs: https://www.quicknode.com/docs/solana/solana-das-api

Quick Setup

// Get all assets owned by a wallet
const response = await fetch(process.env.QUICKNODE_RPC_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getAssetsByOwner',
    params: {
      ownerAddress: 'E645TckHQnDcavVv92Etc6xSWQaq8zzPtPRGBheviRAk',
      limit: 10,
      options: { showFungible: true, showCollectionMetadata: true }
    }
  })
});
const { result } = await response.json();
// result.total — total assets
// result.items — array of asset metadata
// result.cursor — for pagination

Available Methods

MethodDescription
getAssetGet metadata for a single asset
getAssetsGet metadata for multiple assets
getAssetProofGet Merkle proof for a compressed asset
getAssetProofsGet Merkle proofs for multiple assets
getAssetsByAuthorityList assets by authority
getAssetsByCreatorList assets by creator
getAssetsByGroupList assets by group (e.g., collection)
getAssetsByOwnerList assets by wallet owner
getAssetSignaturesTransaction signatures for compressed assets
getTokenAccountsToken accounts by mint or owner
getNftEditionsEdition details of a master NFT
searchAssetsSearch assets with flexible filters

See references/solana-das-api-reference.md for complete DAS API documentation with all methods, parameters, and examples.

Yellowstone gRPC (Solana)

High-performance Solana Geyser plugin for real-time blockchain data streaming via gRPC. Available as a Marketplace add-on.

Quick Setup

import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";

// Derive from HTTP URL: https://example.solana-mainnet.quiknode.pro/TOKEN/
const client = new Client(
  "https://example.solana-mainnet.quiknode.pro:10000",
  "TOKEN",
  {}
);

const stream = await client.subscribe();
stream.on("data", (data) => {
  if (data.transaction) console.log("Tx:", data.transaction);
});

stream.write({
  transactions: {
    txn_filter: {
      vote: false,
      failed: false,
      accountInclude: ["PROGRAM_PUBKEY"],
      accountExclude: [],
      accountRequired: [],
    },
  },
  accounts: {},
  slots: {},
  blocks: {},
  blocksMeta: {},
  transactionsStatus: {},
  entry: {},
  accountsDataSlice: [],
  commitment: CommitmentLevel.CONFIRMED,
});

Filter Types

FilterDescription
accountsAccount data changes by pubkey, owner, or data pattern
transactionsTransaction events with vote/failure/account filters
transactionsStatusLightweight transaction status updates
slotsSlot progression and status changes
blocksFull block data with optional tx/account inclusion
blocksMetaBlock metadata without full contents
entryPoH entry updates

See references/yellowstone-grpc-reference.md for complete Yellowstone gRPC documentation.

HyperCore (Hyperliquid)

Quicknode's data delivery infrastructure for the Hyperliquid L1 chain. Provides gRPC, JSON-RPC, WebSocket, and Info API access. Currently in public beta.

Access Methods

MethodPath / PortUse Case
Info API/info (POST)50+ methods for market data, positions, orders
JSON-RPC/hypercore (POST)Block queries (hl_getBlock, hl_getBatchBlocks)
WebSocket/hypercore/wsReal-time subscriptions (hl_subscribe)
gRPCPort 10000Lowest-latency streaming for trades, orders, books

gRPC Stream Types

StreamVolumeDescription
TRADESHighExecution data: coin, price, size, side, fees
ORDERSVery HighOrder lifecycle with 18+ status types
BOOK_UPDATESVery HighL2 order book diffs
TWAPLowTime-weighted average price order updates
EVENTSHighLedger updates, funding, deposits, withdrawals
BLOCKSExtremeRaw HyperCore blocks (gRPC only)
WRITER_ACTIONSLowSystem-level token transfers

HyperEVM

PathDebug/TraceArchiveUse Case
/evmNoPartialStandard EVM operations
/nanorethYesExtendedDebug, trace, WebSocket subscriptions

See references/hypercore-hyperliquid-reference.md for complete HyperCore and Hyperliquid documentation.

Quicknode SDK

Official JavaScript/TypeScript SDK for Quicknode services.

Installation

npm install @quicknode/sdk

Basic Usage

import { Core } from '@quicknode/sdk';

const core = new Core({
  endpointUrl: process.env.QUICKNODE_RPC_URL!,
});

// Token API
const balances = await core.client.qn_getWalletTokenBalance({
  wallet: '0x...',
});

// NFT API
const nfts = await core.client.qn_fetchNFTs({
  wallet: '0x...',
  page: 1,
  perPage: 10,
});

See references/sdk-reference.md for complete SDK documentation.

Admin API

REST API for programmatic management of Quicknode endpoints, usage, rate limits, security, billing, and teams. Enables infrastructure-as-code workflows.

Quick Reference

ResourceMethodsEndpoint
ChainsGET/v0/chains
EndpointsGET, POST, PATCH, DELETE/v0/endpoints
MetricsGET/v0/endpoints/{id}/metrics
Rate LimitsGET, POST, PUT/v0/endpoints/{id}/method-rate-limits, /v0/endpoints/{id}/rate-limits
SecurityGET/v0/endpoints/{id}/security_options
UsageGET/v0/usage/rpc, by-endpoint, by-method, by-chain
BillingGET/v0/billing/invoices
TeamsGET/v0/teams

Authentication

All requests use the x-api-key header against https://api.quicknode.com/v0/.

const QN_API_KEY = process.env.QUICKNODE_API_KEY!;

const res = await fetch('https://api.quicknode.com/v0/endpoints', {
  headers: { 'x-api-key': QN_API_KEY },
});
const endpoints = await res.json();

See references/admin-api-reference.md for full Admin API documentation including endpoint CRUD, usage monitoring, rate limit configuration, security options, billing, and teams.

Key-Value Store (Beta)

Serverless storage for lists and key-value sets, primarily accessed from within Streams filter functions via the qnLib helper library. Also available via REST API.

Stream Integration (qnLib)

List operations — manage lists of items (e.g., wallet addresses):

  • qnLib.qnUpsertList — create or update a list
  • qnLib.qnAddListItem — add item to a list
  • qnLib.qnRemoveListItem — remove item from a list
  • qnLib.qnContainsListItems — batch membership check
  • qnLib.qnDeleteList — delete a list

Set operations — manage key-value pairs:

  • qnLib.qnAddSet — create a key-value set
  • qnLib.qnGetSet — retrieve value by key
  • qnLib.qnBulkSets — bulk create/remove sets
  • qnLib.qnDeleteSet — delete a set

Docs: https://www.quicknode.com/docs/key-value-store

x402 (Pay-Per-Request RPC)

Pay-per-request RPC access via USDC micropayments on Base. No API key required — authenticate with Sign-In with Ethereum (SIWE), purchase credits, and access 140+ chain endpoints.

Quick Setup

import { wrapFetch } from "@x402/fetch";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";

const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const walletClient = createWalletClient({
  account,
  chain: base,
  transport: http(),
});

// Wrap fetch to auto-handle 402 payments
const x402Fetch = wrapFetch(fetch, walletClient);

// Use like normal fetch — payments are handled automatically
const response = await x402Fetch("https://x402.quicknode.com/ethereum-mainnet", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    method: "eth_blockNumber",
    params: [],
    id: 1,
  }),
});

See references/x402-reference.md for complete x402 documentation including SIWE authentication, credit management, and the @x402/fetch wrapper.

Common Patterns

Multi-Chain dApp Setup

import { Core } from '@quicknode/sdk';

const chains = {
  ethereum: new Core({
    endpointUrl: 'https://YOUR_ETH_ENDPOINT.quiknode.pro/KEY/'
  }),
  polygon: new Core({
    endpointUrl: 'https://YOUR_POLYGON_ENDPOINT.quiknode.pro/KEY/'
  }),
  arbitrum: new Core({
    endpointUrl: 'https://YOUR_ARB_ENDPOINT.quiknode.pro/KEY/'
  }),
};

// Use appropriate chain
const ethBalance = await chains.ethereum.client.getBalance({ address: '0x...' });

Real-Time Transaction Monitoring

  1. Create Stream filtering for your contract address
  2. Add Filter Function to extract relevant events
  3. Configure Webhook destination to your server
  4. Process Events in your backend

NFT Collection Indexing

  1. Use Streams to capture mint/transfer events
  2. Store in Database via PostgreSQL destination
  3. Query via Add-ons for current ownership data
  4. Query via SDK for custom API endpoints

Real-Time Solana Monitoring with Yellowstone gRPC

  1. Connect via gRPC on port 10000 with your auth token
  2. Subscribe to transactions filtering by program or account
  3. Process updates in real-time via the streaming interface
  4. Implement reconnection with exponential backoff

Hyperliquid Trading Data Pipeline

  1. Connect via gRPC on port 10000 for lowest-latency data
  2. Subscribe to TRADES/ORDERS streams with coin filters
  3. Process events — handle ~12 blocks/sec throughput
  4. Use Info API (/info) for account state and market metadata

Best Practices

RPC

  • Use WebSocket for subscriptions and real-time data
  • Implement retry logic with exponential backoff
  • Cache responses when data doesn't change frequently
  • Use batch requests to reduce API calls

Streams

  • Start with narrow filters, expand as needed
  • Test filter functions locally before deployment
  • Streams will automatically retry on failures
  • Monitor stream health via dashboard

Security

  • Store API keys in environment variables
  • Enable IP allowlisting for production
  • Use JWT authentication for sensitive operations
  • Rotate API keys periodically

gRPC

  • Enable zstd compression to reduce bandwidth (up to 70% for Hyperliquid)
  • Implement reconnection logic with exponential backoff — streams can drop
  • Use narrow filters (specific accounts, coins, or programs) to minimize data volume
  • Set appropriate commitment levels (Yellowstone: CONFIRMED for most use cases, FINALIZED for irreversibility)
  • Send keepalive pings (every 10s for Yellowstone, every 30s for Hypercore) to maintain connections

Documentation Links

Quicknode Products

Chain-Specific Docs

LLM-Optimized Documentation

Additional Resources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

openzeppelin-contracts

No summary provided by upstream source.

Repository SourceNeeds Review
Web3

viem

No summary provided by upstream source.

Repository SourceNeeds Review
Web3

ton

No summary provided by upstream source.

Repository SourceNeeds Review