In theory, all dApps should be supported by Ambire Wallet.
However, some dApps are incompatible with smart wallets, most often because of design limitations or bugs. Most notably:
-
Looksrare
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
MyEtherWallet
Recommendation to devs: implement support for smart contract signatures (ERC-1271) for signature verification* -
Loopring
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
dYdX
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
ZKSpace
Recommendation to devs: implement support for smart contract signatures (EIP 1271)* -
Pangolin
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
Unstoppable Domains
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
EPNS
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* -
Curve
Recommendation to devs: implement support for smart contract signatures (ERC-1271)* - Avalanche Bridge no support for smart contracts
- Bitrefill no support for smart contracts
- (not a dApp) Binance deposits of $BNB on BSC and $MATIC on Polygon are not detected. Read more about this here.
Ambire Wallet has no control over those dApps, even though we try our best to convince them to support Ambire Wallet and other smart wallets, and we are willing to help with code contributions / pull requests, as well as communication with the relevant teams. If you are part of one of those teams, feel free to reach out to us!
If you want to use one of these dApps, please message their support/team letting them know that they lack smart wallet support, and point them to this article.
If you're a developer and you need help to make your dApp compatible with Ambire, feel free to reach out to us via contactus@ambire.com
*Additional note to developers: In order to be able to handle any smart contract wallet like Ambire, Gnosis Safe, Argent and others, you should implement ERC-1271: https://eips.ethereum.org/EIPS/eip-1271
Basically, you need to detect whether the wallet is a smart contract wallet by checking if it has contract code (ethers.getCode), and if it does, you need to call isValidSignature rather than using ethers.validateSignature.
In the link below you will also find a library aiming to implement universal signature verification, supporting:
- Standard message verification (
eth_sign
) - EIP-712 Typed data verification (
eth_signTypedData_v*
) - ERC-1271 Smart contract on-chain verification (
isValidSignature
) - ERC-6492 - Signature verification for pre-deploy counterfactual contracts (eg if the smart wallet is counterfactual and not deployed yet)