Provider

RPC methods

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.

SupportedAnswers emptyDapp fallbackNot implementedDisabled

Connect & accounts

What Uniswap, Aave, Pendle, and Curve call first.

eth_requestAccounts

Supported

What 1337 does

Unlock + connect this origin to the active account.

What dapps use

Connect button. Wagmi / RainbowKit injected connector.

eth_accounts

Supported

What 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

Supported

What 1337 does

EIP-2255 around eth_accounts. Disconnect clears this origin.

What dapps use

Connect / disconnect in the dapp UI.

Chain

Aave markets, Pendle, and Curve hop L2s constantly.

eth_chainId / net_version

Supported

What 1337 does

Active chain as hex / decimal string.

What dapps use

Know which network the signer is on.

wallet_switchEthereumChain

Supported

What 1337 does

Switch if the chain is in the catalog.

What dapps use

“Switch to Arbitrum” before a market.

wallet_addEthereumChain

Supported

What 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

Supported

What 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.

Sign & send

The actual signer job. Confirm sheet + device on Ledger / Trezor.

eth_sendTransaction

Supported

What 1337 does

Approve, swap, supply, lock, vote. One tx, local simulate.

What dapps use

Default write path for Aave, Pendle, Curve, Uniswap.

personal_sign

Supported

What 1337 does

SIWE / login messages. Hardware on the device.

What dapps use

Snapshot, some DAO logins.

eth_signTypedData / _v3 / _v4

Supported

What 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

Disabled

What 1337 does

Rejected (4200). Unsafe raw hash.

What dapps use

personal_sign or eth_signTypedData_v4.

Discovery (EIP-5792)

Wagmi probes this after connect and after a swap.

wallet_getCapabilities

Answers empty

What 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 fallback

What 1337 does

Not implemented (4200). Capabilities stay empty so honest dapps never call these.

What dapps use

Separate approve + send via eth_sendTransaction.

Read RPC (proxied)

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

Supported

What 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.

Not implemented. Dapp fallback

We do not stub these as success unless the spec allows a quiet no.

web3_clientVersion / net_listening / eth_syncing / eth_coinbase

Not implemented

What 1337 does

Not implemented. Cheap probes.

What dapps use

Ignored on error. Dapp already has accounts + chainId.

personal_ecRecover

Not implemented

What 1337 does

Not implemented.

What dapps use

Dapp verifies the signature locally, or skips.

eth_subscribe / eth_unsubscribe

Dapp fallback

What 1337 does

Not on the injected provider.

What dapps use

Dapp’s own WebSocket / HTTP RPC for new heads.

eth_getEncryptionPublicKey / eth_decrypt

Disabled

What 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.