TriportRPC

Get wallet transaction history

GEThttps://api.triport.io/v1/eth/wallet/history/0x742d35Cc6634C0532925a3b844Bc9e7595f06b8b?limit=2

Returns a paginated list of an Ethereum address's transactions, decoded from an internal indexer over execution traces and receipts.

Ethereumeth_walletbasic tier (per-tier RPS with burst ×2; see [Rate limits & tiers](../../rate-limits-and-tiers.md))

Returns a page of transactions in which the given address appears as sender or recipient. Each entry is an EthTransactionSummary — the transaction hash, block placement, counterparties, transferred value, gas accounting, execution status, and the decoded method that was called.

The data comes from an internal indexer built over execution traces and receipts, so results include internal/contract interactions that a raw eth_getTransactionByHash walk would miss, and each item carries a human-readable method (decoded 4-byte selector) where one could be resolved.

Use this endpoint to render an account activity feed or to reconcile a wallet's on-chain history. For the live balance of the same address use Get wallet balance; for token holdings see Get ERC-20 token balances.

Pagination

Results are paginated. Two mechanisms are available and can be combined:

  • before (cursor, recommended). Pass the hash of the oldest item from the previous page to fetch the next, older page. This is stable across newly indexed transactions and is the preferred way to walk a full history.
  • limit / offset (windowed). Classic page-size + skip. Convenient for jumping to a known position, but susceptible to drift if new transactions are indexed between requests.

Parameters

Path parameters

addressstringrequired
Ethereum address, 0x-prefixed, 40 hex chars (^0x[0-9a-fA-F]{40}$).
Query parametersobject
beforestringoptional
Tx-hash cursor. Returns transactions older than this hash (typically the last hash from the previous page).
limitintegeroptional
Page size, 1–1000 (default 50).
offsetintegeroptional
Number of items to skip from the start of the result set (default 0).

Response

To page through history, set before on the next request to the hash of the last item you received. The pagination object carries the shared limit / offset / total fields; total may be absent when it is expensive to compute.

addressstring
The queried address, echoed back.
itemsarray<EthTransactionSummary>
Page of transaction summaries (see below).
paginationobject
limit / offset / total; see pagination.

Errors

CodeMeaningWhen it happens
401unauthorized / trial_expired / subscription_expiredMissing, malformed, or invalid credentials, or an expired trial/subscription.
403tier_insufficient / method_unknownKey's plan is below basic (response includes current_tier / required_tier and the X-Required-Tier header).
429rate_limitedSustained RPS over the tier ceiling; honour the Retry-After header (also returns limit_rps / retry_after_sec).

All errors use the shared Triport error envelope. See Errors for the full structure and handling guidance.

Examples

JavaScript (fetch)

const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f06b8b";


const res = await fetch(
  `https://api.triport.io/v1/eth/wallet/history/${address}?limit=50`,
  {
    headers: {
      Authorization: `Bearer ${process.env.TRIPORT_API_KEY}`,
      "Content-Type": "application/json",
    },
  }
);


if (!res.ok) {
  throw new Error(`history failed: ${res.status}`);
}


const page = await res.json();
for (const tx of page.items) {
  console.log(tx.hash, tx.status, tx.method ?? "(transfer)", tx.value_wei);
}

TypeScript SDK (@triport/sdk)

import { TriportClient } from "@triport/sdk";


const client = new TriportClient({ apiKey: process.env.TRIPORT_API_KEY! });


// Walk the full history page by page using the `before` cursor.
let before: string | undefined;
do {
  const page = await client.eth.wallet.history({
    address: "0x742d35Cc6634C0532925a3b844Bc9e7595f06b8b",
    limit: 100,
    before,
  });


  for (const tx of page.items) {
    console.log(tx.blockNumber, tx.hash, tx.status);
  }


  before = page.items.at(-1)?.hash;
} while (before);

Python (triport-sdk)

import os
from triport import TriportClient


client = TriportClient(api_key=os.environ["TRIPORT_API_KEY"])


before = None
while True:
    page = client.eth.wallet.history(
        address="0x742d35Cc6634C0532925a3b844Bc9e7595f06b8b",
        limit=100,
        before=before,
    )
    for tx in page.items:
        print(tx.block_number, tx.hash, tx.status, tx.method)


    if not page.items:
        break
    before = page.items[-1].hash

Notes

  • Counterparty coverage. Entries include transactions where the address is either from or to, including internal transfers surfaced from trace data.
  • u256 fields are strings. value_wei and gas_price_wei are returned as decimal strings to avoid precision loss; parse them with a big-integer type.
  • Contract creations. to is null when the transaction deploys a contract.
  • Cursor over offset. For long histories prefer the before cursor; it is resilient to new transactions being indexed mid-walk, whereas offset can skip or repeat rows.
  • Related endpoints: Get wallet balance, Get ERC-20 token balances, Get NFT holdings.