To help users clearly understand what they are signing or approving, Utila decodes and enriches EVM call data using verified smart contract sources.
This behavior is consistent across both the Console and Mobile apps
Overview of call data decoding
When a transaction includes EVM call data, Utila attempts to fully decode and enrich it before the transaction is approved or signed.
The decoding flow includes:
Identifying the destination contract address
Fetching verified contract ABIs from supported block explorers
Detecting proxy contracts and resolving their implementation contracts
Decoding the function selector
Decoding function parameters
Enriching decoded output with human readable function names, parameter names, types, and values from your Utila vault.
This ensures users are not blindly signing raw hexadecimal data.
Data sources and supported chains
Utila fetches contract ABIs from verified contracts on supported EVM block explorers, such as Etherscan and equivalent explorers on other supported chains.
If a contract is verified, Utila can usually decode and display:
Function name
Parameter names
Parameter types
Decoded parameter values
If a contract is not verified, decoding may be partial or unavailable.
Utila also uses 4bytes directory to match known method ID / Function selector, to ensure known function on unverified contracts still remain visible to the users.
Proxy contract handling
Many smart contracts use proxy patterns. Utila detects common proxy standards and attempts to resolve the underlying implementation contract.
If the implementation contract is verified, Utila decodes the call data using the implementation ABI rather than the proxy interface, resulting in accurate function and parameter decoding.
Where to find decoded call data on the console
In the console, decoded call data is displayed directly within the transaction details pane, payload section. Click the transaction to display the transaction details in the right pane.
When applicable, the implementation proxy can be found under “Decoded info received from Etherscan”.
You can view the data in a table format, JSON, and raw call data.
Where to find decoded call data on the mobile app
On the mobile app, decoded call data is available within the transaction details screen. Tap a transaction to see the transaction details. then, in the Payload section, tap View details to see the decoded call data.
How to list a function on 4bytes.directory
Utila queries the open-source 4bytes.directory database to decode call data.
If the function signature exists in the public database, the method name and parameter values are displayed in the transaction details.
If the function is not listed, you can self-list it by following these steps:
Fetch the contract ABI. Most EVM block explorers provide the contract ABI under the Contract tab on the contract page.
Submit the ABI. Paste the ABI into the 4bytes.directory import tool.
Verify the function signature. Identify the 4-byte function signature by taking the first 8 characters after "0x" in the call data.
Example:
Given the call data:
0x864f6a7a000000000000000000000000b3f8b683dd4b163937e6d60d8e09a0497ed81b59...
The function signature is 0x864f6a7a.Wait for processing. Once the function appears in the public database, it may take up to 24 hours to be seen in Utila transactions.


