Some service providers do charge up to 20% while some do charge lower depending on what could be available on the wallet. To me charging more than 20% is too much for a service retrieval to collect as fee. The fee can be stabled, not tagged to percentage of what could be on the wallet. If fee is determined by what is in the wallet, then there will be some retrieval services that will be earning close to $100k or more depending on what's available on the wallet address. This also might be lesser when fund in the wallet is below $1k.
It is okay to charge on percentage on what is available on the wallet but i will agree with you here that charging above 20% is way too high for the client to deal with irrespective of the fact that it is a recovery services. If the client did not seek their services, would they have had such opportunity to have such a percentage pay? In terms of a stable fee, that would be quite alright when not tagged to a particular percentage, it could be a fixed price based on standard and not too exorbitant to start with. All things being equal, the price for charges should be moderate and if it will be cool to say this that the possibility of having a price range would be alright based on what is in the wallet.
Eg;
Amount Range Fee(%)
$100 - $1000 10%
$1000 - $10,000 8%
$10,000 - $20,000 6%
Maybe something like the above example could be a good one to start with.