typed_data = {
"types": {
"EIP712Domain": [
{"name": "name", "type": "string"},
{"name": "version", "type": "string"},
{"name": "chainId", "type": "uint256"},
{"name": "verifyingContract", "type": "address"},
],
"Permit": [
{"name": "owner", "type": "address"},
{"name": "spender", "type": "address"},
{"name": "value", "type": "uint256"},
{"name": "nonce", "type": "uint256"},
{"name": "deadline", "type": "uint256"},
],
},
"primaryType": "Permit",
"domain": {
"name": "USD Coin",
"version": "2",
"chainId": 1,
"verifyingContract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
},
"message": {
"owner": "0xYourWalletAddress",
"spender": "0xSpenderAddress",
"value": 1000000, # 1 USDC (6 decimals)
"nonce": 0,
"deadline": 1735689600,
},
}
signature = await client.sign_typed_data(
address="0xYourWalletAddress",
typed_data=typed_data,
)