← Protocols
Azuro
Prediction Market·EVM (Polygon, Gnosis, Polygon zkEVM, Linea, Chiliz)

Azuro

01Description

Onchain prediction market protocol that supplies liquidity, oracle data and an SDK so any app can launch a sports/event betting frontend in days. Liquidity Pool + Core contracts on multiple EVMs; data delivered via subgraphs.

02Best for
  • 01white-label sports betting frontends
  • 02prediction market dApps
  • 03embedded odds widgets
  • 04liquidity providing strategies
  • 05telegram/social mini-apps for betting
03Install
  • pnpm add @azuro-org/sdk @azuro-org/toolkit @azuro-org/dictionaries
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_AZURO_AFFILIATEClientAffiliate address that receives a share of the protocol fee for each bet placed via your frontend. Required to claim referral rewards.
NEXT_PUBLIC_AZURO_CHAIN_IDClientTarget chain id (e.g. 137 Polygon, 100 Gnosis, 1101 Polygon zkEVM). Drives which Liquidity Pool and subgraph the SDK reads.
05Prompt snippet
Use Azuro for an onchain sports/event betting frontend. Wrap the app in `AzuroSDKProvider` from `@azuro-org/sdk` configured with the target chain and affiliate address, then read live markets via hooks: `useGames`, `useGame`, `useOutcome`, `useBetTokenBalance`. Place bets with `usePrepareBet` + `useBet` (handles approval and the LP `bet` call) — odds come from the protocol's bonded liquidity model, not a CLOB. Subgraph queries (`@azuro-org/toolkit`) drive history and PnL. Resolution feeds in from the Azuro DataFeed oracle; market metadata (sport / league / participant names) is sourced from `@azuro-org/dictionaries`.
06Gotchas
  • Liquidity is pooled (LP-style), not orderbook — odds shift with bet size and pool depth. Show estimated odds *after* slippage from `usePrepareBet`, not the raw current odds, or users will be surprised at fill.
  • Each chain has its own LP, Core, subgraph URL and fee config — hardcoding mainnet endpoints on a Gnosis deploy is a common silent breakage. Always derive endpoints from the chain id via `@azuro-org/toolkit`.
  • Resolution depends on Azuro's centralized DataFeed; disputes / cancellations refund stake but can delay payout. Surface `condition.status` (Created / Resolved / Canceled / Paused) in the UI.
  • Bet tokens differ per chain (USDT on Polygon, xDAI/USDC on Gnosis, etc.). Don't hardcode USDC — read `useBetTokenBalance` and the LP's `betToken` address.
  • Affiliate rewards only accrue if the affiliate address is passed at bet time; setting it post-hoc does not back-fill historical bets.
  • Subgraph indexing can lag the chain by several blocks during congestion — for fresh state (just-placed bets, just-resolved games) read directly from the LP/Core contracts as a fallback.
07Alternatives