← Protocols
Premia
01Description

Hybrid AMM + orderbook options protocol (Premia Blue / v3) on Arbitrum and Ethereum. LPs supply concentrated range orders to specific (lower, upper) price bounds for a strike/expiry, while takers can route between AMM quotes and signed RFQ quotes from off-chain market makers.

02Best for
  • 01European-style cash-settled options
  • 02range-order LPing with ticked premium pricing
  • 03RFQ-style options for sophisticated market makers
  • 04options vaults built on top of Premia AMM legs
03Install
  • pnpm add @premia/v3-sdk viem
  • forge install Premian-Labs/v3-contracts
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_ARB_RPC_URLClientArbitrum One RPC endpoint for reading and writing to Premia v3 pools.
PREMIA_ORDERBOOK_API_URLClientOff-chain orderbook + indexer base — `https://orderbook.premia.finance` for mainnet quotes & posting RFQs.
PREMIA_API_KEYServerAPI key for the orderbook service for higher rate limits and posting market-maker quotes. Server-only.
05Prompt snippet
Use `@premia/v3-sdk` — instantiate `Premia.initialize({ provider, chainId })`, then `premia.pools.getPoolAddress({ base, quote, oracleAdapter, strike, maturity, isCallPool })` to resolve the pool. Quote a trade with `premia.options.quote({ poolAddress, size, isBuy, premiumLimit })` (returns AMM premium plus best signed RFQ quote). Execute with `premia.options.trade({...})` which calls `IPool.trade(size, isBuy, premiumLimit, referrer)`. LPs deposit via `IPool.deposit({ lower, upper, ...}, size, slippage)` — range orders define a buy-side or sell-side curve over the (`lower`, `upper`) premium range. Off-chain RFQ orders are posted to `POST /quotes` on the orderbook API and signed EIP-712.
06Gotchas
  • Premia v3 uses a Chainlink-based oracle adapter to mark options at expiry; if the oracle adapter isn't whitelisted for a token pair the pool literally cannot be deployed. Always check `OracleAdapter.isPairSupported` before quoting strikes.
  • Range orders are NOT the same as Uniswap V3 LPs — they price options premium, not spot. Provide too narrow a range around current premium and you get filled within ticks; too wide and you collect almost no fees.
  • Options are European and cash-settled; exercise is automatic post-expiry but settlement requires someone to call `IPool.settle`/`settlePosition`. Build a keeper or instruct LPs to claim.
  • The orderbook API is centralised and rate-limited — production order routing should always fall back to on-chain AMM quote if the API is down or returns a stale signed quote (orders include a `deadline`).
  • v2 (Premia Finance, ETH mainnet) and v3 (Premia Blue, Arbitrum + ETH) are separate code bases. Many older docs/SDKs reference v2 — ensure imports resolve to `@premia/v3-sdk`, not `@premia/sdk`.
  • PREMIA token has a vxPREMIA staking contract; rewards are claimed via `vxPREMIA.harvest()` — ignoring this leaks yield for LPs/voters.
07Alternatives