Skip to main content

Usage

const {
  data,
  isLoading,
  isError,
  isSuccess,
  error,
  refetch,
  fetchTransactionList,
} = useGetTransactionList({
  query: {
    page: 1,
    limit: 10,
    walletAddress: "0x...",
  },
  getBearerToken: getToken,
});

Input Parameters

ParameterTypeRequiredDescription
query.pagenumberNoPage number (default: 1)
query.limitnumberNoResults per page (default: 10)
query.walletAddressstringNoFilter by wallet address
query.calledFunctionstringNoFilter by contract function name
query.daynumberNoFilter by day (1–31)
query.monthnumberNoFilter by month (1–12)
query.yearnumberNoFilter by year
getBearerToken() => Promise<string>YesFunction returning the auth token
queryOptionsUseQueryOptionsNoReact Query options (e.g. staleTime, enabled)

Return Value

PropertyTypeDescription
dataPaginatedResponse<Transaction> | undefinedPaginated transaction results
isLoadingbooleanTrue while fetching
isErrorbooleanTrue if an error occurred
isSuccessbooleanTrue if the query succeeded
errorError | nullError when isError is true
refetch() => voidRe-run the query
fetchTransactionList(input) => Promise<PaginatedResponse<Transaction>>Imperatively fetch with custom params

Example Implementation

import { useGetTransactionList } from "@chipi-stack/chipi-react";
import { useAuth } from "@clerk/nextjs";
import { useState } from "react";

export function TransactionList({ walletAddress }: { walletAddress: string }) {
  const { getToken } = useAuth();
  const [page, setPage] = useState(1);

  const { data, isLoading, error } = useGetTransactionList({
    query: {
      page,
      limit: 10,
      walletAddress,
    },
    getBearerToken: getToken,
  });

  if (isLoading) return <p>Loading transactions...</p>;
  if (error) return <p>Error: {error.message}</p>;

  return (
    <div>
      <ul>
        {data?.items.map((tx) => (
          <li key={tx.id}>
            {tx.transactionHash} — {tx.status}
          </li>
        ))}
      </ul>
      <div>
        <button onClick={() => setPage((p) => Math.max(1, p - 1))} disabled={page === 1}>
          Previous
        </button>
        <span>Page {page}</span>
        <button onClick={() => setPage((p) => p + 1)}>Next</button>
      </div>
    </div>
  );
}