Find Wallet Transactions

This example prints all transactions involving a specific wallet address:

import ogmios

target_addr = "addr_test1vzpwq95z3xyum8vqndgdd9mdnmafh3djcxnc6jemlgdmswcve6tkw"
batch_size = 1000


with ogmios.Client() as client:
    # Set chain pointer to origin
    point, _, _ = client.find_intersection.execute([ogmios.Origin()])

    txs_found = 0
    while True:
        # Batch requests to improve performance
        for i in range(batch_size):
            client.next_block.send()

        for i in range(batch_size):
            direction, tip, block, id = client.next_block.receive()
            if direction.value == "forward":
                # Find transactions involving the target address
                if isinstance(block, ogmios.Block) and hasattr(block, "transactions"):
                    for tx in block.transactions:
                        if tx.get("outputs"):
                            for output in tx["outputs"]:
                                if output["address"] == target_addr:
                                    txs_found += 1
                                    print(f"Transaction #{txs_found}: {tx.get('id')}")
                                    break

                # Stop when we've reached the network tip
                if tip.height == block.height:
                    print(f"Reached chain tip at slot {tip.slot}")
                    return

Example output:

../_images/find_wallet_transactions.png

Open this example on GitLab