Skip to main content
AI/MLjeremylongshore

quicknode-core-workflow-a

"QuickNode core workflow a \u2014 blockchain RPC and Web3 infrastructure\

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--quicknode-core-workflow-a
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/quicknode-pack/skills/quicknode-core-workflow-a/SKILL.md -o .claude/skills/quicknode-core-workflow-a.md

Drops the SKILL.md into .claude/skills/quicknode-core-workflow-a.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

QuickNode Core Workflow A

Overview

Build EVM transaction workflows: send ETH, interact with contracts, listen for events, and handle gas estimation.

Prerequisites

  • Completed quicknode-hello-world
  • A funded wallet (use testnet for development)

Instructions

Step 1: Send ETH Transaction

import { 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}`);

Step 2: Call Contract Write Function

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}`);

Step 3: Listen for Events (WebSocket)

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)}`);
});

Step 4: Gas Estimation

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`);

Output

  • ETH transfer with receipt confirmation
  • Smart contract interaction
  • Real-time event listening via WebSocket
  • Gas estimation before transactions

Error Handling

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

Resources

Next Steps

NFT and token APIs: quicknode-core-workflow-b