> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Ostium

> Ostium perpetual futures trades, liquidations, fees, OLP flows, and daily metrics on Arbitrum.

Ostium is an onchain perpetual futures protocol for crypto and real-world asset markets. Allium coverage is Ostium v1 on Arbitrum: opens, closes, liquidations, fees, OLP vault deposits and withdrawals, open interest, TVL, and daily protocol metrics.

Full chain docs: [Arbitrum perpetuals](/historical-data/supported-blockchains/evm/arbitrum/perpetuals). That schema also contains GMX and Variational Omni. Filter Ostium rows with `project = 'ostium'`.

Ostium markets are identified by `market_symbol`. On trades and liquidations, `market_address` and `asset_address` are null because many Ostium markets are real-world assets with no token contract. On fees, `asset_address` is USDC (`0xaf88d065e77c8cc2239327c5edb3a432268e5831`).

`arbitrum.perpetuals.trades` has one row per open, close, or liquidation. Collateral top-ups, collateral removals, and take-profit / stop-loss updates are not separate trades rows.

## Schemas

| Schema                | Perpetual coverage                                                                 | Docs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `arbitrum.perpetuals` | Trades, liquidations, fees, OLP vault movements, TVL components, and daily metrics | [trades](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/trades) · [liquidations](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/liquidations) · [fees](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/fees) · [user\_actions](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/user-actions) · [metrics\_daily](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/metrics-daily) · [overview](/historical-data/supported-blockchains/evm/arbitrum/perpetuals/overview) |

## Size and open interest

Ostium size and open interest use the same product:

```
size_usd = collateral_usd × leverage
```

Use the published `size_usd`. On an open, leverage is the position leverage after the open. On a close or liquidation, leverage is the position leverage immediately before the close — not `extra_fields.leverage`, which is the remaining position after the event. Partial closes scale collateral and size by the closed fraction.

Open interest on `arbitrum.perpetuals.overview` is the end-of-day value of the same product, split into long and short.

## Fees and revenue

`arbitrum.perpetuals.fees` has one row per fee event or non-zero execution spread. Use that table for fee-event grain. `trades.fee_usd` is the trade-level total and already includes execution spread.

* `fee_usd` includes execution fees, rollover, signed funding, and execution spread. Funding keeps its sign: trader-paid is positive, rebate is negative.
* On-chain raw `priceImpactP` is a percent with 18 decimals: `size_usd × (priceImpactP / 1e18) / 100`. `extra_fields.price_impact_p` on trades and `extra_fields.spread_p` on fees already store that percent without the 1e18 scale, so spread is `size_usd × price_impact_p / 100` (or `spread_p`).
* `revenue_usd` is the protocol-retained share: opening developer fees, oracle fees (refunds are negative), and execution spread from `2026-04-28 00:00 UTC`. Before that timestamp, spread `revenue_usd` is 0. Close, builder, vault, rollover, funding, and liquidation components contribute 0 to `revenue_usd`.

## OLP vault and TVL

`arbitrum.perpetuals.user_actions` for Ostium is OLP vault LP deposits and withdrawals (completed USDC movements). It is not trader margin posted against a position.

`arbitrum.perpetuals.metrics_daily` is end-of-day USDC in the OLP vault (`olp_vault`) and TradingStorage (`trading_storage`). TVL on `overview.total_tvl_usd` is the sum of those two balances.

## Sample Query

```sql theme={null}
SELECT
  block_timestamp,
  trader,
  market_symbol,
  side,
  action,
  size_usd,
  collateral_usd,
  price_usd,
  pnl_usd,
  fee_usd,
  transaction_hash
FROM arbitrum.perpetuals.trades
WHERE block_date >= current_date - 30
  AND project = 'ostium'
ORDER BY block_timestamp DESC
LIMIT 100;
```
