Fees
Atlas charges two types of fees: a trading fee on position opens and a borrow fee that accrues over time.
Fee Summary
| Fee | Rate | When Charged | Destination |
|---|---|---|---|
| Trading fee | Configurable; public testnet currently 0.7% of position size | Position open | Protocol treasury |
| Borrow fee | Variable hourly fee | Position close | Vault (LP revenue) |
Trading Fee
A flat fee charged when opening a position, calculated on the position size (not collateral):
trading_fee = position_size × fee_rate_bps / 10000
The trading fee is locked in addition to your collateral at order creation:
amount_locked = collateral + trading_fee
Your position collateral remains the amount you entered, while the trading fee is paid to the protocol treasury when the order is processed.
Borrow Fee
A time-based fee for borrowing liquidity from the Vault. The fee is based on pool utilization and long/short imbalance over time, and accrues by whole-hour intervals until the position is closed.
The borrow fee has two components:
| Component | Based On | Effect |
|---|---|---|
| Base rate | Pool utilization | Higher utilization → higher fee for all positions |
| Skew rate | Open interest imbalance | If longs outnumber shorts (or vice versa), the dominant side pays an additional fee |
How it works:
- Atlas tracks a cumulative borrow-fee index for each market.
- The index is updated from pool utilization and long/short imbalance over time.
- Your position records the index level when it opens.
- When you close, Atlas calculates the accrued borrow fee from the difference between the current index and your entry index.
- The on-chain validator enforces a protocol-level cap on the borrow fee.
The borrow fee goes directly to the Vault, increasing LP token value.
Borrow Fee Formula
utilization = reserved_liquidity / total_liquidity
imbalance = abs(long_oi - short_oi) / total_oi
hourly_index_delta =
base_rate_from_utilization + skew_rate_for_dominant_side
position_borrow_fee =
position_size × (current_index - entry_index)
The skew component accrues only when your position is on the dominant side of open interest. If longs are heavier than shorts, longs accrue the skew component; if shorts are heavier, shorts accrue it.
| Parameter | Description | Current (public testnet) |
|---|---|---|
borrow_rate_bps | Hourly base rate at 100% utilization | 1 (0.01%) |
skew_rate_bps | Hourly skew rate at 100% imbalance | 1 (0.01%) |
max_borrow_rate_bps | Validator cap for accumulated borrow fee | 100 (1% per hour) |
Fee Flow Diagram
Fee Parameters
Fee rates are configurable on-chain protocol parameters stored in the ConfigDatum. They can be updated by the protocol operator.
Check the trading interface for current fee rates. Public testnet parameters can change as the protocol is tuned before Mainnet.