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:
Encryption protocol →
QR pairing, X25519 + HKDF key schedule, the four-digit code, and ChaCha20-Poly1305 framing.
Relay protocol →
The stateless WebSocket relay: /v1 connection fields, channel_joined, and frame routing.
Ethereum protocol →
The EIP-1193 provider surface, supported methods, events, and error codes over eip155 frames.
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.