Providing liquidity
GMX lets you earn yield by depositing tokens into liquidity pools. These pools back leverage trading and swaps on the platform, and liquidity providers earn the majority of the fees generated from trading, liquidations, borrow fees, and swaps (63% on Arbitrum and Avalanche, 50% on Botanix). There are two types of pools: automated GLV pools and individual GM pools.
GLV pools
A GLV (GMX Liquidity Vault) pool consists of:
- Supported markets: The markets in which liquidity is provided.
- Long token: The token that backs long positions.
- Short token: The token that backs short positions.
For example, a GLV [WETH-USDC] pool uses WETH to back long positions and USDC to back short positions. The supported markets and allowed liquidity in each market are recommended by Chaos Labs.
Liquidity is automatically shifted between supported markets based on utilization and Chaos Labs recommendations. The list of supported markets displayed for each GLV can change as additional markets are approved and added.
GM pools
A GM (GMX Market) pool consists of:
- Index price feed: Positions are opened and closed based on this price feed.
- Long token: The token that backs long positions.
- Short token: The token that backs short positions.
For example, an ETH/USD [WETH-USDC] market uses the ETH/USD price feed, with WETH backing long positions and USDC backing short positions.
If a market is labeled as SWAP-ONLY or SPOT-ONLY, it only supports swaps and does not support leverage trading.
For single-token backed pools, both the long and short token are the same. For example, a single-token WETH pool uses WETH for both.
Single-token vs multi-token pools
Single-token pools differ from multi-token pools in how they handle swaps, price impact, and asset exposure. The differences affect both liquidity providers and traders.
For liquidity providers:
- Zero swap price impact on deposits and withdrawals. In multi-token pools, depositing a single token shifts the balance between the long and short token pools, incurring swap price impact. In single-token pools, both sides of the pool are the same token, so the swap price impact factor is set to zero — deposits and withdrawals have no price impact regardless of size.
- Single-asset exposure. You hold one token instead of two. There is no rebalancing between different assets, so your position tracks the price of a single token rather than a mix.
- No swaps. Single-token pools do not support swap operations — they are used for leverage trading only.
For traders:
- No swap fees on position operations. In multi-token pools, opening or closing a position may require a swap between the collateral token and the PnL token, incurring swap fees and swap price impact. In single-token pools, collateral, PnL, and pool backing all use the same token — no token conversion is needed, so there are no swap fees or swap price impact on any position operation.
- Reduced or zero position price impact. The net price impact based on open interest imbalance is configured per market. The major single-token markets (BTC/USD [WBTC.e-WBTC.e], ETH/USD [WETH-WETH]) have position impact factors set to zero — meaning no position price impact at all. Smaller single-token markets may have non-zero position impact factors configured based on their liquidity depth.
Each GM pool is risk-isolated — liquidity providers are only exposed to the markets they deposit into. Profits and losses of traders in one market do not affect pools in other markets.
Market types
GM pools back two types of markets, which differ in how the pool's tokens cover trader PnL.
Fully backed markets
In a fully backed market, the index token and the long collateral token are the same asset. For example, an ETH/USD perp market backed by an ETH-USDC pool uses ETH as both the index token and the long collateral token.
Because long position profits are paid out in ETH and the pool holds ETH directly, the pool's ETH balance can always cover the pending PnL of long positions — as long as open interest caps are respected. The protocol enforces these caps via the MAX_OPEN_INTEREST parameter, which is configured per market and per side.
For example, a pool holds 1,000 ETH and 1,000,000 USDC. The max long open interest is capped at 900 ETH and the max short open interest at 900,000 USDC. Under these constraints, all profits can be paid regardless of how the price of ETH moves, because the pool holds the same asset that backs the positions.
Synthetic markets
In a synthetic market, the index token differs from the long collateral token. For example, a DOGE/USD perp market backed by an ETH-USDC pool uses DOGE as the index token but ETH as the long collateral. This means long position profits are denominated in DOGE price terms but paid out from the pool's ETH balance.
If DOGE's price rises faster than ETH's price, the pending profits of DOGE long positions — measured in USD — can grow faster than the USD value of ETH in the pool. In extreme cases, pending profits may exceed the pool's capacity to pay them out.
For example, a pool holds 1,000 ETH and 1,000,000 USDC. The max DOGE long open interest is capped at 300 ETH worth. If DOGE increases 10x while ETH increases only 2x, the pending USD profits of DOGE longs outpace the USD value of the ETH backing them, and the pool may not be able to cover all profits.
Buying GLV / GM tokens
You can buy GLV / GM tokens on the GLV / GM pools page. ETH or AVAX is required to send the buy transaction. If you need to bridge funds, you can use Jumper Exchange.
To buy tokens:
- Select the "Market" and "Pool" of the GLV / GM token you want to purchase.
- Review the price impact displayed in the "Buy GLV / GM" box. Your purchase has a positive or negative price impact depending on whether it improves or reduces the balance of tokens in the pool.
- If the pool is mostly balanced, a large purchase may result in a significant negative price impact. To avoid this, select the "Pair" option to buy with an equal USD amount of long and short tokens.
Selling GLV / GM tokens
You can sell GLV / GM tokens on the GLV / GM pools page.
Tokens in a market are reserved based on the total open interest. The reserve factor determines how much of the pool can be committed to backing positions:
available liquidity = (pool tokens × reserve factor) − reserved tokens
Where reserved tokens are tokens already committed to cover open positions. The reserve factor is a per-market parameter (typically between 0.5 and 0.95) that prevents the pool from being fully drained by trader positions.
Additionally, each market has MAX_OPEN_INTEREST caps per side (long/short) and MAX_POOL_AMOUNT caps that limit total deposits. These parameters ensure the pool can always cover trader profits under normal conditions.
If the available liquidity for redemption reaches zero, you need to wait for positions to close or for other providers to deposit liquidity before you can sell. The borrow fee rate is also higher in this case, which helps incentivize new deposits.
Shifting GM tokens
You can shift GM tokens on the GM pools page.
GM tokens can only be shifted to another pool that has the same backing tokens, which lets you move liquidity without incurring buy or sell fees. Price impact still applies to shifts, but for balanced pools it is minimal. Price impact costs are displayed on the interface as usual.
Token pricing
The price of a GM token is:
GM token price = (pool value + net pending PnL) / GM totalSupply
Where pool value includes the USD worth of deposited long and short tokens plus accumulated borrowing fees, and net pending PnL is the aggregate unrealized profit/loss of all open trader positions in the market.
The pending PnL component is capped using the MAX_PNL_FACTOR parameter, which has separate values for deposits, withdrawals, and trader position closures. This capping prevents extreme trader profits from fully draining pool value during a single deposit or withdrawal. GLV token prices follow the same principle, aggregated across all underlying GM markets in the vault.
Fees from trading, swaps, borrowing, and liquidations flow directly into the pool, increasing pool value and therefore the GM token price over time. There is no separate claim or distribution step — holding GM tokens is enough to earn fees. On Arbitrum and Avalanche, 63% of collected fees go to the pool and 37% go to the protocol. On Botanix the split is 50/50. You can check the current annualized performance for each pool on the Pools page.
Some long and short tokens may have a spread, which results in a corresponding spread when buying or selling GLV / GM tokens.
GLV / GM pools aim to maintain an equal worth of long and short tokens. When the price of a long token increases, there may be a positive price impact to incentivize selling long tokens for short tokens, rebalancing the pool. While this balancing is incentivized, pools may not always be perfectly balanced. If a pool maintains its balance, its pricing (excluding PnL) mimics a portfolio that is 50% long token and 50% short token, rebalancing as prices change.
Performance APY calculation
The annualized performance APY for GM and GLV tokens measures the excess return compared to a benchmark strategy of holding the underlying tokens in a geometric mean portfolio.
Variable definitions
| Variable | Definition |
|---|---|
TokenA_S | Token A starting price |
TokenB_S | Token B starting price |
TokenA_E | Token A ending price |
TokenB_E | Token B ending price |
GM_S | GM token starting price |
GM_E | GM token ending price |
Benchmark_S | Benchmark investment starting price (equals GM_S) |
Benchmark_E | Benchmark investment ending price |
duration | Number of days in the measurement period |
Calculation steps
Step 1: Calculate benchmark ending price
The benchmark represents a geometric mean portfolio of the underlying tokens:
Benchmark_E = GM_S × √((TokenA_E × TokenB_E) / (TokenA_S × TokenB_S))
Step 2: Calculate annualized performance
The annualized performance APY is the excess return of GM compared to the benchmark, annualized:
Annualized Performance (%) = ((GM_E - Benchmark_E) / GM_S) × 100 × (365 / duration)
Worked example
Given:
TokenA_S= $100,TokenA_E= $110TokenB_S= $200,TokenB_E= $190GM_S= $141.42,GM_E= $144.57duration= 30 days
Benchmark calculation:
Benchmark_E = 141.42 × √((110 × 190) / (100 × 200))
= 141.42 × √(20,900 / 20,000)
= 141.42 × √1.045
= 141.42 × 1.0222
= 144.56
Performance calculation:
Annualized Performance = ((144.57 - 144.56) / 141.42) × 100 × (365 / 30)
= (0.01 / 141.42) × 100 × 12.167
= 0.000071 × 100 × 12.167
= 0.086%
Protocol protections
GMX uses multiple layered mechanisms to keep pools solvent and markets balanced. Each is documented in detail on its respective page.
- Price impact — Trades that increase the open interest imbalance pay a price impact fee; trades that reduce it receive a better price. Per-market caps limit the maximum impact.
- Adaptive funding — The dominant side (longs or shorts) pays the minority side. The rate increases over time while the imbalance persists and decreases as it resolves.
- Borrow fees — Only the side with larger open interest pays. Uses a kink rate model — the rate increases linearly up to an optimal utilization threshold, then rises steeply above it.
- Open interest caps — Each market has per-side
MAX_OPEN_INTERESTlimits that prevent any single market from over-committing pool liquidity. - Reserve factor — Limits how much of the pool can be committed to backing positions, ensuring liquidity remains available for redemptions.
- PnL factor caps —
MAX_PNL_FACTORlimits how much pending trader PnL can affect pool value during deposits, withdrawals, and position closures. - Auto-Deleveraging (ADL) — Automatically reduces profitable positions when the PnL-to-pool ratio exceeds the market's configured threshold, protecting pool solvency.
- Two-phase execution — Orders are committed on-chain before oracle prices are included, preventing frontrunning and sandwich attacks.
- Virtual inventory — Tracks impact across correlated markets to prevent users from reducing their net price impact by opening opposing positions in different markets.
- Price impact rebates — Excess negative price impact beyond a market's cap is claimable as a rebate after a five-day delay, protecting traders from outsized impact during volatile periods.
Risks
Smart contracts carry inherent risk. The team mitigates risks through testing, audits, and bug bounties, but vulnerabilities in smart contract code are always possible. For details on contract operation, see Contracts.
A non-exhaustive list of risks:
- Smart contract risks: Vulnerabilities in smart contract code despite testing and audits.
- Counterparty risks: The GLV / GM pool is the counterparty to traders. If traders profit, that profit comes from the value of the GLV / GM pool.
- Token risks: Bridged tokens depend on the security of the bridge, and pegged tokens carry the risk of depegging.
- Open interest imbalance: While funding fees and price impact incentivize balanced long and short open interest, positions may not always be balanced. For example, if long positions are balanced against high-leverage short positions and a sudden price spike occurs, the short positions could be liquidated, temporarily creating an imbalance.
- GLV shift exploitation: The GLV shift feature rebalances liquidity between markets based on utilization. An attacker could temporarily inflate utilization in a low-utilization market to trigger a shift, then reverse the position. Position fees and price impact are configured to make this costly.
- GLV illiquid GM tokens: GM tokens in a GLV can become illiquid due to high PnL factor or high reserved USD. Users could deposit illiquid GM tokens into a GLV and withdraw liquidity from a different market, leaving the GLV holding illiquid tokens. The
glvMaxMarketTokenBalanceUsdandglvMaxMarketTokenBalanceAmountparameters limit exposure to risky markets. - GLV negative market value: If the value of a GM market within a GLV becomes negative, the GLV may be unusable until that market's value recovers.
Hedging open interest imbalance
For liquidity providers that hedge the difference between long and short open interest, the relevant difference is between the long and short openInterestInTokens values multiplied by the current index token price (notional value), not the difference in openInterest USD values recorded at position entry. Funding rates and borrow fees use this same notional-based comparison to incentivize balanced long and short open interest.
Next steps
- Trade on GMX — Open leveraged positions using pool liquidity.
- Contracts — Review smart contract details.
- GLV / GM pools app — Start providing liquidity.