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.

Environment:

🔗 Unified Deeplink Structure

All perps deeplinks use a single unified entry point: /perps

Screen parameter values:

  • /perps or screen=tabs → Wallet home with Perps tab
  • screen=home → PerpsHomeView (positions, orders, watchlist)
  • screen=markets → Same as home (backwards compatibility)
  • screen=market-list → Full market browser with filters
  • screen=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=home or screen=markets → PerpsHomeView
  • screen=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

  1. Toggle environment above to switch between Production and Development URLs
  2. Open this page on your mobile device or scan a QR code
  3. Ensure MetaMask Mobile is installed (debug build for Development, production for Production)
  4. Tap "Open Link" or scan the QR code
  5. 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