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
| Priority | Scope | Description |
|---|---|---|
| 1 | API Key | Per-key override assigned by admin |
| 2 | Account | Per-user fee policy |
| 3 | Market | Market-specific fee policy |
| 4 | Template | Template-level default for market categories |
| 5 | Global | Platform-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": 5,
"taker_fee_bps": 20,
"rebate_bps": 2
}
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 policiesPOST /admin/platform/fees/policies— Create a fee policyPUT /admin/platform/fees/policies/:id— Update a fee policyDELETE /admin/platform/fees/policies/:id— Delete a fee policyPOST /admin/platform/fees/assignments— Assign a policy to a scopeGET /admin/platform/fees/effective— Query resolved fee for a scopeGET /admin/platform/fees/audit-logs— Fee policy change historyPOST /admin/platform/update-fee— Set global maker=taker fee (convenience)