Skip to main content
Swap and Earn activities expose request fields through activity.params. See the activity parameter reference for the full field list and Transaction Management for product flows. Use activity.kind when you want policies to survive activity version upgrades. Pin activity.type when you rely on fields that exist only on a specific version (for example destination_address on ACTIVITY_TYPE_CREATE_SWAP_QUOTE_V2 and ACTIVITY_TYPE_EXECUTE_SWAP_V3).

Swap quotes

Cap slippage on swap quote requests

When slippage_bps is omitted on the intent, accessing activity.params.slippage_bps fails with FieldNotUsed rather than evaluating as zero.

Restrict quote output tokens to an allowlist

Require organization-controlled destinations on cross-chain quotes (V2)

Swap execution

Deny execution into unapproved output assets

Require two approvers for large trades (base units)

Compare input_amount as a uint in token base units.

Deny sponsored swap execution

Restrict execute destination (V3)

Earn deposits and withdrawals

Allow deposits only on approved chains

Restrict deposits to approved wrappers

EVM wrapper addresses in policies should use lowercase 0x hex to match normalized activity.params.wrapper_address values.

Deny sponsored Earn deposits

Cap deposit size (base units)

activity.params.assets compares as a uint in raw on-chain units, like swap input_amount.

Gate full-position withdrawals

amount_value is a string; the API accepts the literal MAX to withdraw an entire position.

Earn administration

Cap client fee on wrapper deployment

client_fee_bps is exposed as a uint in whole basis points (the API intent carries a decimal string). client_fee_wallet remains a string; allowlist it for treasury controls.

Require an approved fee recipient on wrapper deployment

Require elevated approval to re-enable deposits

Allow fee claims only for approved wrappers