Parsed Transaction History

Parsed Transaction History for any given address.

Enhanced Transaction API V1 won't be updated while we work on V2.

Endpoints

Replace {address} with the specific address for which you want to retrieve transaction data.

  • Mainnet – https://api.helius.xyz/v0/addresses/{address}/transactions

  • Devnethttps://api-devnet.helius.xyz/v0/addresses/{address}/transactions

Parsed Transaction History

Returns the enriched transaction history for a given address. For a full list of Transaction Types and Sources, please see Transaction Types. With no parameters set, this will return the latest transactions for an address.

We only parse NFT, Jupiter, and SPL related transactions. Do not rely on these parsers for DeFi or non-NFT, Jupiter, and SPL transactions.

Occasionally, this endpoint may return an incomplete set of transactions due to internal timeouts during data retrieval.

To mitigate this issue, we recommend to:

  1. First, call getSignaturesForAddress to retrieve a batch of transaction signatures.

  2. Next, use the /v0/transactions endpoint with the received signatures.

  3. If any transactions are missing from the response. You can retry fetching these transactions.

Code Examples

Basic Example
parseTransactions.js
const url = "https://api.helius.xyz/v0/addresses/M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K/transactions?api-key=<your-key>";

const parseTransactions = async () => {
  const response = await fetch(url);
  const data = await response.json();
  console.log("parsed transactions: ", data);
};

parseTransactions();
Fetch all transactions using Pagination
let base_url = `https://api.helius.xyz/v0/addresses/2k5AXX4guW9XwRQ1AKCpAuUqgWDpQpwFfpVFh3hnm2Ha/transactions?api-key=<api-key>`;
let url = base_url;
let lastSignature = null;

const fetchAndParseTransactions = async () => {
  while (true) {
    if (lastSignature) {
      url = base_url + `&before=${lastSignature}`;
    }
    const response = await fetch(url);
    const transactions = await response.json();

    if (transactions && transactions.length > 0) {
      console.log("Fetched transactions: ", JSON.stringify(transactions));
      lastSignature = transactions[transactions.length - 1].signature;
    } else {
      console.log("No more transactions available.");
      break;
    }
  }
};
fetchAndParseTransactions();

Fetch NFT Sale Transaction
const tokenAddress = "GjUG1BATg5V4bdAr1csKys1XK9fmrbntgb1iV7rAkn94"
// NFT TRANSACTION SEARCH
const url = `https://api.helius.xyz/v0/addresses/${tokenAddress}/transactions?api-key=${apiKey}&type=NFT_SALE`

const parseNFT = async () => {
  const response = await fetch(url);
  const data = await response.json();
  console.log("nft transactions: ", data);
};

parseNFT();
Fetch Transactions of a Wallet
const walletAddress = "2k5AXX4guW9XwRQ1AKCpAuUqgWDpQpwFfpVFh3hnm2Ha"
// WALLET TRANSACTION SEARCH
const url = `https://api.helius.xyz/v0/addresses/${walletAddress}/transactions?api-key=${apiKey}`

const parseWallet = async () => {
  const response = await fetch(url);
  const data = await response.json();
  console.log("wallet transactions: ", data);
};

parseWallet();

Last updated