Overview
This framework-agnostic package provides essential utilities for building applications on the Azuro Protocol.
NPM Package
Link: @azuro-org/toolkit (opens in a new tab)
Installation
1. Install the core package
npm install @azuro-org/toolkit
2. Install peer dependencies
npm install @azuro-org/dictionaries@^3.0.26 graphql-tag@^2.12.6 @wagmi/core@^2.17.1 viem@^2.29.0
ℹ️
You’ll frequently encounter the following types throughout the toolkit. Here’s a quick overview:
- Selection: Represents a user’s choice, typically used for placing bets and calculating odds.
type Selection = {
outcomeId: string
conditionId: string
}
- ChainData: Contains chain-specific data, such as endpoints and smart contract references.
type ChainData = {
chain: Omit<Chain, 'id'> & { id: ChainId }
graphql: {
bets: string
feed: string
legacyLive: string // @deprecated Only for v2 feed
}
socket: string
api: string
environment: Environment
contracts: Contracts
betToken: BetToken
}
type BetToken = {
address: Address
symbol: string
decimals: number
}
- Contracts — Azuro Protocol contract addresses with their ABIs.
import { type Chain } from 'viem/chains'
import { type Address, erc721Abi } from 'viem'
type Contracts = {
lp: {
address: Address
abi: typeof lpAbi
}
core: {
address: Address
abi: typeof coreAbi
}
relayer: {
address: Address
abi: typeof relayerAbi
}
azuroBet: {
address: Address
abi: typeof azuroBetAbi
},
cashout?: {
address: Address
abi: typeof cashoutAbi
}
}
type BetToken = {
address: Address
symbol: string
decimals: number
}
- Environments: Available environments for creating bet orders.
enum Environment {
GnosisDevXDAI = 'GnosisDevXDAI',
GnosisXDAI = 'GnosisXDAI',
PolygonUSDT = 'PolygonUSDT',
PolygonAmoyUSDT = 'PolygonAmoyUSDT',
ChilizWCHZ = 'ChilizWCHZ',
ChilizSpicyWCHZ = 'ChilizSpicyWCHZ',
BaseWETH = 'BaseWETH',
BaseSepoliaWETH = 'BaseSepoliaWETH'
}
Constants
import {
ODDS_DECIMALS, // odds decimals
BET_DATA_TYPES, // single bet data types for sign typed data
COMBO_BET_DATA_TYPES, // combo bet data types for sign typed data
TYPED_DATA_DOMAIN_NAME, // bet typed data domain name
TYPED_DATA_DOMAIN_VERSION, // bet typed data domain version
CASHOUT_DATA_TYPES, // cashout data types for sign typed data
CASHOUT_TYPED_DATA_DOMAIN_NAME, // cashout typed data domain name
CASHOUT_TYPED_DATA_DOMAIN_VERSION, // cashout typed data domain version
chainsData, // supported chains data with endpoints, contracts and etc.
chainsDataByEnv, // chain data by environment
environments, // environments by chain id
} from '@azuro-org/toolkit'
ABI
import { lpAbi, coreAbi, azuroBetAbi, cashoutAbi, relayerAbi, freeBetAbi } from '@azuro-org/toolkit'
GraphQL Utilities
The toolkit provides ready-to-use queries and fragments for interacting with Azuro subgraphs.
Feed Queries and Fragments
import {
type ConditionFragment,
ConditionFragmentDoc,
type GameInfoFragment,
GameInfoFragmentDoc,
type ConditionQueryVariables,
type ConditionQuery,
ConditionDocument,
type ConditionsQueryVariables,
type ConditionsQuery,
ConditionsDocument,
type GameQueryVariables,
type GameQuery,
GameDocument,
type GamesQueryVariables,
type GamesQuery,
GamesDocument,
type NavigationQueryVariables,
type NavigationQuery,
NavigationDocument,
type SportsNavigationQueryVariables,
type SportsNavigationQuery,
SportsNavigationDocument,
type SportsQueryVariables,
type SportsQuery,
SportsDocument,
} from '@azuro-org/toolkit'
Bets Queries and Fragments
import {
type BettorFragment,
BettorFragmentDoc,
type LegacyLiveBetFragment,
LegacyLiveBetFragmentDoc,
type LegacyPrematchBetFragment,
LegacyPrematchBetFragmentDoc,
type BetFragment,
BetFragmentDoc,
type BetFragment,
BetFragmentDoc,
type BettorsQueryVariables,
type BettorsQuery,
BettorsDocument,
type LegacyBetsQueryVariables,
type LegacyBetsQuery,
LegacyBetsDocument,
type BetsQueryVariables,
type BetsQuery,
BetsDocument,
} from '@azuro-org/toolkit'
Legacy Live Feed Queries and Fragments
Use these to fetch game info related to legacy v2 live bets
import {
type LegacyLiveGamesQueryVariables,
type LegacyLiveGamesQuery,
LegacyLiveGamesDocument,
} from '@azuro-org/toolkit'