Explain one transaction's routing and origin
explain_transactionClassify a single transaction against the attribution engine: which frontend or router originated the trade and by which evidence, the pools it touched, any fee recipients, and whether it was sandwiched.
Confidence is per-vector and is reported per result -- a calldata suffix is strong evidence a specific frontend tagged the swap, while a fee recipient is indirect evidence and is never rated high. Pass that qualification through instead of stating the frontend flatly.
estimated_volume_usd (only with price=true) is a best-effort spot price on the dominant leg. It is an approximation for orientation and must never be quoted as a settlement figure. Fee amounts are exact raw token integers with no decimals or pricing applied. deep=true costs more upstream credits; leave it off unless a shallow classification came back unattributed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | Run the deeper classification pass. Slower. Worth setting only when the default pass came back unattributed. | |
| chain | No | One of: ethereum, base, arbitrum, optimism. Defaults to ethereum, and an unrecognised value falls back to ethereum rather than failing, so pass the transaction's actual chain explicitly. | ethereum |
| price | No | Include price and value context alongside the routing classification. | |
| tx_hash | Yes | The transaction hash, 0x-prefixed hex. Must exist on `chain`: this does not search the other chains, so a hash from the wrong chain returns nothing rather than an error. |