eth_requestAccounts
SupportedWhat 1337 does
Unlock + connect this origin to the active account.
What dapps use
Connect button. Wagmi / RainbowKit injected connector.
Provider
What 1337 answers on window.ethereum, and what Uniswap, Aave, Pendle, and Curve do when we do not implement a call. We are a signer: send, sign, switch chain. We do not fake batch sends.
What Uniswap, Aave, Pendle, and Curve call first.
eth_requestAccounts
SupportedWhat 1337 does
Unlock + connect this origin to the active account.
What dapps use
Connect button. Wagmi / RainbowKit injected connector.
eth_accounts
SupportedWhat 1337 does
Return the connected address, or [] if this site is not authorized.
What dapps use
Silent “already connected?” check.
wallet_requestPermissions / wallet_getPermissions / wallet_revokePermissions
SupportedWhat 1337 does
EIP-2255 around eth_accounts. Disconnect clears this origin.
What dapps use
Connect / disconnect in the dapp UI.
Aave markets, Pendle, and Curve hop L2s constantly.
eth_chainId / net_version
SupportedWhat 1337 does
Active chain as hex / decimal string.
What dapps use
Know which network the signer is on.
wallet_switchEthereumChain
SupportedWhat 1337 does
Switch if the chain is in the catalog.
What dapps use
“Switch to Arbitrum” before a market.
wallet_addEthereumChain
SupportedWhat 1337 does
Switch if the chain is already in Networks. Ignores dapp RPCs. Unknown chain → 4902 (add it yourself).
What dapps use
Same as switch for catalog chains. New networks are added in the wallet, not by the page.
wallet_watchAsset
SupportedWhat 1337 does
Confirm sheet. ERC-20 on the active chain. On-chain symbol/decimals when RPC works; NFT types stay 4200.
What dapps use
“Add token” after a swap or airdrop. Wagmi watchAsset / MetaMask EIP-747.
The actual signer job. Confirm sheet + device on Ledger / Trezor.
eth_sendTransaction
SupportedWhat 1337 does
Approve, swap, supply, lock, vote. One tx, local simulate.
What dapps use
Default write path for Aave, Pendle, Curve, Uniswap.
personal_sign
SupportedWhat 1337 does
SIWE / login messages. Hardware on the device.
What dapps use
Snapshot, some DAO logins.
eth_signTypedData / _v3 / _v4
SupportedWhat 1337 does
Permit2, EIP-2612 Permit, Pendle limit orders, Aave credit delegation. Nano S hashed EIP-712 if clear-sign is missing.
What dapps use
Gasless approve and off-chain orders.
eth_sign
DisabledWhat 1337 does
Rejected (4200). Unsafe raw hash.
What dapps use
personal_sign or eth_signTypedData_v4.
Wagmi probes this after connect and after a swap.
wallet_getCapabilities
Answers emptyWhat 1337 does
Always succeeds. Empty object per catalog chain. No atomic batch, no paymaster.
What dapps use
Falls back to eth_sendTransaction. We do not advertise wallet_sendCalls.
wallet_sendCalls / wallet_getCallsStatus / wallet_showCallsStatus
Dapp fallbackWhat 1337 does
Not implemented (4200). Capabilities stay empty so honest dapps never call these.
What dapps use
Separate approve + send via eth_sendTransaction.
Forwarded to the active chain RPC. Same as MetaMask’s built-in provider.
eth_call, eth_estimateGas, eth_getBalance, eth_getTransactionCount, eth_getCode, eth_getStorageAt, eth_blockNumber, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory, eth_getBlockByNumber, eth_getBlockByHash, eth_getTransactionByHash, eth_getTransactionReceipt, eth_getLogs
SupportedWhat 1337 does
eth_call to the user’s preferred RPC for that chain.
What dapps use
Balances, quotes, receipts. Many dapps also hit their own RPC.
We do not stub these as success unless the spec allows a quiet no.
web3_clientVersion / net_listening / eth_syncing / eth_coinbase
Not implementedWhat 1337 does
Not implemented. Cheap probes.
What dapps use
Ignored on error. Dapp already has accounts + chainId.
personal_ecRecover
Not implementedWhat 1337 does
Not implemented.
What dapps use
Dapp verifies the signature locally, or skips.
eth_subscribe / eth_unsubscribe
Dapp fallbackWhat 1337 does
Not on the injected provider.
What dapps use
Dapp’s own WebSocket / HTTP RPC for new heads.
eth_getEncryptionPublicKey / eth_decrypt
DisabledWhat 1337 does
Not implemented. Dead MetaMask APIs.
What dapps use
Nothing modern. Do not add.
Events: accountsChanged, chainChanged, connect, disconnect. Integration code is on /integrate.