From quicknode-pack
Builds EVM transaction workflows using QuickNode and ethers.js: send ETH, call smart contracts, listen for events via WebSocket, estimate gas.
How this skill is triggered — by the user, by Claude, or both
Slash command
/quicknode-pack:quicknode-core-workflow-aThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build EVM transaction workflows: send ETH, interact with contracts, listen for events, and handle gas estimation.
Build EVM transaction workflows: send ETH, interact with contracts, listen for events, and handle gas estimation.
quicknode-hello-worldimport { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider(process.env.QUICKNODE_ENDPOINT);
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);
const tx = await wallet.sendTransaction({
to: '0xRecipientAddress',
value: ethers.parseEther('0.01'),
});
console.log(`TX sent: ${tx.hash}`);
const receipt = await tx.wait();
console.log(`Confirmed in block ${receipt!.blockNumber}, gas used: ${receipt!.gasUsed}`);
const contractAddress = '0xYourContract';
const abi = ['function transfer(address to, uint256 amount) returns (bool)'];
const contract = new ethers.Contract(contractAddress, abi, wallet);
const tx = await contract.transfer('0xRecipient', ethers.parseUnits('100', 18));
const receipt = await tx.wait();
console.log(`Transfer confirmed: ${receipt!.hash}`);
const wsProvider = new ethers.WebSocketProvider(process.env.QUICKNODE_WSS);
const contract = new ethers.Contract(contractAddress, ['event Transfer(address indexed from, address indexed to, uint256 value)'], wsProvider);
contract.on('Transfer', (from, to, value, event) => {
console.log(`Transfer: ${from} -> ${to}: ${ethers.formatUnits(value, 18)}`);
});
const gasEstimate = await contract.transfer.estimateGas('0xRecipient', ethers.parseUnits('100', 18));
const feeData = await provider.getFeeData();
const totalCost = gasEstimate * (feeData.gasPrice || 0n);
console.log(`Estimated gas: ${gasEstimate}, cost: ${ethers.formatEther(totalCost)} ETH`);
| Error | Cause | Solution |
|---|---|---|
insufficient funds | Wallet balance too low | Fund wallet or reduce amount |
nonce too low | Nonce conflict | Get latest nonce: provider.getTransactionCount(address) |
gas required exceeds allowance | Contract revert | Check contract requirements |
NFT and token APIs: quicknode-core-workflow-b
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin quicknode-packQueries Ethereum via QuickNode RPC with ethers.js: fetches block numbers, ETH balances, ERC-20 token balances, and transaction receipts for blockchain starters.
Builds Bankr SDK transactions for ERC20/ETH/NFT transfers, ETH/WETH conversions, cross-chain bridges, NFT minting/buying, approvals, and DeFi operations.
Generates TypeScript examples with Alchemy SDK to get ETH balance, fetch wallet NFTs, read ERC-20 token balances. For blockchain quickstarts, Alchemy setup testing.