Skip to Content
Solana PayFunctionsValidate Transfer

Validate a Transfer

def validate_transfer( client: Client, signature: str, transfer_fields: CreateTransferFields, commitment: Commitment | None = "confirmed", *, max_supported_transaction_version: int | None = 0, ) -> TransactionElement: ...
from decimal import Decimal from solathon.solana_pay import find_reference, validate_transfer fields = { "recipient": merchant_wallet, "amount": Decimal("0.01"), "reference": [reference], "memo": "order-1042", } found = find_reference(client, reference, commitment="confirmed") transaction = validate_transfer( client, found.signature, fields, commitment="confirmed", )

Validation supports native SOL, classic SPL Token, and basic Token-2022 payments. It checks transaction success, source/authority signing and account writability, recipient or derived recipient ATA, mint/program, exact amount, ordered read-only reference accounts, optional memo placement/content, and the recipient’s native or token balance increase.

Set max_supported_transaction_version only to a version your application and target RPC node support. Token validation requires the RPC response to include unique pre/post token balance entries for the destination account.