VeChain Kit Docs
ResourcesPrivyVeChainChangelog
  • VeChain Kit
    • Intro
    • Quickstart
    • Migrations
      • Migrate from DAppKit
      • Migrate Social Login Users
      • Smart Accounts v1 to v3
    • Troubleshooting
    • Connection Types
    • Send Transactions
    • Sign Messages
    • Text Records (avatar & co.)
    • Hooks
      • Wallet
      • Smart Account
      • Blockchain Hooks
      • Oracle
      • VeBetterDAO
      • veDelegate
      • vetDomains
      • Utils
      • Indexer
      • Ipfs
      • NFTs
      • Transactions
      • Signing
      • Login
    • Components
      • WalletButton
      • Open targeted modals
      • Profile Card
      • Transaction Modal
      • Transaction Toast
  • Configs
  • Utils
  • Social Login
    • Embedded Wallets
    • Smart Accounts
    • Fee Delegation
Powered by GitBook
On this page
  • useCurrentBlock()
  • useTxReceipt()
  • Utility Functions
  • getEvents()
  • getAllEvents()

Was this helpful?

Edit on GitHub
Export as PDF
  1. VeChain Kit
  2. Hooks

Blockchain Hooks

useCurrentBlock()

Fetches the current block from the blockchain with automatic updates.

const { data, isLoading, error } = useCurrentBlock();

Features:

  • Auto-refreshes every 10 seconds

  • Caches data for 1 minute

  • Returns the latest block information as Connex.Thor.Block

Example:

function BlockInfo() {
  const { data: block } = useCurrentBlock();
  
  return <div>Current Block: {block?.number}</div>;
}

useTxReceipt()

Polls the blockchain for a transaction receipt until it is found or times out.

const { data, isLoading, error } = useTxReceipt(txId, blockTimeout);

Parameters:

  • txId: (string) The transaction ID to monitor

  • blockTimeout: (optional number) Number of blocks to wait before timing out (default: 5)

Returns:

  • data: Transaction receipt (Connex.Thor.Transaction.Receipt)

  • isLoading: Boolean indicating if the receipt is being fetched

  • error: Error object if the operation fails

Example:

function TransactionStatus({ txId }) {
  const { data: receipt, isLoading } = useTxReceipt(txId);
  
  if (isLoading) return <div>Loading...</div>;
  return <div>Transaction Status: {receipt?.reverted ? 'Failed' : 'Success'}</div>;
}

Utility Functions

getEvents()

Fetches events from the blockchain based on specified criteria.

const events = await getEvents({
  nodeUrl,
  thor,
  filterCriteria,
  order: 'asc',
  offset: 0,
  limit: 1000,
  from: 0,
  to: undefined
});

getAllEvents()

Iteratively fetches all events matching the criteria, handling pagination automatically.

const allEvents = await getAllEvents({
  nodeUrl,
  thor,
  filterCriteria,
  order: 'asc',
  from: 0,
  to: undefined
});

Parameters for getEvents/getAllEvents:

  • nodeUrl: VeChain node URL

  • thor: Thor client instance

  • filterCriteria: Array of event filter criteria

  • order: Sort order ('asc' or 'desc')

  • from: Starting block number

  • to: Ending block number

  • offset: (getEvents only) Number of events to skip

  • limit: (getEvents only) Maximum number of events to return

These hooks and functions are designed to work with the VeChain blockchain and require the VeChain Kit context to be properly set up in your application.

PreviousSmart AccountNextOracle

Last updated 3 months ago

Was this helpful?