In theory, all Dapps should be supported by Bitizen AA Wallet.
However, some Dapps are incompatible with smart wallets, most often because of design limitations or bugs. Most notably:
DApp | Domains |
---|---|
Looksrare | https://looksrare.org/ |
MyEtherWallet | https://www.myetherwallet.com/ |
Loopring | https://loopring.io/ |
dYdX | https://trade.dydx.exchange/portfolio/overview |
Pangolin | https://app.pangolin.exchange/ |
Unstoppable Domains | https://unstoppabledomains.com/ |
EPNS | https://app.push.org/ |
Curve | https://curve.fi/#/ethereum/swap |
Avalanche Bridge | https://core.app/bridge |
element | https://element.market |
tofunft | https://tofunft.com |
opensea | https://opensea.io |
luckychip | https://luckychip.io |
Sushi | https://www.sushi.com |
Synthetix | https://synthetix.iostaking.synthetix.io |
pooltogether | https://app.pooltogether.com |
Velodrome | https://app.velodrome.finance |
Meshswap | https://meshswap.fi |
MakerDAO (Oasis.app) | https://summer.fi |
Tetu | https://app.tetu.io |
Mirror.xyz | https://mirror.xyz |
BLUR | https://blur.io |
- (not a dApp) Binance deposits of $BNB on BSC and $MATIC on Polygon are not detected.
Bitizen Wallet has no control over those Dapps, even though we try our best to convince them to support Bitizen 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 web3@bitizen.org
*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 EIP 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.