EVM chains like Ethereum, Polygon, Base etc support the following signature kinds:
Transaction: unsigned transaction.
Eip191: personal_sign message defined in EIP-191. Also available as Message (they are equivalent).
Eip712: typed structured data defined in EIP-712.
Eip7702: authorization tuple for type 4 set code transaction defined in EIP-7702.
Transaction
Signs an unsigned transaction. The transaction field accepts either a hex-encoded string or a JSON object.
Hex string
Typescript example with Ethers
First install the Ethers JS. You can find the full documentation here.
Here a code sample to generate a signature via the DFNS TypeScript SDK:
EvmTransactionJson
| Field | Description | Type - Optional |
|---|
type | Ethereum transaction type. 0 for legacy transaction; 2 for EIP-1559 transaction; 4 for EIP-7702 transaction. Default is 2 if undefined. | Integer (optional) |
to | The destination address or target contract. Leave undefined when the transaction is a contract deployment. | String (optional) |
value | The amount of native tokens to transfer in minimum denomination. | String (optional) |
data | ABI encoded function call data in hex format. Can also be the encoded smart contract data when the transaction is a contract deployment. | String (optional) |
nonce | The transaction number to guarantee idempotency. If omitted, it will be provided automatically. Note the same nonce can be submitted multiple times with a higher maxFeePerGas to “overwrite” existing transactions in the mempool. | Integer or String (optional) |
gasLimit | The maximum amount of gas that can be spent for executing the transaction. If omitted, it will be calculated automatically. | String (optional) |
gasPrice | The amount of per unit gas. Only valid for a type 0 legacy transaction. If omitted, it will be calculated automatically. | String (optional) |
maxFeePerGas | The maximum amount of per unit gas willing to be paid for the transaction. Valid for type 2 and type 4 transactions. If omitted, it will be calculated automatically. | String (optional) |
maxPriorityFeePerGas | The maximum amount of per unit gas to be included as a tip to the validator. Valid for type 2 and type 4 transactions. If omitted, it will be calculated automatically. | String (optional) |
authorizationList | A list that indicates what code the signer of each authorization desires to execute in the context of their EOA. Only valid for type 4 transaction. | Authorization (optional) |
Authorization
EIP-191 personal_sign
Signs a personal_sign message as defined in EIP-191.
EIP-712 TypedData
Signs a typed structured data defined in EIP-712.
TypedDataField
Eip712Domain
EIP-7702 Authorization
Signs an authorization tuple for type 4 set code transaction defined in EIP-7702.
Last modified on July 7, 2026