Skills Development Manage Blockchain Web3 Transactions and Events

Manage Blockchain Web3 Transactions and Events

v20260423
quicknode-core-workflow-a
This detailed workflow guides developers through essential Ethereum Virtual Machine (EVM) transaction processes using QuickNode infrastructure. It covers core functionalities such as initiating ETH transfers, calling smart contract write functions, setting up real-time event listeners via WebSocket, and accurately estimating gas costs. It is ideal for building robust decentralized applications (dApps) and blockchain backend services.
Get Skill
64 downloads
Overview

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

Info
Category Development
Name quicknode-core-workflow-a
Version v20260423
Size 3.13KB
Updated At 2026-04-28
Language