Options
Explorer included wallets
Allows to set included wallets that are fetched from WalletConnect Explorer. You can define a list of wallets ids you'd like to prioritize (order is respected). You can get these ids from the explorer link mentioned before by clicking on a copy icon of your desired wallet card.
await Web3Modal.InitializeAsync(new Web3ModalConfig
{
includedWalletIds = new []
{
"c57ca95...74e97267d96",
}
});
Explorer excluded wallets
Allows to set excluded wallets that are fetched from WalletConnect Explorer. You can get these ids from the explorer link mentioned before by clicking on a copy icon of your desired wallet card.
await Web3Modal.InitializeAsync(new Web3ModalConfig
{
excludedWalletIds = new []
{
"c57ca95...74e97267d96",
}
});
Enable Installed Wallet Detection
To enable Web3Modal to detect wallets installed on mobile devices, you need to make specific changes to the native side of the project.
- Android
- iOS
- In Unity override Android Manifest.
- Add your
<queries>...</queries>
schemes outside of<application />
scope in the manifest file. - Refer to Android Specs for more information.
Example:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<queries>
<package android:name="io.metamask"/>
<package android:name="com.wallet.crypto.trustapp"/>
<package android:name="io.gnosis.safe"/>
<package android:name="me.rainbow"/>
<!-- Add other wallet schemes names here -->
</queries>
<application>
...
</application>
</manifest>
More wallet package names can be found in our sample AndroidManifest.xml.
Wallet detection may produce inaccurate results on iOS Simulator. It is recommended to test on a real device.
- Make an iOS build.
- In the generated Xcode project, find
Info.plist
file and open it with an external editor (i.e. not Xcode). - Locate or create
<key>LSApplicationQueriesSchemes</key>
section. - Add the desired wallet schemes as string entries within the
<array>
. These schemes represent the wallets you want to detect.
Example:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
...
<key>LSApplicationQueriesSchemes</key>
<array>
<string>metamask</string>
<string>trust</string>
<string>safe</string>
<string>rainbow</string>
<string>uniswap</string>
<string>zerion</string>
<string>imtokenv2</string>
<string>spot</string>
<string>omni</string>
<string>dfw</string>
<string>tpoutside</string>
<string>robinhood-wallet</string>
</array>
...
</dict>
</plist>
Fullscreen in WebGL
The default unityInstance.SetFullscreen(1)
method enables fullscreen for the canvas node by pushing
it to the top layer.
This causes the modal to be rendered behind the canvas, making it invisible to the user when fullscreen is enabled.
To fix this, AppKit creates a container around the canvas node and appends the modal UI to it. By requesting fullscreen on the container, the modal will always be rendered on top of the canvas.
// Use this instead of unityInstance.SetFullscreen(1) to enable full screen
document.querySelector('#canvas-container').requestFullscreen();