Understanding Transaction Filtering Across Multiple Postings

Last updated: March 10, 2025

When filtering transactions based on posting fields (like source and destination addresses), it's important to understand that filters apply across all postings within a transaction, not just individual postings.

How Cross-Posting Filters Work

If you filter for transactions where:

  • source = "world" AND

  • destination = "user:123"

The transaction will match if ANY of its postings have source="world" AND ANY of its postings have destination="user:123". The source and destination don't need to be in the same posting.

Example

For instance, this transaction would match the above filters because it contains:

{
  "postings": [
    {
      "source": "world",           // Matches source filter
      "destination": "order:abc:payment",
      "amount": 100,
      "asset": "USD/2"
    },
    {
      "source": "order:abc:payment",
      "destination": "platform:fee",
      "amount": 1,
      "asset": "USD/2"
    },
    {
      "source": "order:abc:payment",
      "destination": "user:123", // Matches destination filter
      "amount": 99,
      "asset": "USD/2"
    }
  ]
}

Even though no single posting has both source="world" AND destination="user:123", the transaction matches because the criteria are met across multiple postings.