EVM Sub-Protocol
The EVM sub-protocol defines how WalletPair sessions interact with EIP-155 compatible chains
(Ethereum, Polygon, Arbitrum, Base, etc.). It is one of several sub-protocols that plug into the chain-agnostic core protocol.
Namespace: evm · Version: 1 · CAIP-2 prefix: eip155
All methods use the wallet_ prefix. Requests and responses are JSON objects
encrypted end-to-end by the core protocol.
Methods
| Method | Required | Description |
|---|
wallet_getAccounts | Yes | Return authorized accounts. Must not prompt. |
wallet_signTransaction | Yes | Sign a transaction without broadcasting. Returns signed RLP. |
wallet_sendTransaction | No | Sign and broadcast. Optional — cold wallets omit this. |
wallet_signMessage | Yes | EIP-191 personal sign. Not chain-bound. |
wallet_signTypedData | Yes | EIP-712 structured data signature. |
wallet_switchChain | Yes | Switch active chain. Must also emit chainChanged. |
wallet_addChain | No | Add a new chain to wallet. |
wallet_watchAsset | No | Track a token (ERC-20/721/1155). |
Events
| Event | Description |
|---|
accountsChanged | Accounts list changed. Empty array = all access revoked. |
chainChanged | Active chain changed. |
disconnect | Wallet-initiated session end. Reasons: user_closed, session_revoked, wallet_locked. |
Error Codes
| Code | Meaning |
|---|
user_rejected | User declined in wallet UI |
unauthorized | Account not authorized for this session |
invalid_params | Malformed or missing parameters |
unsupported_chain | Chain not in capabilities |
unsupported_method | Method not in capabilities |
insufficient_funds | Balance too low |
nonce_too_low | Nonce already used |
gas_estimation_failed | Gas estimation reverted |
tx_rejected | Network rejected the transaction |
internal_error | Unexpected wallet error |
Data Encoding
| Data Type | Encoding |
|---|
| Addresses | 0x + 40 hex chars (EIP-55 checksum) |
| Values, nonce, gas | 0x hex string, no leading zeroes except 0x0 |
| Signed transactions | 0x hex string (full RLP) |
| Signatures | 0x hex string, 65 bytes (r + s + v) |
| Chain IDs (CAIP-2) | eip155:<decimal> |
| Chain IDs (tx) | 0x hex |