MetaMask Perps Deep Links Tester
Test deep links for MetaMask Mobile perpetuals trading feature. Scan QR codes with your mobile device or copy links for testing.
🔗 Unified Deeplink Structure
All perps deeplinks use a single unified entry point: /perps
Screen parameter values:
/perpsorscreen=tabs→ Wallet home with Perps tabscreen=home→ PerpsHomeView (positions, orders, watchlist)screen=markets→ Same as home (backwards compatibility)screen=market-list→ Full market browser with filtersscreen=asset&symbol=X→ Asset-specific trading pages
Tab parameter (for market-list): tab=all|crypto|stocks
HIP-3 symbol format: dex:symbol (e.g., xyz:TSLA)
📱 Smart Routing Behavior
First-time users: All perps links redirect to tutorial for proper onboarding
Returning users are routed based on the screen parameter:
- No parameter or
screen=tabs→ Wallet home with Perps tab screen=homeorscreen=markets→ PerpsHomeViewscreen=market-list→ PerpsMarketListView (with optional tab filter)screen=asset&symbol=X→ PerpsMarketDetailsView
Navigation Options
Test different navigation entry points using the unified /perps endpoint with various screen parameters.
Market List Links
Test market discovery deeplinks using /perps?screen=market-list with optional tab filter parameter.
Asset Trading Links
Test asset-specific deeplinks using /perps?screen=asset&symbol=X format. Supports standard crypto symbols and HIP-3 format (dex:symbol).
Testing Instructions
📱 Mobile Testing
- Toggle environment above to switch between Production and Development URLs
- Open this page on your mobile device or scan a QR code
- Ensure MetaMask Mobile is installed (debug build for Development, production for Production)
- Tap "Open Link" or scan the QR code
- MetaMask should open to the specific perps page
🖥️ iOS Simulator
Production URLs:
# Wallet tab navigation xcrun simctl openurl booted "https://link.metamask.io/perps" xcrun simctl openurl booted "https://link.metamask.io/perps?screen=tabs" # Home view xcrun simctl openurl booted "https://link.metamask.io/perps?screen=home" xcrun simctl openurl booted "https://link.metamask.io/perps?screen=markets" # Market list with filters xcrun simctl openurl booted "https://link.metamask.io/perps?screen=market-list" xcrun simctl openurl booted "https://link.metamask.io/perps?screen=market-list&tab=crypto" xcrun simctl openurl booted "https://link.metamask.io/perps?screen=market-list&tab=stocks" # Asset trading (crypto) xcrun simctl openurl booted "https://link.metamask.io/perps?screen=asset&symbol=BTC" xcrun simctl openurl booted "https://link.metamask.io/perps?screen=asset&symbol=ETH" # Asset trading (HIP-3) xcrun simctl openurl booted "https://link.metamask.io/perps?screen=asset&symbol=xyz:TSLA"
Development URLs:
# Wallet tab navigation xcrun simctl openurl booted "https://link-test.metamask.io/perps" xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=tabs" # Home view xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=home" xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=markets" # Market list with filters xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=market-list" xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=market-list&tab=crypto" xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=market-list&tab=stocks" # Asset trading (crypto) xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=asset&symbol=BTC" xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=asset&symbol=ETH" # Asset trading (HIP-3) xcrun simctl openurl booted "https://link-test.metamask.io/perps?screen=asset&symbol=xyz:TSLA"
🤖 Android Testing
Production URLs:
# Wallet tab navigation adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps" io.metamask # Home view adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=home" io.metamask # Market list with filters adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=market-list" io.metamask adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=market-list&tab=crypto" io.metamask adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=market-list&tab=stocks" io.metamask # Asset trading (crypto & HIP-3) adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=asset&symbol=BTC" io.metamask adb shell am start -W -a android.intent.action.VIEW \ -d "https://link.metamask.io/perps?screen=asset&symbol=xyz:TSLA" io.metamask
Development URLs:
# Wallet tab navigation adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps" io.metamask.debug # Home view adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=home" io.metamask.debug # Market list with filters adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=market-list" io.metamask.debug adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=market-list&tab=crypto" io.metamask.debug adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=market-list&tab=stocks" io.metamask.debug # Asset trading (crypto & HIP-3) adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=asset&symbol=BTC" io.metamask.debug adb shell am start -W -a android.intent.action.VIEW \ -d "https://link-test.metamask.io/perps?screen=asset&symbol=xyz:TSLA" io.metamask.debug
Alternative Domains:
You can also test with these alternative domains:
- Production:
https://metamask.app.link - Development:
https://metamask.test-app.link