> ## Documentation Index
> Fetch the complete documentation index at: https://docs.b3os.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Debug Transaction

Debug and analyze any blockchain transaction to understand what it did on-chain. Returns decoded function calls, token transfers, event logs, revert reasons, and a plain-English summary. Ideal for: debugging failed transactions, understanding swap routes, auditing token movements, workflow error diagnosis.

![Debug Transaction logo](https://ai-icon.b3.fun/logo/ethereum)
Catalog action EVM Onchain

Debug and analyze any blockchain transaction to understand what it did on-chain. Returns decoded function calls, token transfers, event logs, revert reasons, and a plain-English summary. Ideal for: debugging failed transactions, understanding swap routes, auditing token movements, workflow error diagnosis.


## At a Glance

| Field | Value |
| --- | --- |
| Action ID | `debug-transaction` |
| Category | EVM Onchain |
| Connector | Not required |
| Requires gas | No |
| Funds movement | None declared |
| Tags | `blockchain`, `evm`, `transaction`, `debug`, `debugging`, `analysis`, `read` |

## Payload Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `txHash` | `string` | Yes | Transaction hash to debug \(0x-prefixed, 64 hex chars\) |
| `chainId` | `number` | Yes | Chain ID \(1=Ethereum, 8453=Base, 42161=Arbitrum, etc.\) |

## Result Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `tx_hash` | `string` | Yes | Transaction hash |
| `chain_id` | `number` | Yes | Chain ID |
| `status` | `string` | Yes | Transaction status: success or reverted |
| `summary` | `string` | Yes | Plain-English summary of what the transaction did |
| `error_message` | `string` | No | Decoded error/revert reason \(empty if successful\) |
| `from` | `string` | Yes | Sender address |
| `to` | `string` | Yes | Target contract/address |
| `value` | `string` | No | ETH value sent \(hex or decimal\) |
| `function_name` | `string` | No | Called function name or 4-byte selector |
| `gas_used` | `number` | No | Gas consumed by the transaction |
| `gas_limit` | `number` | No | Gas limit set for the transaction |
| `revert_output` | `string` | No | Raw revert data \(hex\) from the failing call |
| `tx_type` | `string` | Yes | Detected type: transfer, approve, swap, multicall, contract_call, unknown |
| `token_transfers` | `array` | No | Decoded token transfers with USD values |
| `events` | `array` | No | Decoded event logs |
| `call_trace` | `array` | No | Flattened call trace \(max 20 entries\) |
| `stack_trace` | `array` | No | Source code locations for errors |

## Examples

**Workflow node**

```json
{
  "type": "debug-transaction",
  "payload": {
    "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "chainId": 8453
  },
  "children": []
}
```
  **Test with API**

```bash
curl -X POST "https://api.b3os.org/v1/actions/debug-transaction/test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "chainId": 8453
  }
}'
```

**Use expressions for dynamic values**

Payload fields can use workflow expressions such as `{{$trigger.body.amount}}`, `{{$nodes.fetch.result.price}}`, and `{{$props.asset}}` when the value should come from a trigger, prior node, or reusable workflow prop.