Skip to main content
When reviewing suspicious or flagged Ethereum transactions, analysts typically face raw hex data, token transfer logs, and opaque internal calls. ParaLens converts a transaction hash into structured evidence — classification, actor attribution, value flows, and engine-detected warnings — so your compliance team can triage faster and with more confidence, without building custom on-chain decoders.
ParaLens analyzes single transactions. Multi-transaction cluster analysis and wallet history are not currently available.

Signals for Compliance Review

The following TxReport fields are the most useful indicators of activity warranting further review. classification.actor_matches_signer: false The on-chain economic actor differs from the wallet that signed the transaction. This is normal for contract wallets and aggregators, but it is also a characteristic of proxy contracts, smart account abstraction setups, and MEV bots. Any flagged transaction with a signer/actor mismatch warrants inspection of both the signing address and the contract that executed the economic activity. economics.warnings[] The ParaLens engine surfaces anomalies detected during analysis. A common example is IntentActorDiffersFromSigner, which is emitted when the engine detects that the beneficiary of the transaction differs materially from the signer. Review all warnings before closing a triage case. Large inventory_deltas Review inventory_deltas[] sorted descending by usd.value. Unexpectedly large inflows or outflows relative to the signer’s known profile are a primary triage signal. intent_kind: MevBundle or FlashFundedArbitrage These intent kinds indicate complex, capital-efficient MEV activity. Flash-funded arbitrage borrows and repays funds within a single block, which can be used to manipulate prices without requiring permanent capital. Flag these for specialist review. classification.intent_kind: "TransactionReverted" A reverted transaction means the on-chain execution failed. Reverted transactions still consume gas and can indicate a failed attack attempt (e.g., a failed sandwich, a failed exploit, or a front-run that was beaten). They appear in the mempool and block history and should not be ignored.

Triage Workflow

1

POST the flagged tx hash

Submit the transaction hash to the /analyze endpoint.
2

Check intent classification

Read classification.intent_kind and classification.intent_label to establish the headline category. Note the confidence score — low confidence means the engine could not resolve a clear pattern and the transaction warrants deeper manual review.
3

Check actor/signer mismatch

Compare attribution.tx_signer with classification.actor. If actor_matches_signer is false, record both addresses and note the type of intermediary (contract wallet, bot, aggregator) for the case file.
4

Review economic warnings

Inspect economics.warnings[]. Each warning carries a machine-readable code and a human-readable message. Treat any warning as a reason to escalate or deepen the review.
5

Review inventory deltas by USD value

Sort inventory_deltas by usd.value descending and inspect the largest movements. Look for disproportionate inflows to the actor relative to their outflows — this is the hallmark of profitable MEV or exploitation.
6

Review motifs for structural evidence

Inspect motifs[] for the structural primitives the engine matched. The presence of ClosedValueFlow, FlashLoan, or Sandwich motifs is strong structural evidence of MEV activity. Use motif confidence scores to weight the evidence.
7

Cross-reference on Etherscan

Use tx.etherscan_url to open the transaction directly in the public block explorer for a secondary source of truth, raw log inspection, and contract verification status.

Attribution Fields

The attribution object identifies the three key parties to any Ethereum transaction.

Batch Triage

The ParaLens API is stateless — each /analyze call is fully independent. You can loop over a list of flagged transaction hashes and call the API for each one in parallel. The example below shows a simple batch triage pattern: