Fees

Trading fees on 4rho follow a 5-level hierarchy. The system evaluates fee policies from most specific to least specific and applies the first match.

Fee Hierarchy

PriorityScopeDescription
1API KeyPer-key override assigned by admin
2AccountPer-user fee policy
3MarketMarket-specific fee policy
4TemplateTemplate-level default for market categories
5GlobalPlatform-wide default

Each fee policy defines independent rates for:

  • Maker fee (maker_fee_bps) — charged to resting (limit) orders
  • Taker fee (taker_fee_bps) — charged to crossing (market/IOC) orders
  • Rebate (rebate_bps) — credited back to makers as a liquidity incentive

Fees are expressed in basis points (1 bps = 0.01%).

Query Your Effective Fee

GET /v1/market-data/:market_id/fee-rate

Scope: read:account

Returns the effective maker and taker fee rates for the authenticated user on a specific market. The response reflects the resolved fee after evaluating the full hierarchy.

Response

{
  "market_id": "550e8400-e29b-41d4-a716-446655440000",
  "maker_fee_bps": 0,
  "taker_fee_bps": 50,
  "rebate_bps": 0
}

Fee Application

Fees are enforced at order-match time:

  • Maker orders (limit orders that rest on the book) pay maker_fee_bps
  • Taker orders (orders that cross the spread) pay taker_fee_bps
  • Makers may receive a rebate (rebate_bps) credited to their account balance

API Key Fee Overrides

Admins can assign a specific fee policy to an API key via the fee policy assignment system. This is the highest-priority override and is commonly used for market-maker agreements with negotiated rates.

When an API key has a fee policy assignment, it takes precedence over account-level, market-level, template-level, and global fee policies.

Admin Endpoints

Fee policy management is available through admin endpoints:

  • GET /admin/platform/fees/policies — List all fee policies
  • POST /admin/platform/fees/policies — Create a fee policy
  • PUT /admin/platform/fees/policies/:id — Update a fee policy
  • DELETE /admin/platform/fees/policies/:id — Delete a fee policy
  • POST /admin/platform/fees/assignments — Assign a policy to a scope
  • GET /admin/platform/fees/effective — Query resolved fee for a scope
  • GET /admin/platform/fees/audit-logs — Fee policy change history
  • POST /admin/platform/update-fee — Set global maker=taker fee (convenience)