Get wallet transaction history
https://api.triport.io/v1/eth/wallet/history/0x742d35Cc6634C0532925a3b844Bc9e7595f06b8b?limit=2Returns a paginated list of an Ethereum address's transactions, decoded from an internal indexer over execution traces and receipts.
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 thehashof 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
addressstringrequired0x-prefixed, 40 hex chars (^0x[0-9a-fA-F]{40}$).Query parametersobjectbeforestringoptionalhash from the previous page).limitintegeroptionaloffsetintegeroptionalResponse
To page through history, set
beforeon the next request to thehashof the last item you received. Thepaginationobject carries the sharedlimit/offset/totalfields;totalmay be absent when it is expensive to compute.
addressstringitemsarray<EthTransactionSummary>paginationobjectErrors
| Code | Meaning | When it happens |
|---|---|---|
401 | unauthorized / trial_expired / subscription_expired | Missing, malformed, or invalid credentials, or an expired trial/subscription. |
403 | tier_insufficient / method_unknown | Key's plan is below basic (response includes current_tier / required_tier and the X-Required-Tier header). |
429 | rate_limited | Sustained 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].hashNotes
- Counterparty coverage. Entries include transactions where the address is
either
fromorto, including internal transfers surfaced from trace data. - u256 fields are strings.
value_weiandgas_price_weiare returned as decimal strings to avoid precision loss; parse them with a big-integer type. - Contract creations.
toisnullwhen the transaction deploys a contract. - Cursor over offset. For long histories prefer the
beforecursor; it is resilient to new transactions being indexed mid-walk, whereasoffsetcan skip or repeat rows. - Related endpoints: Get wallet balance, Get ERC-20 token balances, Get NFT holdings.