The method eth_signTypedData does not exist/is not available

Seems there is some problems related to eth_signTypedData method.

There is what i wanna to do:

curl -X POST --data '{
	"id": 1337,
	"jsonrpc": "2.0",
	"method": "eth_signTypedData",
	"params": ["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", {
		"types": {
			"EIP712Domain": [{
				"name": "name",
				"type": "string"
			}, {
				"name": "version",
				"type": "string"
			}, {
				"name": "chainId",
				"type": "uint256"
			}, {
				"name": "verifyingContract",
				"type": "address"
			}],
			"Person": [{
				"name": "name",
				"type": "string"
			}, {
				"name": "wallet",
				"type": "address"
			}],
			"Mail": [{
				"name": "from",
				"type": "Person"
			}, {
				"name": "to",
				"type": "Person"
			}, {
				"name": "contents",
				"type": "string"
			}]
		},
		"primaryType": "Mail",
		"domain": {
			"name": "Ether Mail",
			"version": "1",
			"chainId": 1,
			"verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
		},
		"message": {
			"from": {
				"name": "Cow",
				"wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
			},
			"to": {
				"name": "Bob",
				"wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
			},
			"contents": "Hello, Bob!"
		}
	}]
}' https://mainnet.infura.io/v3/<project_id>

And seems method not working right now.
It just returns:

{"jsonrpc":"2.0","id":1337,"error":{"code":-32601,"message":"The method eth_signTypedData does not exist/is not available"}}

Hi @m1ome, and welcome to the Infura community! We don’t actually support that method, but MetaMask does - you can check out their documentation here!

Can you correct me AFAIK Metamask uses INFURA as a rpc provider.
Then how it can be possible that INFURA nodes don’t support that method, but metamask using INFURA does?

1 Like

@Leiya_Kenney Any update on this?

hey all, Infura doesn’t support this method (or any sign method for that matter) because we don’t store any of your private keys, we will correct the docs and remove them. Thanks !

These methods don’t require interaction with ethereum nodes. The signing is just done with cryptographic algorithms, all within MetaMask on the users own machine.