SettleMint
Token features

permit

API reference for the DALP permit token feature, which enables EIP-2612 signature-based approvals on the asset.

The permit token feature implements EIP-2612 signature-based approvals. Holders sign a message off chain; you then submit the signed authorization with the spending transaction in one call. The feature attaches without operator input on almost every template.

For the operator how-to, see Permit how-to. For the architecture model, see Permit architecture.

Configuration

No featureConfigs entry is required. The feature is self-contained and carries no configurable parameters.

EIP-712 domain

Each asset exposes its EIP-712 domain at:

GET /api/v2/token/{address}/features/permit/domain

The response includes the asset's name, version, chainId, and verifyingContract fields. Use these values to build the EIP-712 domain separator when constructing the typed-data payload.

Signing a permit

The EIP-2612 message payload requires these five fields. Fetch the holder's current nonce from GET /api/v2/token/{address}/features/permit/nonce/{owner} before building the payload.

{
  "owner": "0x...",
  "spender": "0x...",
  "value": "...",
  "nonce": "...",
  "deadline": "..."
}

The holder signs the payload with eth_signTypedData_v4 and passes the resulting signature with the spending transaction. A reused or expired nonce causes the on-chain call to revert.

Submitting a signed permit

The standard EIP-2612 permit(owner, spender, value, deadline, v, r, s) call format applies. You can also use the Platform API convenience endpoint that combines the authorization and the transfer in one request:

POST /api/v2/token/{address}/permit-and-transfer
{
  "owner": "0x...",
  "spender": "0x...",
  "value": "...",
  "deadline": "...",
  "signature": { "v": ..., "r": "0x...", "s": "0x..." },
  "to": "0x...",
  "amount": "..."
}

The platform validates the signature, applies the approval, and submits the transfer in one async blockchain mutation.

Behaviour

  • The chain rejects replayed authorizations (same nonce).
  • The chain rejects expired authorizations (deadline in the past).
  • A permit does not bypass compliance modules. The resulting transfer evaluates through the full compliance stack.

On this page