Quicknode core workflow b
Skill jeremylongshore/claude-code-plugins-plus-skills/skills/.curated/quicknode-core-workflow-b
425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill quicknode-core-workflow-bAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
'Work with NFT and token APIs via QuickNode: metadata, balances, transfer history.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.7 KB, 930 tokens by cl100k_base, as published. Nobody here has run it
QuickNode Core Workflow B — NFT & Token APIs
Overview
Use QuickNode's NFT and Token APIs to fetch metadata, check balances, and track transfer history. These are QuickNode-specific add-on APIs beyond standard EVM RPC.
Prerequisites
- Completed
quicknode-core-workflow-a - Token and NFT add-ons enabled on your QuickNode endpoint
Instructions
Step 1: Get Token Balances (QuickNode SDK)
import { Core } from '@quicknode/sdk';
const core = new Core({ endpointUrl: process.env.QUICKNODE_ENDPOINT });
// Get all ERC-20 token balances for a wallet
const balances = await core.client.request({
method: 'qn_getWalletTokenBalance',
params: [{ wallet: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045' }],
});
for (const token of balances.result) {
console.log(`${token.name} (${token.symbol}): ${token.quantity}`);
}
Step 2: Get NFT Metadata
const nfts = await core.client.request({
method: 'qn_fetchNFTs',
params: [{
wallet: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
contracts: ['0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'], // BAYC
page: 1,
perPage: 10,
}],
});
for (const nft of nfts.result.assets) {
console.log(`${nft.name} — Token ID: ${nft.tokenId}`);
console.log(` Image: ${nft.imageUrl}`);
}
Step 3: Track ERC-20 Transfers
const transfers = await core.client.request({
method: 'qn_getWalletTokenTransactions',
params: [{
address: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
contract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
page: 1,
perPage: 10,
}],
});
for (const tx of transfers.result.transfers) {
console.log(`${tx.from} -> ${tx.to}: ${tx.value} at block ${tx.blockNumber}`);
}
Step 4: Standard ERC-20 Balance (No Add-on Required)
import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider(process.env.QUICKNODE_ENDPOINT);
const erc20Abi = ['function balanceOf(address) view returns (uint256)', 'function decimals() view returns (uint8)', 'function symbol() view returns (string)'];
const token = new ethers.Contract('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', erc20Abi, provider);
const [balance, decimals, symbol] = await Promise.all([
token.balanceOf('0xWalletAddress'),
token.decimals(),
token.symbol(),
]);
console.log(`${symbol} balance: ${ethers.formatUnits(balance, decimals)}`);
Output
- ERC-20 token balances for any wallet
- NFT metadata with images and attributes
- Transfer history for token tracking
- Direct contract reads for standard operations
Error Handling
| Error | Cause | Solution |
|---|---|---|
Method not found: qn_* | Add-on not enabled | Enable in QuickNode Dashboard |
| Empty results | No tokens at address | Verify address is correct |
call revert on balanceOf | Wrong contract address | Verify ERC-20 contract |
Resources
Next Steps
Handle errors: quicknode-common-errors