client.transfers reads and streams ledger transfer history. Creating a movement uses a
purpose-specific service: client.internal_transfers, client.withdraw, or an on-chain helper.
page = await client.transfers.list(limit=50, reversed=True)
for transfer in page.transfers:
print(
transfer.tx_id,
transfer.asset_id,
transfer.amount,
transfer.transfer_type,
transfer.is_debit,
transfer.pending,
)
# An empty next_page_token marks the last page.
if page.next_page_token:
next_page = await client.transfers.list(
limit=50, reversed=True, page_token=page.next_page_token
)list accepts account / sub_account_id, limit, reversed, since, and page_token. since is an inclusive lower time bound in microseconds since the UTC Unix epoch. next_page_token is an opaque string: pass it back as page_token with the same scope, filters,
and direction.
Each LedgerTransfer also carries balance_after, the account bucket's balance after the transfer
as an exact integer at the 18-decimal ledger scale like amount (None when the server sent none),
and link_id, a decimal ID that groups related transfer legs (empty when none).
sub = await client.transfers.subscribe(account_id=client.default_account_id)
async with sub:
async for transfer in sub:
print(transfer.tx_id, transfer.amount)
breakThe stream is private and requires API key + Account ID.
Related: Internal transfers, Withdrawals.