Documentation for eth_defi.usdc.eip_3009.construct_eip_3009_authorization_message function.

construct_eip_3009_authorization_message(chain_id, token, from_, to, value, valid_before=0, valid_after=1, duration_seconds=0, authorization_type=EIP3009AuthorizationType.TransferWithAuthorization)[source]

Create EIP-712 message for EIP-3009 transfers.

  • Used to construct the message that then needs to be signed

  • The signature will be verified by receiveWithAuthorization() or transferWithAuthorization function in the token contract


For Polygon USDC transferWithAuthorization() you need to use a different message structure, because Polygon bridged tokens are not EIP-3009 compatible. This function cannot work with Polygon bridged tokens.

Polygon version is:

EIP712Domain: [
  { name: 'name', type: 'string' },
  { name: 'version', type: 'string' },
  { name: 'verifyingContract', type: 'address' },
  { name: 'salt', type: 'bytes32' }

More on Polygon incompatibility


JSON message for EIP-712 signing.

Return type