[Supanode](https://supanode.xyz/)[Learn](https://supanode.xyz/learn)Find native transfers inside EVM contract execution

# Find native transfers inside EVM contract execution

Know when event logs are sufficient and when a call trace is necessary.

**On this page**[Execution does not automatically emit an event](https://supanode.xyz/learn/internal-transactions-not-in-logs#execution-does-not-automatically-emit-an-event)[Use the correct evidence](https://supanode.xyz/learn/internal-transactions-not-in-logs#use-the-correct-evidence)[Interpret a trace carefully](https://supanode.xyz/learn/internal-transactions-not-in-logs#interpret-a-trace-carefully)[Choose a durable index](https://supanode.xyz/learn/internal-transactions-not-in-logs#choose-a-durable-index)[Sources](https://supanode.xyz/learn/internal-transactions-not-in-logs#sources)

## Execution does not automatically emit an event

A contract can send native currency during execution without emitting a corresponding log. Block explorers often call these movements "internal transactions", but they are execution effects inside an outer signed transaction. They do not have independent transaction hashes or nonces.

## Use the correct evidence

```
{"jsonrpc":"2.0","id":1,"method":"debug_traceTransaction","params":["HASH",{"tracer":"callTracer"}]}
```

This example uses a client-specific debug API, not a universally available Ethereum method. Check endpoint support and historical-state requirements first. Supanode's Robinhood method documentation lists its supported tracing methods.

## Interpret a trace carefully

1.  Check the outer receipt status. Failed execution can revert effects that appeared in an intermediate call.
2.  Walk nested call frames and record the caller, callee, value and error state.
3.  Distinguish CALL from DELEGATECALL and other frame types; a displayed value is not always a separate balance transfer.
4.  For Arbitrum-derived networks, inspect the documented extra system-transfer fields where applicable.

## Choose a durable index

If your application needs every native payment to an address, a Transfer-event index alone is incomplete. Define whether you need top-level value, successful internal calls, protocol transfers or all three. Build fixtures for successful and reverted paths. Trace availability also depends on historical state, so storing receipts from genesis does not guarantee tracing any historical transaction. Preserve parsed evidence when it is collected if later auditability matters.

## Sources

-   [Geth callTracer](https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers)
-   [Supanode supported tracing](https://supanode.xyz/docs/robinhood/rpc/whats-available)

## Continue reading

[Robinhood RPC and WebSocket](https://supanode.xyz/blog/robinhood-chain-rpc-websocket)[Robinhood methods](https://supanode.xyz/docs/robinhood/rpc/whats-available)[Learn library](https://supanode.xyz/learn)

---
Source: https://supanode.xyz/learn/internal-transactions-not-in-logs
