Call Traces
Walnut Call Trace supports three types of calls: CALL, DELEGATE, and FUNCTION. Each represents a specific type of contract interaction on Starknet.
This page describes call trace semantics on Starknet. EVM transactions also surface CALL, DELEGATE, and FUNCTION frames in the Walnut debugger, but their meanings differ. EVM call trace semantics are not yet documented.
Each call item in a Walnut Call Trace is a "Frame." Frames represent the sequence of calls within a transaction.
CALL
CALL represents a regular contract call: a direct interaction between two contracts.
See an example transaction with a CALL frame.

For example, in the screenshot above, the function mint_and_deposit on the Ekubo:Positions contract calls the mint function on the Ekubo:PositionsNFT contract and lets it do the minting. The Ekubo:PositionsNFT contract creates the NFT, updates its own storage, and returns the newly minted token ID (type u64).
DELEGATE
DELEGATE represents a call to a function in a library from another contract class, using the storage of the caller contract. Any state changes made during this call affect the caller's storage, not the callee's (in this case, the library).
See an example transaction with a DELEGATE frame.

For example, in the screenshot above, IExchange.multi_route_swap initiates a sequence of calls to the Realms:LORDS Token contract to query balances (balanceOf) and perform token transfers (transferFrom). A delegate call is then made to the ISwapAdapter class to execute the logic for the swap. Any state changes made during this swap execution affect the storage of the caller contract (IExchange), not the ISwapAdapter contract.
FUNCTION
FUNCTION represents function calls that are internal to a given contract. These calls reveal the internal logic and computations within the contract, which is useful for debugging and auditing.
See an example transaction with a FUNCTION frame.

Public explorers typically don't display FUNCTION calls in their Call Trace components because blockchain nodes don't provide this data. Walnut works around this by re-simulating each transaction to reconstruct the full trace, including internal operations, and displays the entire execution flow.