# external-transaction-fee

Source: https://docs.settlemint.com/docs/developers/api-integration/token-features/external-transaction-fee
API reference for configuring the external-transaction-fee token feature so DALP charges fixed fees in a separate ERC-20 token for asset operations.



The `external-transaction-fee` token feature charges a fixed fee in a separate ERC-20 token (the fee token) for each mint, burn, or transfer operation on the asset. The fee is paid in the configured token; the asset itself is not deducted.

For the operator how-to, see [External transaction fee how-to](/docs/operators/token-features/external-transaction-fee). For the architecture model, see [External transaction fee architecture](/docs/architects/components/token-features/external-transaction-fee).

## Configuration during token creation [#configuration-during-token-creation]

```json
{
  "external-transaction-fee": {
    "feeToken": "0x...",
    "mintFeeAmount": "1.00",
    "burnFeeAmount": "1.00",
    "transferFeeAmount": "0.50",
    "recipient": "0x..."
  }
}
```

| Parameter           | Type             | Required | Description                                                                          |
| ------------------- | ---------------- | -------- | ------------------------------------------------------------------------------------ |
| `feeToken`          | Ethereum address | Yes      | ERC-20 token used for fee payment. Must exist or be registered as an external token. |
| `mintFeeAmount`     | Decimal string   | Yes      | Fixed mint fee in `feeToken` units. Zero suppresses.                                 |
| `burnFeeAmount`     | Decimal string   | Yes      | Fixed burn fee in `feeToken` units.                                                  |
| `transferFeeAmount` | Decimal string   | Yes      | Fixed holder-initiated transfer fee in `feeToken` units.                             |
| `recipient`         | Ethereum address | Yes      | Wallet that receives collected fees in `feeToken`.                                   |

## Allowance requirement [#allowance-requirement]

Holders must approve the asset contract to spend `feeToken` before they can transact under this asset. Operations fail with insufficient-allowance if the holder has not granted the asset contract permission to spend the fee token. Document the allowance requirement clearly in your integration onboarding.

## Reading collected fees [#reading-collected-fees]

```
GET /api/v2/token/{address}/features/external-transaction-fee
```

Returns the configured fee token, per-operation amounts, recipient, and aggregate collected `feeToken` balance.

## Updating parameters [#updating-parameters]

Restricted-mutable. Update through the governance-update path. Changing `feeToken` mid-life requires fresh allowance grants from every holder.

## Related [#related]

* [transaction-fee](/docs/developers/api-integration/token-features/transaction-fee) — percentage-based same-asset fee variant.
* [External tokens](/docs/developers/api-integration/external-tokens/external-tokens) for registering fee tokens.
