Question: Normally I just do this on python:

```
token = web3.eth.contract(address=contract_address, abi=abi)
balance_in_wei = token.functions.balanceOf(wallet).call()

```

However, when the function isn't in the "Read Contract" tab, this code wouldn't work at all.
[![enter image description here](https://i.stack.imgur.com/B4xC2.png)](https://i.stack.imgur.com/B4xC2.png)

The balanceOf function can be found in "Read as Proxy".
[![enter image description here](https://i.stack.imgur.com/pz7oF.png)](https://i.stack.imgur.com/pz7oF.png)

*How could I call this function as proxy in web3 py?* For context, I'm trying to get my balance of USDC: <https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48>

Answer: 
same exact way. Just pretend it's there and it should work. Instantiate the contract with the ABI that you want to call (e.g. the one with balanceOf regardless of it's actually there or not)
You have to use the address of main contract and ABi of proxy contract to use main functions of these kind of smart contracts