sign(), request a gasless Permit2/EIP-2612 signature.
For Permit2/EIP-2612 paths - once Check Allowance determines a token needs a signature, call sign(). It returns the permit response directly, not wrapped in .data:
import { PermitTypes } from '@dzapio/sdk';if (needsSignature) { const result = await dzap.sign({ chainId: 42161, sender: '0xUser', tokens: [{ address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', amount: '1000000' }], service: Services.trade, signer: walletClient, permitType: PermitTypes.AutoPermit, }); if (result.status === 'success') { if ('batchPermitData' in result) { // PermitBatchWitnessTransferFrom → single encoded payload covering all tokens console.log(result.batchPermitData); } else { // Every other permitType → per-token entries result.tokens.forEach((t) => console.log(t.address, t.permitData)); } }}