Skip to main content
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

FieldDescriptionType - Optional
typeEthereum transaction type. 0 for legacy transaction; 2 for EIP-1559 transaction; 4 for EIP-7702 transaction. Default is 2 if undefined.Integer (optional)
toThe destination address or target contract. Leave undefined when the transaction is a contract deployment.String (optional)
valueThe amount of native tokens to transfer in minimum denomination.String (optional)
dataABI encoded function call data in hex format. Can also be the encoded smart contract data when the transaction is a contract deployment.String (optional)
nonceThe 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)
gasLimitThe maximum amount of gas that can be spent for executing the transaction. If omitted, it will be calculated automatically.String (optional)
gasPriceThe amount of per unit gas. Only valid for a type 0 legacy transaction. If omitted, it will be calculated automatically.String (optional)
maxFeePerGasThe 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)
maxPriorityFeePerGasThe 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)
authorizationListA 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