Skip to content

portfolio.transactions

Methods exposed through client.portfolio.transactions.

history

Fetches historical transactions for wallet addresses across supported networks. Alchemy documents this endpoint as beta and recommends migrating to alchemy_getAssetTransfers.

Parameters:

Name Type Description Default
request TransactionHistoryRequest

Request payload.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
TransactionHistoryResponse

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/portfolio/transactions/history.py
async def history(self, request: TransactionHistoryRequest, *, validate: bool | None = None) -> TransactionHistoryResponse:
  """Fetches historical transactions for wallet addresses across supported networks. Alchemy documents this endpoint as beta and recommends migrating to `alchemy_getAssetTransfers`.

  Args:
    request: Request payload.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transaction-history-by-address)
    """
  r = await self.request('POST', '/transactions/history/by-address', json=request)

  if r.status_code != 200:
    self.raise_error(r)
  return adapter.json(r.text) if self.should_validate(validate) else r.json()

history_paged

Paged version of the transaction history endpoint.

Parameters:

Name Type Description Default
request TransactionHistoryBaseRequest

Request payload.

required
validate bool | None

Validation override for each request.

None

Returns:

Type Description
PaginatedResponse[PortfolioTransaction, str]

An async iterable and awaitable paginated response over historical transactions.

References
Source code in pkg/src/alchemy/api/portfolio/transactions/history.py
def history_paged(
  self, request: TransactionHistoryBaseRequest, *, validate: bool | None = None,
) -> PaginatedResponse[PortfolioTransaction, str]:
  """Paged version of the transaction history endpoint.

  Args:
    request: Request payload.
    validate: Validation override for each request.

  Returns:
    An async iterable and awaitable paginated response over historical transactions.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/portfolio-apis/portfolio-api-endpoints/portfolio-api-endpoints/get-transaction-history-by-address)
  """
  async def next(state: str):
    page_request: TransactionHistoryRequest = {**request}
    if state:
      page_request['after'] = state
    response = await self.history(page_request, validate=validate)
    return response['transactions'], response.get('after')

  return PaginatedResponse('', next)