Parsed Transaction History

Parsed Transaction History for any given address.

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

Attention: we only parse NFT, Jupiter, and SPL related transactions so far. Do not rely on these parsers for DeFi or non-NFT, Jupiter, and SPL transactions.

v0/addresses/:address/transactions

Returns the enriched transaction history for a given address. For a full list of Transaction Types and Sources, please see Transaction Types.

Mainnet URL: https://api.helius.xyz/v0/addresses/{address}/transactions Devnet URL: https://api-devnet.helius.xyz/v0/addresses/{address}/transactions

With no parameters set, this will return the latest transactions for an address.

Code Samples

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

NFT Sale Transaction Example

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

Wallet Transaction Example

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

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

Last updated