Skip to main content
This guide shows how to verify that a transfer (single or batch) was fully processed across both transactions.

Objective

By the end of this guide, you will:
  • Verify that both transactions (external and internal) succeeded
  • Calculate how many messages were successfully sent
  • Detect partial failures in batch transfers

Prerequisites

  • Completed wallet creation with funded balance
  • Sent at least one transfer (single or batch)
  • Know the query_id and created_at values used in the transfer

Verification overview

Highload Wallet v3 uses a two-transaction pattern. To verify full processing, you need to check both transactions:
  1. External transaction (Transaction 1): Validates the message and marks query_id as processed
  2. Internal transaction (Transaction 2): Processes the action list and sends outgoing messages
Even if processed? returns true, the internal transaction may have failed. Full verification requires checking both transactions. See Message sending flow for the complete two-transaction pattern.

Helper functions

Create helper functions for transaction search and parsing:

Step 1: Set up and check if processed

Load wallet configuration and check if the query_id was marked as processed:

Step 2: Find and verify external transaction

Search transaction history to find the external transaction by query_id and created_at:
If the external transaction failed, see Exit codes for troubleshooting.

Step 3: Find and verify internal transaction

Follow the transaction chain to find and verify Transaction 2:

Step 4: Calculate sent messages

Calculate how many messages were successfully sent:

Expected outputs

Full success

Partial success

External transaction failure

The query_id is marked as processed, but the transaction failed during validation. See Exit codes for troubleshooting.

Internal transaction failure

Transaction 1 succeeded (replay protection applied), but Transaction 2 failed. The query_id cannot be reused.

Action phase failure

Both transactions were executed, but the action phase failed to send messages.

Next steps

You can now verify any transfer to ensure it was fully processed. This is especially important for batch transfers where partial failures can occur.