would this form be better?
address(optional, when authenticated with MetaMask): A user address (i.e.
0x1a2b3x...). If specified, the user attached to the query is ignored and the address will be used instead.
to_block(optional): The block number on which the balances should be checked.
address(required, when not authenticated with MetaMask): The address for which the native balance will be checked.
Hmm, it’s not clear to me yet, when authenticated with MetaMask? :S
When user is authenticated then it tries to use current user address if no address is provided.
Then I guess the simplest approach would be to make it required no matter what. I guess you meant authenticated with Wallet and not MetaMask for the use case when authenticated with only e-mail. I would do it always required then the dev must not think about the differences, etc.