Skip to main content
Use platform fees to monetize DFlow integrations by collecting fees on trades executed through applications. Add platform fees by setting fee parameters on Trade API requests. Users pay platform fees only when a trade completes successfully. Platform fees do not affect quoting, routing, slippage checks, or execution behavior. When a trade completes, the platform fee is transferred to a builder-controlled fee account. From a user’s perspective:
  • Fees apply only on successful trades.
  • Fees change net proceeds, not execution.

Fee Models

Builders choose one of two fee models.

Fixed Platform Fees

Charge a fixed percentage of the trade amount.
  • Fees are specified in basis points (bps).
  • 1 bps = 0.01%.
  • Example: platformFeeBps: 50 means a 0.5% fee.
Builders decide whether the fee is collected from the input token or output token using platformFeeMode.

Dynamic Platform Fees (Prediction Markets)

Builders charge a price-dependent fee on prediction market outcome token trades by setting platformFeeScale. DFlow calculates the fee as:
k * p * (1 - p) * c
Where:
  • k is platformFeeScale with 3 decimals of precision (example: 50 means 0.050).
  • p is the all-in price (includes all fees + filled price).
  • c is the contract size.
Users pay no platform fee when redeeming a winning outcome (p = 1). This means apps do not charge a platform fee for outcome token redemption.

Platform Fee Parameters

Configure platform fees using three parameters.

platformFeeMode

Use platformFeeMode to choose which token users pay the fee in:
  • outputMint (default): fee is collected from the output token.
  • inputMint: fee is collected from the input token.
For imperative trades, they can be paid in either the inputMint or outputMint. For declarative trades, they can currently only be paid in the outputMint. For prediction markets outcome token trades, they can only be paid in the settlementMint.

platformFeeBps

Use platformFeeBps to set a fixed platform fee in basis points.
  • The fee is calculated as a percentage of the trade amount.
  • The fee is collected from the input or output token based on platformFeeMode.

platformFeeScale

Use platformFeeScale only for outcome token trades to enable dynamic fees.
  • The fee scales with price and contract size using the formula above.
  • The fee is zero at redemption for winning outcomes (p = 1).

Fee Accounts

Platform fees are transferred to a builder-controlled token account. You need a separate token account (ATA) for each token you collect fees in. For example, if your app collects fees in both USDC and SOL, you need a USDC fee account and a SOL fee account.

Using feeAccount

Pass feeAccount to specify the token account that receives the fee. The account must:
  • Be a valid SPL token account for the token being collected.
  • Already exist before the trade executes.
The token must match the fee mode:
  • Input token account when collecting from inputMint
  • Output token account when collecting from outputMint
  • Settlement token account when collecting from prediction market outcome token trades

How Platform Fees Affect Trades

Platform fees change net economics, not trade behavior.
  • Routing stays the same.
  • Slippage enforcement stays the same.
  • Execution timing stays the same.
If a trade fails, users pay no platform fee.
Only specify a nonzero platform fee if you will actually collect the fee at execution time. When the API receives a nonzero platformFeeBps, it factors the fee into slippage tolerance calculations. If the fee is declared in the request but not collected onchain, the slippage budget is effectively wasted on a fee that never gets taken, resulting in suboptimal pricing for your users.

When To Use Platform Fees

Use platform fees if you want to:
  • Monetize trading volume.
  • Fund product development.
  • Align incentives with usage.

Code Recipes

Need Help?

https://mintcdn.com/dflow/a8Yx7HBusmKl4Z7w/images/meteor-icons_discord.svg?fit=max&auto=format&n=a8Yx7HBusmKl4Z7w&q=85&s=0ea834bc8a9fa3fe161ba181329effda

Join Our Discord

Connect with other developers, get help, and stay updated on the latest DFlow developments.
https://mintcdn.com/dflow/a8Yx7HBusmKl4Z7w/images/meteor-icons_telegram.svg?fit=max&auto=format&n=a8Yx7HBusmKl4Z7w&q=85&s=e928c5dd68311ff0d419936a35c86eed

Dev Notifications

Join the DFlow Dev Notifications Telegram group to stay in the loop on new features and other announcements.