I faced the same issue and this is how i solved it from web3 import Web3 import requests #Txn Hash 0xb26a0e7bec364162027da0b3fb3977d50371a5ecac5f762db976b1a76eb0a1ef web3 = Web3(Web3.HTTPProvider("Infura API")) sample_input= "0x5ae401dc00000000000000000000000000000000000000000000000000000000647aa465000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4472b43f30000000000000000000000000000000000000000066e61c22f323b208439e6460000000000000000000000000000000000000000000000000e4dfc066ae75a9b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000008888a185d4d83d4249acf0f8d262af2a5658b673000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000e4dfc066ae75a9b0000000000000000000000003b9a95822216c1d4951a9775aa4628e2f9edc5f000000000000000000000000000000000000000000000000000000000" v3UniRouter= web3.toChecksumAddress('0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45') v3UniAbi='ABI INPUT' v3UniContract = web3.eth.contract(address=v3UniRouter, abi=v3UniAbi) decoded = v3UniContract.decode_function_input(sample_input) print(decoded) multicall_data = decoded[1]['data'][0] nested_call_decoded = v3UniContract.decode_function_input(multicall_data) print(nested_call_decoded) [![enter image description here][1]][1] [1]: https://i.sstatic.net/qbJna.png