Documentation

Remote Inject is a browser extension that bridges any desktop dApp to a mobile wallet using the open WalletPair protocol. This page covers what it is and how to use it; the wire-level protocol is specified in full at walletpair.org.

Get started

Architecture

The extension runs three parts: a MAIN-world provider that exposes an EIP-1193 / EIP-6963 wallet to the page, an isolated content script that bridges messages, and a background service worker that owns the encrypted WalletPair channel (the dApp side). When a dApp calls a signing method, the worker seals it with ChaCha20-Poly1305 and sends it over the relay.

On your phone, the bridge page is the WalletPair wallet side: it runs inside your mobile wallet's dApp browser, wraps that wallet's own window.ethereum, and signs there — which is why any mobile wallet with a dApp browser works. The relay at wss://relay.walletpair.org/v1 sees connection metadata but never your plaintext or keys.

Protocol specifications

Remote Inject implements the WalletPair protocol unchanged. For the normative specs — byte layouts, key derivation, and the formal-verification model — see the WalletPair documentation:

FAQ

What is Remote Inject?
A browser extension that makes any desktop dApp think a wallet is installed, while the actual signing happens on your phone. It speaks the WalletPair protocol to a mobile wallet you pair by QR code.
How is it different from WalletConnect?
No project ID, no account, no registration. The transport is a single stateless WebSocket relay that only forwards encrypted frames. You can use the public relay or self-host your own.
What is WalletPair?
The open protocol Remote Inject is built on. It defines the pairing, encryption, relay, and EVM message layers; its pairing and encryption core is formally verified in ProVerif. The normative specifications live at walletpair.org.
Which wallets work?
Any mobile wallet with a built-in dApp browser — MetaMask, OKX, TokenPocket, imToken, Trust, and more. You open the Remote Inject bridge page inside the wallet; that page is the WalletPair wallet side and wraps your wallet’s own provider. WalletPair-native wallets can also scan the raw pairing URI directly.
Where do my keys live?
Only on your phone. The extension holds no key material — it forwards encrypted EIP-1193 requests to your wallet and returns the signed results.