WalletPair
WalletPair lets a dApp use a Wallet on another device. It is a short list of functions, each with a name, an input and an output, that a dApp calls on a Wallet, and one event the Wallet sends back. It supports Ethereum and other EVM chains only.
The messages travel over PeerConnect, which provides the relay, pairing, end-to-end encryption and reliable delivery. WalletPair runs no servers of its own.
How it works
- The dApp creates a PeerConnect room and shows
walletpair:followed by the invite as a QR code. - The Wallet scans it and joins the room.
- The dApp calls
walletpair_connectwith the networks it wants. The user approves in the Wallet, and the dApp receives the accounts and active chain of each approved network. - The dApp calls functions such as
personal_signoreth_sendTransaction. The Wallet asks the user, then answers. - Whenever accounts or chains change, the Wallet sends a
stateevent. - Either side ends the session by closing the room.
Functions
| Network | Functions |
|---|---|
| All | walletpair_connect, walletpair_cancel |
| EVM | personal_sign, eth_signTypedData_v4, eth_sendTransaction, wallet_sendCalls, wallet_getCallsStatus, wallet_getCapabilities, wallet_switchEthereumChain, wallet_addEthereumChain |
Inputs, outputs and errors are in the Protocol: the Core and one document per network.
Try it
The demo runs a dApp and a test-only wallet side by side in this site, connected through the extension, on all three networks. The demo wallet also works on its own with any dApp in another tab.
For dApp developers
With the browser extension installed, your dApp needs no changes. The extension offers an EIP-1193 provider announced through EIP-6963, the way EVM applications look for wallets. wagmi, viem and ethers find it like any installed wallet.
For Wallet developers
A Wallet joins the room from the QR code with a PeerConnect client, answers the functions of the
networks it supports, and sends the state event. The Protocol is all there is to implement; its test vectors check your
parsing and give the exact signatures to expect for fixed keys.