diff --git a/.github/workflows/bump.yml b/.github/workflows/bump.yml index 1dfd7f9..84986f9 100644 --- a/.github/workflows/bump.yml +++ b/.github/workflows/bump.yml @@ -1,8 +1,8 @@ name: Bump version -# Fetches the latest supergraph schema, diffs it against the committed copy, -# commits the schema update, bumps the version (minor if the schema diff has -# breaking changes, patch otherwise), and pushes a v* tag. Pushing the tag +# Fetches the latest supergraph schema, diffs it against the latest npm release, +# bumps the version (minor for breaking changes, patch otherwise), and pushes +# a v* tag. Pushing the tag # triggers release.yml, which builds and publishes to npm. The GitHub Release # notes lead with the schema diff, followed by auto-generated PR notes. # @@ -31,10 +31,11 @@ jobs: run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - - name: Fetch latest schema and diff against committed copy + - name: Fetch latest schema and diff against published package id: diff run: | - cp src/resources/schema.graphql /tmp/old-schema.graphql + PREVIOUS_PACKAGE=$(npm pack @codex-data/sdk@latest --pack-destination "$RUNNER_TEMP" --silent) + tar -xOf "$RUNNER_TEMP/$PREVIOUS_PACKAGE" package/schema.graphql > /tmp/old-schema.graphql pnpm run fetch:schema pnpm --silent run schema:diff /tmp/old-schema.graphql src/resources/schema.graphql > /tmp/schema-changes.md cat /tmp/schema-changes.md >> "$GITHUB_STEP_SUMMARY" @@ -48,11 +49,6 @@ jobs: echo "release=false" >> "$GITHUB_OUTPUT" echo "Schema unchanged and no commits since $LAST_TAG — skipping release." >> "$GITHUB_STEP_SUMMARY" fi - - name: Commit schema update - if: steps.gate.outputs.release == 'true' && steps.diff.outputs.changed == 'true' - run: | - git add src/resources/schema.graphql - git commit -m "chore: update supergraph schema" - name: Bump version and tag if: steps.gate.outputs.release == 'true' id: bump diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f827b8f..4504d97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,11 @@ on: tags: - "v*" workflow_dispatch: + inputs: + dry_run: + description: Build and dry-run publication without uploading a package + type: boolean + default: false jobs: publish: @@ -24,4 +29,11 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm run build # Trusted Publishing (OIDC) needs npm >= 11.5.1; Node 24 ships with it. - - run: npm publish --access public + - name: Dry-run publication + if: inputs.dry_run + run: | + npm version prerelease --no-git-tag-version --preid="dry-run.${GITHUB_RUN_ID}" + npm publish --dry-run --access public --tag dry-run + - name: Publish package + if: ${{ !inputs.dry_run }} + run: npm publish --access public diff --git a/.gitignore b/.gitignore index eb2ddb2..69bdceb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,8 @@ coverage dist yarn-error.log -# Generated resources (regenerated at build time), except the schema — -# it's tracked so releases record schema changes and builds are reproducible. -# fetch:schema updates it; build reads the committed copy. +# Resources, including the schema, are regenerated at build time. src/resources/* -!src/resources/schema.graphql # Published copy of the schema (regenerated by fetch:schema) /schema.graphql diff --git a/package.json b/package.json index ff485e9..69551b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@codex-data/sdk", - "version": "2.6.3", + "version": "2.6.4", "engines": { "node": ">=17.5.0" }, @@ -24,14 +24,13 @@ "scripts": { "prebuild": "pnpm run clean && pnpm run generate:configs", "clean": "rm -rf dist dist-esm", - "build": "pnpm run copy:schema && pnpm run generate:graphql && pnpm run build:sdk && pnpm run codegen && pnpm run lint ./src/sdk --fix && pnpm run build:types", + "build": "pnpm run fetch:schema && pnpm run generate:graphql && pnpm run build:sdk && pnpm run codegen && pnpm run lint ./src/sdk --fix && pnpm run build:types", "build:types": "pnpm run build:cjs && pnpm run build:esm && pnpm run build:rename-esm && pnpm run build:edge", "build:cjs": "tsc", "build:esm": "tsc -p tsconfig.esm.json", "build:rename-esm": "find dist-esm -name '*.js' -exec sh -c 'mv \"$1\" \"${1%.js}.mjs\"' _ {} \\; && cp -r dist-esm/* dist/ && rm -rf dist-esm", "build:edge": "esbuild src/edge.ts --bundle --format=esm --platform=neutral --packages=external --target=es2020 --outfile=dist/edge.mjs", - "fetch:schema": "curl -s https://graph.codex.io/schema/latest.graphql --output src/resources/schema.graphql && cp src/resources/schema.graphql schema.graphql", - "copy:schema": "cp src/resources/schema.graphql schema.graphql", + "fetch:schema": "mkdir -p src/resources && curl --fail --silent --show-error https://graph.codex.io/schema/latest.graphql --output src/resources/schema.graphql && cp src/resources/schema.graphql schema.graphql", "schema:diff": "tsx src/scripts/schemaDiff.ts", "generate:configs": "tsx src/scripts/generateNetworkConfigs.ts", "generate:graphql": "tsx src/scripts/generateGraphql.ts", @@ -41,8 +40,8 @@ "test": "pnpm run build:types && jest", "format": "prettier --write .", "prepublishOnly": "pnpm run build", - "publish:beta": "pnpm publish --tag beta --access public", - "publish:latest": "pnpm publish --access public" + "publish:beta": "pnpm publish --tag beta --access public --no-git-checks", + "publish:latest": "pnpm publish --access public --no-git-checks" }, "files": [ "dist/index.js", diff --git a/src/resources/schema.graphql b/src/resources/schema.graphql deleted file mode 100644 index e1e4066..0000000 --- a/src/resources/schema.graphql +++ /dev/null @@ -1,18446 +0,0 @@ -type Query { - """Returns an NFT pool.""" - getNftPool( - """The contract address of the NFT pool.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - ): NftPoolResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns transactions for an NFT collection across all NFT pools or within a given pool.""" - getNftPoolEvents( - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The contract address of the NFT collection.""" - collectionAddress: String - """The NFT pool address to filter by.""" - poolAddress: String - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String - """The event types to filter by.""" - eventTypes: [NftPoolEventType!] - """The time range to filter by.""" - timestamp: EventQueryTimestampInput - """The cursor to use for pagination.""" - cursor: String - """The maximum number of NFT pool events to return.""" - limit: Int - ): NftPoolEventsResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns an NFT pool collection with pool stats for a given AMM NFT marketplace.""" - getNftPoolCollection( - """The contract address of the NFT collection.""" - collectionAddress: String! - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - ): NftPoolCollectionResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns an NFT collection with pool stats for a given AMM NFT marketplace.""" - getNftPoolCollectionsByExchange( - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The cursor to use for pagination.""" - cursor: String - """The maximum number of NFT collections to return.""" - limit: Int - ): GetNftPoolCollectionsResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns NFT pools for a given collection and AMM NFT marketplace.""" - getNftPoolsByCollectionAndExchange( - """The contract address of the NFT collection.""" - collectionAddress: String! - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The cursor to use for pagination.""" - cursor: String - """The maximum number of NFT pools to return.""" - limit: Int - ): GetNftPoolsResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT pools for a given owner.""" - getNftPoolsByOwner( - """The contract address of the pool owner.""" - ownerAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String - """The cursor to use for pagination.""" - cursor: String - """The maximum number of NFT pools to return.""" - limit: Int - ): GetNftPoolsResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns aggregated NFT pool/collection stats for a given time frame.""" - getNftPoolStats( - """The contract address of the NFT collection.""" - collectionAddress: String! - """The NFT AMM marketplace address to filter by.""" - exchangeAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The unix timestamp for the start of the requested range.""" - startTime: Int! - """The unix timestamp for the end of the requested range.""" - endTime: Int! - """The NFT pool address to filter by.""" - poolAddress: String - ): NftPoolStatsResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT collection based on a variety of filters.""" - filterNftCollections( - """A set of filters to apply.""" - filters: NftCollectionFilters - """A list of ranking attributes to apply.""" - rankings: [NftCollectionRanking] - """A phrase to search for. Can match a collection contract address or ID (`address`:`networkId`).""" - phrase: String - """A list of collection contract addresses or IDs (`address`:`networkId`) to filter by.""" - collections: [String] - """The maximum number of NFT collections to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): NftCollectionFilterConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT collections based on a variety of filters.""" - filterNftPoolCollections( - """A set of filters to apply.""" - filters: NftPoolCollectionFilters - """A phrase to search for. Can partially match an NFT collection name.""" - phrase: String - """A list of ranking attributes to apply.""" - rankings: [NftPoolCollectionRanking] - """The maximum number of NFT collections to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`page` from the previous query to request the next page of results.""" - offset: Int - ): NftPoolCollectionFilterConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT collections matching a given query string.""" - searchNfts( - """The maximum number of NFTs to return.""" - limit: Int - """The list of network IDs to filter by.""" - networkFilter: [Int!] - """The time frame to use for calculating stats. Can be `1h`, `4h`, `12h`, or `1d` (default).""" - window: String - """The query string to search for. Can match an NFT collection contract address or partially match a collection's name or symbol.""" - search: String - """The level of NFTs to include in the search. Can be `Asset` or `Collection`.""" - include: [NftSearchable!] - """Whether to filter collections that could be linked to wash trading""" - filterWashTrading: Boolean - ): NftSearchResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT pools based on a variety of filters.""" - filterNftPools( - """A set of filters to apply.""" - filters: NftPoolFilters - """A list of ranking attributes to apply.""" - rankings: [NftPoolRanking] - phrase: String - """The maximum number of NFT pools to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`page` from the previous query to request the next page of results.""" - offset: Int - ): NftPoolFilterConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns stats for an NFT collection across different time frames.""" - getNftCollectionMetadata( - """The ID of the NFT collection (`address`:`networkId`). For example, `0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d:1`.""" - collectionId: String @deprecated(reason: "Use address & networkId instead.") - """The contract address of the NFT collection.""" - address: String - """The network ID the NFT collection is deployed on.""" - networkId: Int - ): NftCollectionMetadataResponse @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT assets in a given collection.""" - getNftAssets( - """The contract address of the NFT collection.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """An optional list of token IDs to filter by.""" - tokenIds: [String] - """Whether to trigger fetching onchain metadata for missing assets. Defaults to false. Fetch results are delayed and can be ingested realtime via onNftAssetsCreated subscription. Free tier API users are limited to 1 missing asset fetch per request, and may only retry fetching a missing asset once per week. To remove these limitations, please upgrade your API plan at https://www.dashboard.defined.fi/plan.""" - fetchMissingAssets: Boolean - """The cursor to use for pagination.""" - cursor: String - """The maximum number of NFT assets to return.""" - limit: Int - ): NftAssetsConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns bucketed stats for a given NFT collection.""" - getDetailedNftStats( - """The contract address of the NFT collection.""" - collectionAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The marketplace address to filter by. Can be used to get marketplace-specific metrics, otherwise uses all.""" - grouping: String - """The unix timestamp for the stats. Defaults to current.""" - timestamp: Int - """The list of durations to get detailed pair stats for.""" - durations: [DetailedNftStatsDuration] - """The number of aggregated values to receive. Note: Each duration has predetermined bucket sizes. The first n-1 buckets are historical. The last bucket is a snapshot of current data. duration `day1`: 6 buckets (4 hours each) plus 1 partial bucket duration `hour12`: 12 buckets (1 hour each) plus 1 partial bucket duration `hour4`: 8 buckets (30 min each) plus 1 partial bucket duration `hour1`: 12 buckets (5 min each) plus 1 partial bucket duration `min5`: 5 buckets (1 min each) plus 1 partial bucket For example, requesting 11 buckets for a `min5` duration will return the last 10 minutes worth of data plus a snapshot for the current minute.""" - bucketCount: Int - ): DetailedNftStats @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns transactions for an NFT collection across any marketplace(s).""" - getNftEvents( - """The contract address of the NFT collection.""" - address: String - """The NFT marketplace address to filter by.""" - exchangeAddress: String - """The NFT pool address to filter by.""" - poolAddress: String - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The token ID to filter by.""" - tokenId: String - """The cursor to use for pagination.""" - cursor: String - """The time range to filter by.""" - timestamp: EventQueryTimestampInput - """The maximum number of NFT events to return.""" - limit: Int - includeTransfers: Boolean - ): NftEventsConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of NFT collection metadata.""" - getNftContracts( - """A list of NFT contract address and network IDs.""" - contracts: [NftContractInput] - ): [EnhancedNftContract] @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of Parallel assets based on a variety of filters.""" - filterNftParallelAssets( - """A set of filters to apply.""" - filters: ParallelAssetFilters - """A phrase to search for. Can match a Parallel asset ID (`address`:`tokenId`) or partially match a name.""" - phrase: String - """A set of parameters to match.""" - match: ParallelAssetMatchers - """A list of ranking attributes to apply.""" - rankings: [ParallelAssetRanking] - """The maximum number of Parallel assets to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): ParallelAssetFilterConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns changes made to Parallel card metadata over time.""" - getParallelCardChanges( - """The token ID for a Parallel asset.""" - tokenId: String - """The time frame to request card changes.""" - timestamp: ParallelCardChangeQueryTimestampInput - """The cursor to use for pagination.""" - cursor: String - """The maximum number of Parallel card changes to return.""" - limit: Int - ): ParallelCardChangesConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of Prime pool cached assets.""" - getPrimePoolAssets( - """The network ID the Prime pool is deployed on.""" - networkId: Int! - """The contract address of the Prime pool.""" - poolContractAddress: String - """The pool ID for the Prime pool, within the contract.""" - poolId: String - """The owner wallet address to filter assets by.""" - walletAddress: String - """The maximum number of Prime Pool assets to return.""" - limit: Int - """The cursor to use for pagination.""" - cursor: String - ): PrimePoolAssetConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of Prime pool events.""" - getPrimePoolEvents( - """The network ID the Prime pool is deployed on.""" - networkId: Int! - """The contract address of the Prime pool.""" - poolContractAddress: String - """The pool ID for the Prime pool, within the contract.""" - poolId: String - """The calling wallet address to filter events by.""" - walletAddress: String - """The event types to query for.""" - eventTypes: [PrimePoolEventType] - """The maximum number of Prime Pool events to return.""" - limit: Int - """The cursor to use for pagination.""" - cursor: String - ): PrimePoolEventConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns a list of Prime pools.""" - getPrimePools( - """The contract address for the prime pool.""" - address: String! - """The network ID the prime pool is deployed on.""" - networkId: Int! - """An optional list of pool IDs to filter by.""" - poolIds: [String] - """The maximum number of Prime pools to return.""" - limit: Int - """The cursor to use for pagination.""" - cursor: String - ): PrimePoolConnection @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns list of wallets that hold a given collection, ordered by holdings descending. Also has the unique count of holders for that collection.""" - nftHolders( - input: NftHoldersInput! - ): NftHoldersResponse! @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns list of collections and quantity of NFTs held by a given wallet.""" - walletNftCollections( - input: WalletNftCollectionsInput! - ): WalletNftCollectionsResponse! @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Returns list of NFT assets held by a given wallet for a single collection.""" - walletNftCollectionAssets( - input: WalletNftCollectionAssetsInput! - ): WalletNftCollectionAssetsResponse! @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Get all active short-lived api tokens for this api key""" - apiTokens: [ApiToken!]! - """Get the active short-lived api token for this api key by the short-lived token""" - apiToken( - token: String! - ): ApiToken! - """Usage for the caller's account in the current billing period, compared with the plan quota. Free to call, and callable when the account is over its limit. Numbers are aggregated by the usage pipeline, not updated per request; see `updatedAt`.""" - apiUsage: ApiUsage! - """Returns the full vocabulary of wallet label types and their metadata.""" - walletLabelTypes: [WalletLabelType!]! - """Returns community gathered notes.""" - getCommunityNotes( - input: CommunityNotesInput - ): CommunityNotesResponse! - """Returns windowed and all-time stats for a prediction market.""" - detailedPredictionMarketStats( - """Input parameters used to select a market and stat windows.""" - input: DetailedPredictionMarketStatsInput! - ): DetailedPredictionMarketStats - """Returns windowed and all-time stats for a prediction event.""" - detailedPredictionEventStats( - """Input parameters used to select an event and stat windows.""" - input: DetailedPredictionEventStatsInput! - ): DetailedPredictionEventStats - """Returns windowed and all-time stats for a prediction trader.""" - detailedPredictionTraderStats( - """Input parameters used to select a trader and stat windows.""" - input: DetailedPredictionTraderStatsInput! - ): DetailedPredictionTraderStats - """Returns per-market performance stats for a specific trader.""" - predictionTraderMarketsStats( - """Input parameters used to select a trader and optional market constraints.""" - input: PredictionTraderMarketsStatsInput! - ): PredictionTraderMarketsStatsConnection! - """Returns bar data for a prediction trader over a time range.""" - predictionTraderBars( - """Input parameters used to select a trader, range, and resolution.""" - input: PredictionTraderBarsInput! - ): PredictionTraderBarsResponse! - """Returns OHLC-style bar data for a prediction market.""" - predictionMarketBars( - """Input parameters used to select a market, range, and resolution.""" - input: PredictionMarketBarsInput! - ): PredictionMarketBarsResponse - """Returns bar data for a prediction event.""" - predictionEventBars( - """Input parameters used to select an event, range, and resolution.""" - input: PredictionEventBarsInput! - ): PredictionEventBarsResponse - """Returns bar data for top markets inside a prediction event.""" - predictionEventTopMarketsBars( - """Input parameters used to select an event, number of markets, and time settings.""" - input: PredictionEventTopMarketsBarsInput! - ): PredictionEventTopMarketsBarsResponse - """Returns prediction trades with cursor-based pagination.""" - predictionTrades( - """Input parameters used to filter prediction trades.""" - input: PredictionTradesInput! - ): PredictionTradesConnection - """Returns prediction markets by ID.""" - predictionMarkets( - """Input parameters containing market IDs to fetch.""" - input: PredictionMarketsInput! - ): [PredictionMarket!]! - """Returns price data for a prediction market at a specific timestamp or latest.""" - predictionMarketPrice( - """Input parameters specifying the market and optional timestamp.""" - input: PredictionMarketPriceInput! - ): PredictionMarketPrice - """Returns live order books for a set of prediction outcomes, fetched from the venue's CLOB. Polymarket and Kalshi; outcomes from other venues will return null. Cached for up to 10s.""" - predictionOutcomeOrderBooks( - """The composite outcome IDs to fetch order books for. One entry returned per requested ID, in input order; null when the outcome is unknown or the venue is unsupported.""" - outcomeIds: [String!]! - ): [PredictionOutcomeOrderBook]! - """Returns prediction traders by ID.""" - predictionTraders( - """Input parameters containing trader IDs to fetch.""" - input: PredictionTradersInput! - ): [PredictionTrader!]! - """Returns token holder balances for a prediction market.""" - predictionTokenHolders( - """Input parameters used to select the market/token and pagination settings.""" - input: PredictionTokenHoldersInput! - ): PredictionTokenHoldersConnection - """Returns all prediction token holdings for a specific trader.""" - predictionTraderHoldings( - """Input parameters for trader holdings query.""" - input: PredictionTraderHoldingsInput! - ): PredictionTraderHoldingsConnection - """Filters prediction events using optional text, IDs, and ranking criteria.""" - filterPredictionEvents( - """A set of filters to apply.""" - filters: PredictionEventFilters - """A phrase to search for. Can match event question, tags, or description.""" - phrase: String - """A list of event IDs to filter by.""" - eventIds: [String!] - """A list of event IDs to exclude from results.""" - excludeEventIds: [String!] - """A list of ranking attributes to apply.""" - rankings: [PredictionEventRanking!] - """Deprecated. No longer affects market ordering.""" - marketSort: PredictionEventMarketSort @deprecated(reason: "No longer affects market ordering.") - """The maximum number of events to return.""" - limit: Int - """Where in the list the server should start when returning items.""" - offset: Int - ): PredictionEventFilterConnection - """Returns available prediction categories and nested subcategories.""" - predictionCategories: [PredictionCategory!]! - """Filters prediction markets using optional text, IDs, event constraints, and ranking criteria.""" - filterPredictionMarkets( - """A set of filters to apply.""" - filters: PredictionMarketFilters - """A phrase to search for. Can match market label, outcome labels, or event label.""" - phrase: String - """A list of market IDs to filter by.""" - marketIds: [String!] - """A list of market IDs to exclude from results.""" - excludeMarketIds: [String!] - """A list of event IDs to filter markets by (returns markets belonging to these events).""" - eventIds: [String!] - """A list of event IDs to exclude (excludes markets belonging to these events).""" - excludeEventIds: [String!] - """A list of ranking attributes to apply.""" - rankings: [PredictionMarketRanking!] - """The maximum number of markets to return.""" - limit: Int - """Where in the list the server should start when returning items.""" - offset: Int - ): PredictionMarketFilterConnection - """Filters prediction markets within a single event and returns structured classification metadata for each market. Use this instead of `filterPredictionMarkets` when you need entrant/segment/ladder details (country codes, period+stat grouping, parsed numeric/date rungs) without re-parsing labels client-side.""" - eventScopedFilterPredictionMarkets( - """The ID of the prediction event to scope the query to. Required.""" - eventId: String! - """A set of filters to apply.""" - filters: PredictionMarketFilters - """A phrase to search for. Can match market label, outcome labels, or event label.""" - phrase: String - """A list of market IDs to filter by (further restricts within the event).""" - marketIds: [String!] - """A list of market IDs to exclude from results.""" - excludeMarketIds: [String!] - """A list of ranking attributes to apply.""" - rankings: [PredictionMarketRanking!] - """The maximum number of markets to return.""" - limit: Int - """Where in the list the server should start when returning items.""" - offset: Int - ): EventScopedPredictionMarketFilterConnection - """Filters trader-market records using trader, market, event, and ranking criteria.""" - filterPredictionTraderMarkets( - """A set of filters to apply.""" - filters: PredictionTraderMarketFilters - """A phrase to search for. Can match trader alias, market label, or event label.""" - phrase: String - """A list of trader IDs to filter by.""" - traderIds: [String!] - """A list of trader IDs to exclude from results.""" - excludeTraderIds: [String!] - """A list of market IDs to filter by.""" - marketIds: [String!] - """A list of market IDs to exclude from results.""" - excludeMarketIds: [String!] - """A list of event IDs to filter by (returns records for markets in these events).""" - eventIds: [String!] - """A list of event IDs to exclude.""" - excludeEventIds: [String!] - """A list of ranking attributes to apply.""" - rankings: [PredictionTraderMarketRanking!] - """The maximum number of results to return.""" - limit: Int - """Where in the list the server should start when returning items.""" - offset: Int - ): PredictionTraderMarketFilterConnection - """Filters prediction traders using optional text, IDs, and ranking criteria.""" - filterPredictionTraders( - """A set of filters to apply.""" - filters: PredictionTraderFilters - """A phrase to search for. Can match trader alias, address, or venue ID.""" - phrase: String - """A list of trader IDs to filter by.""" - traderIds: [String!] - """A list of trader IDs to exclude from results.""" - excludeTraderIds: [String!] - """A list of ranking attributes to apply.""" - rankings: [PredictionTraderRanking!] - """The maximum number of results to return.""" - limit: Int - """Where in the list the server should start when returning items.""" - offset: Int - ): PredictionTraderFilterConnection - """Returns block data for the input blockNumbers or timestamps, maximum 25 inputs.""" - blocks( - input: BlocksInput! - ): [Block!]! - """Returns a list of all networks supported on Codex.""" - getNetworks: [Network!]! - """Returns the status of a list of networks supported on Codex.""" - getNetworkStatus( - """The list of network IDs.""" - networkIds: [Int!]! - ): [MetadataResponse!] - """Returns a user's list of webhooks.""" - getWebhooks( - """The cursor to use for pagination.""" - cursor: String - """webhookId: The id of the webhook you want to retrieve.""" - webhookId: String - """bucketId: The bucketId of the webhooks you want to retrieve. Note that bucketId and webhookId are mutually exclusive, do not send both.""" - bucketId: String - """bucketSortkey: The bucketSortkey of the webhooks you want to retrieve.""" - bucketSortkey: String - """limit: The maximum number of webhooks to return.""" - limit: Int - ): GetWebhooksResponse - """Returns a list of network configurations.""" - getNetworkConfigs( - networkIds: [Int!] - ): [NetworkConfig!]! - """Discover, screen, and rank tokens across every supported network using 100+ on-chain signals: trading activity, liquidity, holder behavior, fee economics, and launchpad lifecycle.""" - filterTokens( - """A set of filters to apply.""" - filters: TokenFilters - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - """A phrase to search for. Can match a token or pair contract address or partially match a token's name or symbol.""" - phrase: String - """A list of token IDs (`address:networkId`) or addresses. Can be left blank to discover new tokens.""" - tokens: [String] - """A list of token IDs (`address:networkId`) to exclude from results""" - excludeTokens: [String] - """A list of ranking attributes to apply.""" - rankings: [TokenRanking] - """Flag to use aggregated token stats. Default is `false`.""" - useAggregatedStats: Boolean - """The maximum number of tokens to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`page` from the previous query to request the next page of results.""" - offset: Int - ): TokenFilterConnection - """Returns the list of token categories, optionally filtered by kind (canonical or narrative) and lifecycle status. Defaults to active categories.""" - categories( - """Filter by category kind.""" - type: CategoryType - """Filter by lifecycle status. Defaults to `ACTIVE`.""" - status: CategoryStatus - ): [Category!]! - """Returns a single token category by its slug, or null if none matches.""" - category( - """The category slug.""" - slug: String! - ): Category - """Returns the tokens assigned to a category (including its subcategories), with optional `filterTokens`-style filters and rankings applied.""" - categoryTokens( - """The category slug.""" - slug: String! - """A set of additional filters to apply.""" - filters: TokenFilters - """A list of ranking attributes to apply.""" - rankings: [TokenRanking] - """The maximum number of tokens to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`page` from the previous query to request the next page of results.""" - offset: Int - ): CategoryTokenConnection - """Returns a list of pairs based on a variety of filters.""" - filterPairs( - """A set of filters to apply.""" - filters: PairFilters - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - """A phrase to search for. Can match a token or pair contract address or ID (`address:networkId`), or partially match a token name or symbol.""" - phrase: String - """A list of pair or token contract addresses or IDs (`address:networkId`) to filter by.""" - pairs: [String] - """A set of token contract addresses that make up a pair. Can be used in place of a pair contract address.""" - matchTokens: PairFilterMatchTokens - """A list of ranking attributes to apply.""" - rankings: [PairRanking] - """The maximum number of pairs to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): PairFilterConnection - """Returns a list of exchanges based on a variety of filters.""" - filterExchanges( - """A set of filters to apply.""" - filters: ExchangeFilters - """A phrase to search for. Can match an exchange address or ID (`address:networkId`), or partially match an exchange name.""" - phrase: String - """A list of ranking attributes to apply.""" - rankings: [ExchangeRanking] - """The maximum number of exchanges to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): ExchangeFilterConnection - """Returns a list of networks based on a variety of filters.""" - filterNetworks( - """A set of filters to apply.""" - filters: NetworkFilters - """A list of network IDs to include. If not provided, all networks are considered.""" - networks: [Int!] - """A list of network IDs to exclude.""" - excludeNetworks: [Int!] - """A list of ranking attributes to apply.""" - rankings: [NetworkRanking] - """The maximum number of networks to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): NetworkFilterConnection - """Returns a list of launchpads based on a variety of filters.""" - filterLaunchpads( - """A set of filters to apply.""" - filters: LaunchpadFilters - """A list of launchpad names. Any of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpads: [String!] - """A list of network IDs to include. If not provided, all networks are considered.""" - networks: [Int!] - """The document scope to read: per-network stats (the default) or global all-network rollups.""" - scope: LaunchpadFilterScope - """A list of ranking attributes to apply.""" - rankings: [LaunchpadRanking!] - """The maximum number of launchpads to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int - ): LaunchpadFilterConnection - """Returns bucketed stats for a given token within a pair.""" - getDetailedStats( - """The ID of the pair (`address:networkId`).""" - pairId: String! - """The token of interest used to calculate token-specific stats for the pair. Can be `token0` or `token1`.""" - tokenOfInterest: TokenOfInterest - """The unix timestamp for the stats. Defaults to current.""" - timestamp: Int - """The list of window sizes to get detailed stats for.""" - windowSizes: [DetailedStatsWindowSize] - """The number of aggregated values to receive. Note: Each duration has predetermined bucket sizes. The first n-1 buckets are historical. The last bucket is a snapshot of current data. duration `day1`: 6 buckets (4 hours each) plus 1 partial bucket duration `hour12`: 12 buckets (1 hour each) plus 1 partial bucket duration `hour4`: 8 buckets (30 min each) plus 1 partial bucket duration `hour1`: 12 buckets (5 min each) plus 1 partial bucket duration `min5`: 5 buckets (1 min each) plus 1 partial bucket For example, requesting 11 buckets for a `min5` duration will return the last 10 minutes worth of data plus a snapshot for the current minute.""" - bucketCount: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - ): DetailedStats @deprecated(reason: "Use `getDetailedPairStats` instead, it has more resolutions and better support") - """Returns bucketed stats for a given token within a pair.""" - getDetailedPairStats( - """The contract address of the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The token of interest used to calculate token-specific stats for the pair. Can be `token0` or `token1`.""" - tokenOfInterest: TokenOfInterest - """The unix timestamp for the stats. Defaults to current.""" - timestamp: Int - """The list of durations to get detailed pair stats for.""" - durations: [DetailedPairStatsDuration] - """The number of aggregated values to receive. Note: Each duration has predetermined bucket sizes. The first n-1 buckets are historical. The last bucket is a snapshot of current data. duration `day1`: 6 buckets (4 hours each) plus 1 partial bucket duration `hour12`: 12 buckets (1 hour each) plus 1 partial bucket duration `hour4`: 8 buckets (30 min each) plus 1 partial bucket duration `hour1`: 12 buckets (5 min each) plus 1 partial bucket duration `min5`: 5 buckets (1 min each) plus 1 partial bucket For example, requesting 11 buckets for a `min5` duration will return the last 10 minutes worth of data plus a snapshot for the current minute.""" - bucketCount: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - ): DetailedPairStats - """Returns bucketed stats for a given token.""" - getDetailedTokenStats( - """The contract address of the token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The unix timestamp for the stats. Defaults to current.""" - timestamp: Int - """The list of durations to get detailed token stats for. Supported durations are `day1`, `hour12`, `hour4`, `hour1`, and `min5`; other values are ignored and have no corresponding field on `DetailedTokenStats`.""" - durations: [DetailedTokenStatsDuration] - """The number of aggregated values to receive. Note: Each duration has predetermined bucket sizes. The first n-1 buckets are historical. The last bucket is a snapshot of current data. duration `day1`: 6 buckets (4 hours each) plus 1 partial bucket duration `hour12`: 12 buckets (1 hour each) plus 1 partial bucket duration `hour4`: 8 buckets (30 min each) plus 1 partial bucket duration `hour1`: 12 buckets (5 min each) plus 1 partial bucket duration `min5`: 5 buckets (1 min each) plus 1 partial bucket For example, requesting 11 buckets for a `min5` duration will return the last 10 minutes worth of data plus a snapshot for the current minute.""" - bucketCount: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - ): DetailedTokenStats - """Returns bucketed stats for a given token within a list of pairs.""" - getDetailedPairsStats( - input: [GetDetailedPairsStatsInput!]! - ): [DetailedPairStats] - """Returns a list of trending tokens across any given network(s).""" - listTopTokens( - """The maximum number of tokens to return. Max is `50`.""" - limit: Int - """The list of network IDs to filter by.""" - networkFilter: [Int!] - """The time frame for trending results. Can be `1`, `5`, `15`, `30`, `60`, `240`, `720`, or `1D`.""" - resolution: String - ): [TokenWithMetadata!] @deprecated(reason: "This query is no longer supported and will not return up to date data. Use `filterTokens` instead.") - """Returns charting metadata for a given pair. Used for implementing a Trading View datafeed.""" - getSymbol( - """The ID of the pair (`address:networkId`).""" - symbol: String! - """The currency to use for the response. Can be `USD` (default) or `TOKEN`.""" - currencyCode: String - ): SymbolResponse - """Returns metadata for a given network supported on Codex.""" - getNetworkStats( - """The network Id to filter by.""" - networkId: Int! - """The exchange address to filter by (optional).""" - exchangeAddress: String - ): GetNetworkStatsResponse - """Returns a network's stats for each hour or UTC day in a time range, for charts.""" - getNetworkBars( - """Input parameters used to select a network, resolution and range.""" - input: NetworkBarsInput! - ): NetworkBarsResponse! - """Returns transactions for a pair.""" - getTokenEvents( - """The maximum number of transactions to return.""" - limit: Int - """The query filters to apply to the results.""" - query: EventsQueryInput! - """The cursor to use for pagination.""" - cursor: String - """The order to receive the token events. Can be `DESC` (default) or `ASC`.""" - direction: RankingDirection - ): EventConnection - """Returns a list of token events for a given maker (wallet address).""" - getTokenEventsForMaker( - """The maximum number of events to return.""" - limit: Int - """The query filters to apply to the results.""" - query: MakerEventsQueryInput! - """The cursor to use for pagination.""" - cursor: String - """The order to receive the token events. Can be `DESC` (default) or `ASC`.""" - direction: RankingDirection - ): MakerEventConnection - """Returns real-time or historical prices for a list of tokens, fetched in batches.""" - getTokenPrices( - """A list of `GetPriceInput`s. Accepts a maximum of 25 inputs (anything over will be truncated).""" - inputs: [GetPriceInput] - ): [Price] - """Returns aggregated bar chart data to track price changes over time.""" - getTokenBars( - """The ID of the token (`tokenAddress:networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1` returns aggregated bar data for WETH pairs on Ethereum.""" - symbol: String! - """The unix timestamp for the start of the requested range.""" - from: Int! - """The unix timestamp for the end of the requested range.""" - to: Int! - """The time frame for each candle. Available options are `1S`, `5S`, `15S`, `30S`, `1`, `5`, `15`, `30`, `60`, `240`, `720`, `1D`, `7D`. Resolutions lower than 1 minute are only updated for the last 24 hours due to the volume of data produced.""" - resolution: String! - """The currency to use for the response. Can be `USD` or `TOKEN`. Default is `USD`. Use `currencyCode: TOKEN` for native token pricing.""" - currencyCode: QuoteCurrency - """Whether to remove leading null values from the response. Default is `false`. To fetch a token's entire history, set resolution to `1D`, `from` value to `0` and `removeLeadingNullValues` to `true`.""" - removeLeadingNullValues: Boolean - """Whether to remove empty bars from the response. This is useful for eliminating gaps in low-activity tokens. Default is `false`.""" - removeEmptyBars: Boolean - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - """Guarantees number of bars returned is at most this number. Use `countback: 1500` with `from: 0` for maximum results.""" - countback: Int - ): TokenBarsResponse - """Returns bar chart data to track price changes over time.""" - getBars( - """The ID of the pair or token (`pairAddress:networkId` or `tokenAddress:networkId`). If a token contract address is provided, the token's top pair is used. For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1` returns WETH's top pair on Ethereum.""" - symbol: String! - """The unix timestamp for the start of the requested range.""" - from: Int! - """The unix timestamp for the end of the requested range.""" - to: Int! - """The time frame for each candle. Available options are `1S`, `5S`, `15S`, `30S`, `1`, `5`, `15`, `30`, `60`, `240`, `720`, `1D`, `7D`. Resolutions lower than 1 minute are only updated for the last 24 hours due to the volume of data produced.""" - resolution: String! - """The currency to use for the response. Can be `USD` or `TOKEN`. Default is `USD`. Use `currencyCode: TOKEN` for native token pricing.""" - currencyCode: String - """Whether to remove leading null values from the response. Default is `false`. To fetch a token's entire history, set resolution to `1D`, `from` value to `0` and `removeLeadingNullValues` to `true`.""" - removeLeadingNullValues: Boolean - """Whether to remove empty bars from the response. This is useful for eliminating gaps in low-activity tokens. Default is `false`.""" - removeEmptyBars: Boolean - """The token of interest within the token's top pair. Can be `token0` or `token1`. If omitted, the base token is inferred automatically. You can invert the pair by quoting the other token.""" - quoteToken: QuoteToken - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - """Guarantees number of bars returned is at most this number. Use `countback: 1500` with `from: 0` for maximum results.""" - countback: Int - """Specify the type of symbol you want to fetch values for. Can be `TOKEN` or `POOL`.""" - symbolType: SymbolType - ): BarsResponse - """Returns the percentage of a token's total supply held collectively by its top 10 holders.""" - top10HoldersPercent( - tokenId: String! - ): Float - """Returns a list of decentralized exchange metadata.""" - getExchanges( - """Get exchanges with missing fields. Default is `false`.""" - showNameless: Boolean - ): [Exchange!]! - """Returns a URL for a pair chart.""" - chartUrls( - """Input required to fetch a pair chart.""" - input: ChartInput! - ): ChartUrlsResponse - """Returns a list of event labels for a pair.""" - getEventLabels( - """The ID of the pair (`address:networkId`).""" - id: String! - """The maximum number of event labels to return.""" - limit: Int - """The cursor to use for pagination.""" - cursor: String - """The order to receive the token event labels. Can be `DESC` (default) or `ASC`.""" - direction: RankingDirection - ): EventLabelConnection - """Returns a list of token lifecycle events.""" - tokenLifecycleEvents( - """The maximum number of events to return.""" - limit: Int - """The query filters to apply to the results.""" - query: TokenLifecycleEventsQueryInput! - """The cursor to use for pagination.""" - cursor: String - ): TokenLifecycleEventConnection @deprecated(reason: "Token lifecycle events are deprecated and support will be removed on July 15, 2026.") - """Returns a single token by its address & network id.""" - token( - """Input for a token ID.""" - input: TokenInput! - ): EnhancedToken! - """Returns a list of tokens by their addresses & network id, with pagination.""" - tokens( - """A list of token ID input.""" - ids: [TokenInput!] - ): [EnhancedToken]! - """Returns pairs by their IDs (`address:networkId`, or `poolId:networkId` for singleton pools such as Uniswap V4), in request order, with `null` for an ID that is not a known pair. Unlike `filterPairs(pairs:)`, a token address is never expanded into its top pairs. At most 200 IDs.""" - pairs( - """A list of pair IDs (`address:networkId`).""" - ids: [String!]! - ): [Pair]! - """Returns metadata for a pair of tokens.""" - pairMetadata( - """The ID of the pair (`address:networkId`).""" - pairId: String! - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - ): PairMetadata! - """Returns a list of pairs containing a given token.""" - listPairsForToken( - """The maximum number of pairs to return.""" - limit: Int - """The network ID the token is deployed on.""" - networkId: Int! - """The contract address of the token.""" - tokenAddress: String! - ): [Pair]! - """Returns a list of pair metadata for a token.""" - listPairsWithMetadataForToken( - """The maximum number of pairs to return.""" - limit: Int - """The network ID the token is deployed on.""" - networkId: Int! - """The contract address of the token.""" - tokenAddress: String! - ): ListPairsForTokenResponse! - """Returns a list of token simple chart data (sparklines) for the given tokens.""" - tokenSparklines( - input: TokenSparklineInput! - ): [TokenSparkline!]! - """Returns list of token balances that a wallet has.""" - balances( - input: BalancesInput! - ): BalancesResponse! - """Returns list of wallets that hold a given token, ordered by holdings descending. Also has the unique count of holders for that token.""" - holders( - input: HoldersInput! - ): HoldersResponse! - """Returns recorded token analyses, including pending and failed requests. Results are ordered by block number descending, then request timestamp descending. Use simulationId to retrieve a specific request.""" - getSimulateTokenContractResults( - """The token contract address.""" - contractAddress: String! - """The network ID of the token.""" - networkId: Int! - """Optional request ID returned by simulateTokenContract; restricts results to that request.""" - simulationId: String - """Opaque cursor from the preceding response.""" - cursor: String - """Maximum number of records per page. Defaults to 10 when omitted.""" - limit: Int - ): GetSimulateTokenContractResultsConnection! - """Returns a list of latest tokens.""" - getLatestTokens( - """The maximum number of tokens to return. Maximum number of tokens is 50.""" - limit: Int - """The list of network IDs to filter by.""" - networkFilter: [Int!] - """The offset to use for pagination.""" - offset: Int - ): LatestTokenConnection @deprecated(reason: "This query is no longer supported. Use `filterTokens` with a createdAt: DESC filter instead.") - """Returns liquidity locks for a given pair.""" - liquidityLocks( - """The address of the pair.""" - pairAddress: String - """The address of the token.""" - tokenAddress: String - """The network id of the pair.""" - networkId: Int! - """A cursor for use in pagination.""" - cursor: String - ): LiquidityLockConnection @deprecated(reason: "Event-derived and retiring with the legacy lock pipeline. Use liquidityLocksV2.") - """Returns locked liquidity for a pair or token, read from current on-chain state. Vesting is matured at read time, so an expired lock stops counting.""" - liquidityLocksV2( - """The address of the pair.""" - pairAddress: String - """The address of the token.""" - tokenAddress: String - """The network id of the pair.""" - networkId: Int! - """A cursor for use in pagination.""" - cursor: String - ): LiquidityLockV2Connection - """Returns liquidity metadata for a given pair. Includes liquidity lock data.""" - liquidityMetadata( - """The address of the pair.""" - pairAddress: String! - """The network id of the pair.""" - networkId: Int! - ): LiquidityMetadata - """Returns liquidity metadata for a given token. Includes liquidity lock data for up to 100 pairs that the token is in.""" - liquidityMetadataByToken( - """The address of the token.""" - tokenAddress: String! - """The network id of the token.""" - networkId: Int! - ): LiquidityMetadataByToken! - """Once a wallet backfill has been triggered, this query can be used to check the status of the backfill.""" - walletAggregateBackfillState( - input: WalletAggregateBackfillStateInput! - ): WalletAggregateBackfillStateResponse! - """Returns a list of top traders for a given token.""" - tokenTopTraders( - input: TokenTopTradersInput! - ): TokenTopTradersConnection! - """Returns a list of wallets based on a variety of filters.""" - filterWallets( - input: FilterWalletsInput! - ): WalletFilterConnection! - """Returns a list of wallets with stats narrowed down to a specific network.""" - filterNetworkWallets( - input: FilterNetworkWalletsInput! - ): NetworkWalletFilterConnection! @deprecated(reason: "Use filterWallets instead") - """Returns a list of wallets with stats narrowed down to a specific token.""" - filterTokenWallets( - input: FilterTokenWalletsInput! - ): TokenWalletFilterConnection! - """Returns detailed stats for a wallet.""" - detailedWalletStats( - input: DetailedWalletStatsInput! - ): DetailedWalletStats - """Returns a chart of a wallet's activity.""" - walletChart( - input: WalletChartInput! - ): WalletChartResponse - """Returns the compute units charged for the request that carries this field, so you can see what a query costs before you run it at volume. Add it to any query; the field itself is free. `total` is the whole request; `items` lists each priced component. When the whole request was free (every root field errored), all values are zero.""" - usageData: UsageData! - """Returns the sniper, bundler and insider wallets that still hold a token, and how much of the supply they hold.""" - tokenWalletStats( - input: TokenWalletStatsInput! - ): TokenWalletStats! -} - -type Mutation { - """Create a new set of short-lived api access tokens""" - createApiTokens( - input: CreateApiTokensInput! - ): [ApiToken!]! - """Delete a single short-lived api access token by id""" - deleteApiToken( - id: String! - ): String! - """Create event webhooks for price, token/pair, transfer, market cap, and prediction market trades.""" - createWebhooks( - """input: Input for creating webhooks.""" - input: CreateWebhooksInput! - ): CreateWebhooksOutput! - """Delete multiple webhooks.""" - deleteWebhooks( - """input: Input for deleting webhooks.""" - input: DeleteWebhooksInput! - ): DeleteWebhooksOutput - """Queues asynchronous token analysis. Use simulateLiveContractInput; legacy deployment and creation-transaction modes are not supported by the current analyzer. A successful response acknowledges submission, not a trading verdict. Retrieve the outcome with getSimulateTokenContractResults. Non-admin requests have a five-minute cooldown per token and network; a cooldown violation raises TOO_MANY_REQUESTS.""" - simulateTokenContract( - input: SimulateTokenContractInput! - ): SimulateTokenContractResponse - """Force refreshes the balance for a token in a wallet, persisting the result so subsequent `balances` queries reflect it. Supports contract tokens (`<tokenAddress>:<networkId>`, EVM only) and native token balances (`native:<networkId>`, EVM, Solana, and Starknet). Entries that cannot be refreshed (e.g. an unreachable network) are omitted from the response rather than erroring.""" - refreshBalances( - input: [RefreshBalancesInput!]! - ): [Balance!]! - """Backfill wallet aggregates (trading stats) for a given wallet. This is the data used in the filterWallet/filterTokenWallets and detailedWalletStats queries.""" - backfillWalletAggregates( - input: WalletAggregateBackfillInput! - ): WalletAggregateBackfillStateResponse! -} - -"""Live-streamed prediction data subscriptions for trades, stats, and bar updates.""" -type Subscription { - """Live-streamed transactions for an NFT collection.""" - onNftEventsCreated( - """The contract address for the NFT collection.""" - address: String - """The network ID the NFT collection is deployed on.""" - networkId: Int - ): AddNftEventsOutput @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Live-streamed transactions for an NFT asset.""" - onNftAssetsCreated( - """The contract address for the NFT collection""" - address: String - """The network ID the NFT collection is deployed on.""" - networkId: Int - """The token ID of the NFT asset.""" - tokenId: String - ): NftAsset @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Live streamed NFT pool events for a given pool address or collection address.""" - onNftPoolEventsCreated( - """The NFT pool address to filter by.""" - poolAddress: String - """The network ID to filter by.""" - networkId: Int - """The contract address of the NFT collection to filter by.""" - collectionAddress: String - """The contract address of the NFT AMM marketplace to filter by.""" - exchangeAddress: String - ): AddNftPoolEventsOutput @deprecated(reason: "NFT data coverage will be removed on March 31, 2026") - """Streams new prediction trades as they are ingested.""" - onPredictionTradesCreated( - """Optional subscription filters for narrowing by market, event, or trader. Omit to receive the firehose of all trades.""" - input: OnPredictionTradesCreatedInput - ): AddPredictionTradeOutput - """Streams updated detailed stats for a specific prediction market.""" - onDetailedPredictionMarketStatsUpdated( - """The ID of the prediction market.""" - marketId: String! - ): DetailedSubscriptionPredictionMarketStats - """Streams updated detailed stats for a specific prediction event.""" - onDetailedPredictionEventStatsUpdated( - """The ID of the prediction event.""" - eventId: String! - ): DetailedSubscriptionPredictionEventStats - """Live-streamed bar chart data to track price changes over time for a prediction market.""" - onPredictionMarketBarsUpdated( - """The ID of the prediction market.""" - marketId: String! - ): OnPredictionMarketBarsUpdatedResponse - """Live-streamed bar chart data to track price changes over time for a prediction event.""" - onPredictionEventBarsUpdated( - """The ID of the prediction event.""" - eventId: String! - ): OnPredictionEventBarsUpdatedResponse - """Live-streamed bar chart data to track price changes over time. Processed updates are projected into `aggregates` using the confirmed bar shape.""" - onBarsUpdated( - """The ID of the pair (`address`:`networkId`).""" - pairId: String - """The commitment levels to subscribe to. Preprocessed is deprecated because edge node performance improvements have made it unnecessary. Use Processed instead.""" - commitmentLevel: [BarCommitmentLevel!] - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - ): OnBarsUpdatedResponse - """Deprecated unconfirmed live-streamed bar chart data to track price changes over time. Use `onBarsUpdated` instead. (Solana only)""" - onUnconfirmedBarsUpdated( - """The ID of the pair (`address`:`networkId`).""" - pairId: String - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - ): OnUnconfirmedBarsUpdated @deprecated(reason: "Use onBarsUpdated instead") - """Live-streamed aggregate bar chart data to track price changes over time for a token.""" - onTokenBarsUpdated( - """The ID of the token (`address`:`networkId`). Required unless you are on an enterprise plan including BarFeed features.""" - tokenId: String - """The commitment levels to subscribe to. Preprocessed is deprecated because edge node performance improvements have made it unnecessary. Use Processed instead.""" - commitmentLevel: [BarCommitmentLevel!] - """The networkId to use when getting all bars per network.""" - networkId: Int - ): OnTokenBarsUpdatedResponse - """Live-streamed transactions for a pair.""" - onEventsCreated( - """The pair contract address.""" - address: String - """The ID of the pair (`address`:`networkId`). Required unless you are on an enterprise plan including EventFeed features.""" - id: String - """The commitment levels to subscribe to. When multiple commitment levels are subscribed to, events are emitted at most once per increasing commitment stage per subscriber. If a stronger commitment level is observed first, later weaker updates for the same event are suppressed for a short in-memory window. Preprocessed is deprecated because edge node performance improvements have made it unnecessary. Use Processed instead. Preprocessed is supported only for Solana event subscriptions. Preprocessed evaluates pre-execution events and can differ significantly from processed or confirmed output. In particular, preprocessed swaps may use aggregator swaps before it is known how execution will route the underlying swaps, and many preprocessed events may error and never be processed.""" - commitmentLevel: [EventCommitmentLevel!] - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The networkId to use when getting all events per network""" - networkId: Int - ): AddEventsOutput - """Live-streamed transactions for a maker.""" - onEventsCreatedByMaker( - input: OnEventsCreatedByMakerInput! - """The commitment levels to subscribe to. When multiple commitment levels are subscribed to, events are emitted at most once per increasing commitment stage per subscriber. If a stronger commitment level is observed first, later weaker updates for the same event are suppressed for a short in-memory window. Preprocessed is deprecated because edge node performance improvements have made it unnecessary. Use Processed instead. Preprocessed is supported only for Solana event subscriptions. Preprocessed evaluates pre-execution events and can differ significantly from processed or confirmed output. In particular, preprocessed swaps may use aggregator swaps before it is known how execution will route the underlying swaps, and many preprocessed events may error and never be processed.""" - commitmentLevel: [EventCommitmentLevel!] - ): AddEventsByMakerOutput - """Deprecated unconfirmed live-streamed transactions for a token. Use `onEventsCreated` instead. (Solana only)""" - onUnconfirmedEventsCreated( - """The pair contract address.""" - address: String @deprecated(reason: "Unused") - """The ID of the pair (`address`:`networkId`).""" - id: String - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - ): AddUnconfirmedEventsOutput @deprecated(reason: "Use onEventsCreated instead") - """Deprecated unconfirmed live-streamed transactions for a maker. Use `onEventsCreatedByMaker` instead. (Solana only)""" - onUnconfirmedEventsCreatedByMaker( - input: OnUnconfirmedEventsCreatedByMakerInput! - ): AddUnconfirmedEventsByMakerOutput @deprecated(reason: "Use onEventsCreatedByMaker instead") - """Live-streamed price updates for a token.""" - onPriceUpdated( - """The token contract address. Required unless you are on an enterprise plan including PriceFeed features.""" - address: String - """The network ID the token is deployed on.""" - networkId: Int - """The pair contract address from which to get pricing. Defaults to the top pair for the token.""" - sourcePairAddress: String - """Whether to subscribe to weighted token prices instead of pair-derived prices. Not supported when `sourcePairAddress` is provided.""" - useWeightedPrices: Boolean - ): Price - """Live-streamed price updates for multiple tokens.""" - onPricesUpdated( - input: [OnPricesUpdatedInput!]! - """Whether to subscribe to weighted token prices instead of pair-derived prices. Not supported when any input provides `sourcePairAddress`.""" - useWeightedPrices: Boolean - ): Price! - """Live-streamed stat updates for a given token within a pair.""" - onPairMetadataUpdated( - """The ID of the pair (`address`:`networkId`).""" - id: String - """The token of interest within the pair. Can be `token0` or `token1`. If not specified, returns data for both tokens.""" - quoteToken: QuoteToken - """If true, automatically selects the non-liquidity token as the quoteToken. Ignored if quoteToken is explicitly specified.""" - useNonLiquidityTokenAsQuoteToken: Boolean - ): PairMetadata - """Live-streamed bucketed stats for a given token within a pair.""" - onDetailedStatsUpdated( - """The ID of the pair (`address`:`networkId`).""" - pairId: String - """The token of interest within the pair. Can be `token0` or `token1`.""" - tokenOfInterest: TokenOfInterest - ): DetailedStats - """Live-streamed bucketed stats for a given token.""" - onDetailedTokenStatsUpdated( - """The ID of the token (`address`:`networkId`). Required unless you are on an enterprise plan including TokenStatsFeed features.""" - tokenId: String - """The network ID to stream stats for every token on. Used only when `tokenId` is omitted.""" - networkId: Int - ): DetailedTokenStats - """Live-streamed filter token updates for the current `filterTokens` result set.""" - onFilterTokensUpdated( - """A set of filters to apply.""" - filters: TokenFilters - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`. Default is `UNFILTERED`.""" - statsType: TokenPairStatisticsType - """A phrase to search for. Can match a token or pair contract address or partially match a token's name or symbol.""" - phrase: String - """A list of token IDs (`address:networkId`) or addresses. Can be left blank to discover new tokens.""" - tokens: [String] - """A list of token IDs (`address:networkId`) to exclude from results""" - excludeTokens: [String] - """A list of ranking attributes to apply.""" - rankings: [TokenRanking] - """Flag to use aggregated token stats.""" - useAggregatedStats: Boolean - """How long, in milliseconds, to batch token updates before emitting them. Defaults to 500ms and must be between 0 and 60000.""" - updatePeriod: Int - """The maximum number of tokens to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`page` from the previous query to request the next page of results.""" - offset: Int - ): FilterTokenUpdates - """Live-streamed updates for newly listed tokens.""" - onLatestTokens( - """The ID of the token (`tokenAddress`:`networkId`).""" - id: String - """The network ID the token is deployed on.""" - networkId: Int - """The address of the token contract.""" - tokenAddress: String - ): LatestToken @deprecated(reason: "No longer supported") - """Live-streamed event labels for a token.""" - onEventLabelCreated( - """The ID of the pair (`address`:`networkId`).""" - id: String - ): EventLabel - """Live-streamed published analysis results for a token, across all simulation IDs. This is not a complete request-status stream: use getSimulateTokenContractResults to check pending, failed or indeterminate outcomes.""" - onSimulateTokenContract( - """Required by the resolver, despite being nullable in the schema. The token contract address to monitor.""" - contractAddress: String - """The network ID of the token.""" - networkId: Int! - """Currently ignored. Filter received results by uuid on the client, or query getSimulateTokenContractResults with this ID.""" - simulationId: String - ): SimulateTokenContractResult! - """Live-streamed events for a given token across all it's pools""" - onTokenEventsCreated( - input: OnTokenEventsCreatedInput! - """The commitment levels to subscribe to. When multiple commitment levels are subscribed to, events are emitted at most once per increasing commitment stage per subscriber. If a stronger commitment level is observed first, later weaker updates for the same event are suppressed for a short in-memory window. Preprocessed is deprecated because edge node performance improvements have made it unnecessary. Use Processed instead. Preprocessed is supported only for Solana event subscriptions. Preprocessed evaluates pre-execution events and can differ significantly from processed or confirmed output. In particular, preprocessed swaps may use aggregator swaps before it is known how execution will route the underlying swaps, and many preprocessed events may error and never be processed.""" - commitmentLevel: [EventCommitmentLevel!] - ): AddTokenEventsOutput! - """Live-streamed list of wallets that hold a given token. Also has the unique count of holders for that token.""" - onHoldersUpdated( - """The ID of the token (`address`:`networkId`). Required unless you are on an enterprise plan including BalanceFeed features.""" - tokenId: String - """The network ID to stream holder updates for every token on. Used only when `tokenId` is omitted.""" - networkId: Int - ): HoldersUpdate - """Live-streamed balance updates for a given wallet. Updates left out by `networks` or `excludeTokens` are not charged.""" - onBalanceUpdated( - walletAddress: String! - """Only send updates on these network IDs. Defaults to every network.""" - networks: [Int!] - """Token addresses or IDs (`address:networkId`) to leave out. Use `native` for native balances, or `native:<networkId>` for one network's. Max 200.""" - excludeTokens: [String!] - ): Balance! - """Live-streamed token lifecycle events (mints and burns).""" - onTokenLifecycleEventsCreated( - """The token contract address.""" - address: String - """The network ID the token is deployed on.""" - networkId: Int - ): AddTokenLifecycleEventsOutput! @deprecated(reason: "Token lifecycle events are deprecated and support will be removed on July 15, 2026.") - """Live-streamed launchpad token events batched (more efficient).""" - onLaunchpadTokenEventBatch( - input: OnLaunchpadTokenEventBatchInput - ): [LaunchpadTokenEventOutput!]! - """Live-streamed launchpad token event.""" - onLaunchpadTokenEvent( - input: OnLaunchpadTokenEventInput - ): LaunchpadTokenEventOutput! -} - -"""The display type for the NFT asset attribute.""" -enum NftAssetAttributeDisplayType { - Trait - Stat - Ranking - BoostNumber - BoostPercentage - Date -} - -"""The duration used to request detailed NFT stats.""" -enum DetailedNftStatsDuration { - day30 - week1 - day1 - hour12 - hour4 - hour1 -} - -"""The order of ranking.""" -enum RankingDirection { - ASC - DESC -} - -"""The level of NFTs to search.""" -enum NftSearchable { - Asset - Collection -} - -"""The pool type selected by the pool creator.""" -enum NftPoolType { - BUY - SELL - BUY_AND_SELL -} - -"""The type of NFT in the pool.""" -enum PoolNftType { - ERC721ETH - ERC721ERC20 - ERC1155ETH - ERC1155ERC20 -} - -"""The pool variant.""" -enum GraphQlNftPoolVariant { - ERC20 - NATIVE -} - -"""The mathematical formula that defines how the prices of NFTs change after each buy or sell within a pool.""" -enum BondingCurveType { - EXPONENTIAL - LINEAR - XYK - GDA -} - -"""The type for the NFT asset attribute `value` field.""" -enum NftAssetAttributeType { - String - Number - Array -} - -"""The NFT pool contract version.""" -enum NftPoolContractVersion { - SUDOSWAP_V1 - SUDOSWAP_V2 -} - -"""Token standards.""" -enum NftContractErcType { - ERC721 - ERC721Metadata - ERC721Enumerable - ERC1155 - ERC1155Metadata - Unsupported -} - -"""The attribute used to rank NFT collections.""" -enum NftCollectionRankingAttribute { - totalSupply - lastEventTimestamp - stats1hUsdVolumeCurrent - stats1hUsdVolumePrevious - stats1hUsdVolumeChange - stats1hUsdVolumeByFillsourceOpenseaCurrent - stats1hUsdVolumeByFillsourceOpenseaChange - stats1hUsdVolumeByFillsourceOpenseaPrevious - stats1hUsdVolumeByFillsourceOpenseaProCurrent - stats1hUsdVolumeByFillsourceOpenseaProChange - stats1hUsdVolumeByFillsourceOpenseaProPrevious - stats1hUsdVolumeByFillsourceSeaportCurrent - stats1hUsdVolumeByFillsourceSeaportChange - stats1hUsdVolumeByFillsourceSeaportPrevious - stats1hUsdVolumeByFillsourceX2Y2Current - stats1hUsdVolumeByFillsourceX2Y2Change - stats1hUsdVolumeByFillsourceX2Y2Previous - stats1hUsdVolumeByFillsourceLooksrareCurrent - stats1hUsdVolumeByFillsourceLooksrareChange - stats1hUsdVolumeByFillsourceLooksrarePrevious - stats1hUsdVolumeByFillsourceLooksrareV2Current - stats1hUsdVolumeByFillsourceLooksrareV2Change - stats1hUsdVolumeByFillsourceLooksrareV2Previous - stats1hUsdVolumeByFillsourceBlurCurrent - stats1hUsdVolumeByFillsourceBlurChange - stats1hUsdVolumeByFillsourceBlurPrevious - stats1hUsdVolumeByFillsourceBlurV2Current - stats1hUsdVolumeByFillsourceBlurV2Change - stats1hUsdVolumeByFillsourceBlurV2Previous - stats1hUsdVolumeByFillsourceBlendCurrent - stats1hUsdVolumeByFillsourceBlendChange - stats1hUsdVolumeByFillsourceBlendPrevious - stats1hUsdVolumeByFillsourceGemCurrent - stats1hUsdVolumeByFillsourceGemChange - stats1hUsdVolumeByFillsourceGemPrevious - stats1hUsdVolumeByFillsourceSudoswapCurrent - stats1hUsdVolumeByFillsourceSudoswapChange - stats1hUsdVolumeByFillsourceSudoswapPrevious - stats1hUsdVolumeByFillsourceSudoswapV2Current - stats1hUsdVolumeByFillsourceSudoswapV2Change - stats1hUsdVolumeByFillsourceSudoswapV2Previous - stats1hUsdVolumeByFillsourceCryptopunksCurrent - stats1hUsdVolumeByFillsourceCryptopunksChange - stats1hUsdVolumeByFillsourceCryptopunksPrevious - stats1hUsdAverageCurrent - stats1hUsdAveragePrevious - stats1hUsdAverageChange - stats1hUsdOpenCurrent - stats1hUsdOpenPrevious - stats1hUsdOpenChange - stats1hUsdCloseCurrent - stats1hUsdClosePrevious - stats1hUsdCloseChange - stats1hUsdLowestSaleCurrent - stats1hUsdLowestSalePrevious - stats1hUsdLowestSaleChange - stats1hUsdHighestSaleCurrent - stats1hUsdHighestSalePrevious - stats1hUsdHighestSaleChange - stats1hNetworkBaseTokenVolumeCurrent - stats1hNetworkBaseTokenVolumePrevious - stats1hNetworkBaseTokenVolumeChange - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaCurrent - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaChange - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaPrevious - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaProCurrent - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaProChange - stats1hNetworkBaseTokenVolumeByFillsourceOpenseaProPrevious - stats1hNetworkBaseTokenVolumeByFillsourceSeaportCurrent - stats1hNetworkBaseTokenVolumeByFillsourceSeaportChange - stats1hNetworkBaseTokenVolumeByFillsourceSeaportPrevious - stats1hNetworkBaseTokenVolumeByFillsourceX2Y2Current - stats1hNetworkBaseTokenVolumeByFillsourceX2Y2Change - stats1hNetworkBaseTokenVolumeByFillsourceX2Y2Previous - stats1hNetworkBaseTokenVolumeByFillsourceLooksrareCurrent - stats1hNetworkBaseTokenVolumeByFillsourceLooksrareChange - stats1hNetworkBaseTokenVolumeByFillsourceLooksrarePrevious - stats1hNetworkBaseTokenVolumeByFillsourceLooksrareV2Current - stats1hNetworkBaseTokenVolumeByFillsourceLooksrareV2Change - stats1hNetworkBaseTokenVolumeByFillsourceLooksrareV2Previous - stats1hNetworkBaseTokenVolumeByFillsourceBlurCurrent - stats1hNetworkBaseTokenVolumeByFillsourceBlurChange - stats1hNetworkBaseTokenVolumeByFillsourceBlurPrevious - stats1hNetworkBaseTokenVolumeByFillsourceBlurV2Current - stats1hNetworkBaseTokenVolumeByFillsourceBlurV2Change - stats1hNetworkBaseTokenVolumeByFillsourceBlurV2Previous - stats1hNetworkBaseTokenVolumeByFillsourceBlendCurrent - stats1hNetworkBaseTokenVolumeByFillsourceBlendChange - stats1hNetworkBaseTokenVolumeByFillsourceBlendPrevious - stats1hNetworkBaseTokenVolumeByFillsourceGemCurrent - stats1hNetworkBaseTokenVolumeByFillsourceGemChange - stats1hNetworkBaseTokenVolumeByFillsourceGemPrevious - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapCurrent - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapChange - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapPrevious - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapV2Current - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapV2Change - stats1hNetworkBaseTokenVolumeByFillsourceSudoswapV2Previous - stats1hNetworkBaseTokenVolumeByFillsourceCryptopunksCurrent - stats1hNetworkBaseTokenVolumeByFillsourceCryptopunksChange - stats1hNetworkBaseTokenVolumeByFillsourceCryptopunksPrevious - stats1hNetworkBaseTokenAverageCurrent - stats1hNetworkBaseTokenAveragePrevious - stats1hNetworkBaseTokenAverageChange - stats1hNetworkBaseTokenOpenCurrent - stats1hNetworkBaseTokenOpenPrevious - stats1hNetworkBaseTokenOpenChange - stats1hNetworkBaseTokenCloseCurrent - stats1hNetworkBaseTokenClosePrevious - stats1hNetworkBaseTokenCloseChange - stats1hNetworkBaseTokenLowestSaleCurrent - stats1hNetworkBaseTokenLowestSalePrevious - stats1hNetworkBaseTokenLowestSaleChange - stats1hNetworkBaseTokenHighestSaleCurrent - stats1hNetworkBaseTokenHighestSalePrevious - stats1hNetworkBaseTokenHighestSaleChange - stats1hNonCurrencyMintsCurrent - stats1hNonCurrencyMintsPrevious - stats1hNonCurrencyMintsChange - stats1hNonCurrencySalesCurrent - stats1hNonCurrencySalesPrevious - stats1hNonCurrencySalesChange - stats1hNonCurrencyTokensSoldCurrent - stats1hNonCurrencyTokensSoldPrevious - stats1hNonCurrencyTokensSoldChange - stats1hNonCurrencyTransfersCurrent - stats1hNonCurrencyTransfersPrevious - stats1hNonCurrencyTransfersChange - stats1hNonCurrencyUniqueBuyersCurrent - stats1hNonCurrencyUniqueBuyersPrevious - stats1hNonCurrencyUniqueBuyersChange - stats1hNonCurrencyUniqueSellersCurrent - stats1hNonCurrencyUniqueSellersPrevious - stats1hNonCurrencyUniqueSellersChange - stats1hNonCurrencyUniqueSalesWalletsCurrent - stats1hNonCurrencyUniqueSalesWalletsPrevious - stats1hNonCurrencyUniqueSalesWalletsChange - stats1hNonCurrencyUniqueMintersCurrent - stats1hNonCurrencyUniqueMintersPrevious - stats1hNonCurrencyUniqueMintersChange - stats4hUsdVolumeCurrent - stats4hUsdVolumePrevious - stats4hUsdVolumeChange - stats4hUsdVolumeByFillsourceOpenseaCurrent - stats4hUsdVolumeByFillsourceOpenseaChange - stats4hUsdVolumeByFillsourceOpenseaPrevious - stats4hUsdVolumeByFillsourceOpenseaProCurrent - stats4hUsdVolumeByFillsourceOpenseaProChange - stats4hUsdVolumeByFillsourceOpenseaProPrevious - stats4hUsdVolumeByFillsourceSeaportCurrent - stats4hUsdVolumeByFillsourceSeaportChange - stats4hUsdVolumeByFillsourceSeaportPrevious - stats4hUsdVolumeByFillsourceX2Y2Current - stats4hUsdVolumeByFillsourceX2Y2Change - stats4hUsdVolumeByFillsourceX2Y2Previous - stats4hUsdVolumeByFillsourceLooksrareCurrent - stats4hUsdVolumeByFillsourceLooksrareChange - stats4hUsdVolumeByFillsourceLooksrarePrevious - stats4hUsdVolumeByFillsourceLooksrareV2Current - stats4hUsdVolumeByFillsourceLooksrareV2Change - stats4hUsdVolumeByFillsourceLooksrareV2Previous - stats4hUsdVolumeByFillsourceBlurCurrent - stats4hUsdVolumeByFillsourceBlurChange - stats4hUsdVolumeByFillsourceBlurPrevious - stats4hUsdVolumeByFillsourceBlurV2Current - stats4hUsdVolumeByFillsourceBlurV2Change - stats4hUsdVolumeByFillsourceBlurV2Previous - stats4hUsdVolumeByFillsourceBlendCurrent - stats4hUsdVolumeByFillsourceBlendChange - stats4hUsdVolumeByFillsourceBlendPrevious - stats4hUsdVolumeByFillsourceGemCurrent - stats4hUsdVolumeByFillsourceGemChange - stats4hUsdVolumeByFillsourceGemPrevious - stats4hUsdVolumeByFillsourceSudoswapCurrent - stats4hUsdVolumeByFillsourceSudoswapChange - stats4hUsdVolumeByFillsourceSudoswapPrevious - stats4hUsdVolumeByFillsourceSudoswapV2Current - stats4hUsdVolumeByFillsourceSudoswapV2Change - stats4hUsdVolumeByFillsourceSudoswapV2Previous - stats4hUsdVolumeByFillsourceCryptopunksCurrent - stats4hUsdVolumeByFillsourceCryptopunksChange - stats4hUsdVolumeByFillsourceCryptopunksPrevious - stats4hUsdAverageCurrent - stats4hUsdAveragePrevious - stats4hUsdAverageChange - stats4hUsdOpenCurrent - stats4hUsdOpenPrevious - stats4hUsdOpenChange - stats4hUsdCloseCurrent - stats4hUsdClosePrevious - stats4hUsdCloseChange - stats4hUsdLowestSaleCurrent - stats4hUsdLowestSalePrevious - stats4hUsdLowestSaleChange - stats4hUsdHighestSaleCurrent - stats4hUsdHighestSalePrevious - stats4hUsdHighestSaleChange - stats4hNetworkBaseTokenVolumeCurrent - stats4hNetworkBaseTokenVolumePrevious - stats4hNetworkBaseTokenVolumeChange - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaCurrent - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaChange - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaPrevious - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaProCurrent - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaProChange - stats4hNetworkBaseTokenVolumeByFillsourceOpenseaProPrevious - stats4hNetworkBaseTokenVolumeByFillsourceSeaportCurrent - stats4hNetworkBaseTokenVolumeByFillsourceSeaportChange - stats4hNetworkBaseTokenVolumeByFillsourceSeaportPrevious - stats4hNetworkBaseTokenVolumeByFillsourceX2Y2Current - stats4hNetworkBaseTokenVolumeByFillsourceX2Y2Change - stats4hNetworkBaseTokenVolumeByFillsourceX2Y2Previous - stats4hNetworkBaseTokenVolumeByFillsourceLooksrareCurrent - stats4hNetworkBaseTokenVolumeByFillsourceLooksrareChange - stats4hNetworkBaseTokenVolumeByFillsourceLooksrarePrevious - stats4hNetworkBaseTokenVolumeByFillsourceLooksrareV2Current - stats4hNetworkBaseTokenVolumeByFillsourceLooksrareV2Change - stats4hNetworkBaseTokenVolumeByFillsourceLooksrareV2Previous - stats4hNetworkBaseTokenVolumeByFillsourceBlurCurrent - stats4hNetworkBaseTokenVolumeByFillsourceBlurChange - stats4hNetworkBaseTokenVolumeByFillsourceBlurPrevious - stats4hNetworkBaseTokenVolumeByFillsourceBlurV2Current - stats4hNetworkBaseTokenVolumeByFillsourceBlurV2Change - stats4hNetworkBaseTokenVolumeByFillsourceBlurV2Previous - stats4hNetworkBaseTokenVolumeByFillsourceBlendCurrent - stats4hNetworkBaseTokenVolumeByFillsourceBlendChange - stats4hNetworkBaseTokenVolumeByFillsourceBlendPrevious - stats4hNetworkBaseTokenVolumeByFillsourceGemCurrent - stats4hNetworkBaseTokenVolumeByFillsourceGemChange - stats4hNetworkBaseTokenVolumeByFillsourceGemPrevious - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapCurrent - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapChange - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapPrevious - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapV2Current - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapV2Change - stats4hNetworkBaseTokenVolumeByFillsourceSudoswapV2Previous - stats4hNetworkBaseTokenVolumeByFillsourceCryptopunksCurrent - stats4hNetworkBaseTokenVolumeByFillsourceCryptopunksChange - stats4hNetworkBaseTokenVolumeByFillsourceCryptopunksPrevious - stats4hNetworkBaseTokenAverageCurrent - stats4hNetworkBaseTokenAveragePrevious - stats4hNetworkBaseTokenAverageChange - stats4hNetworkBaseTokenOpenCurrent - stats4hNetworkBaseTokenOpenPrevious - stats4hNetworkBaseTokenOpenChange - stats4hNetworkBaseTokenCloseCurrent - stats4hNetworkBaseTokenClosePrevious - stats4hNetworkBaseTokenCloseChange - stats4hNetworkBaseTokenLowestSaleCurrent - stats4hNetworkBaseTokenLowestSalePrevious - stats4hNetworkBaseTokenLowestSaleChange - stats4hNetworkBaseTokenHighestSaleCurrent - stats4hNetworkBaseTokenHighestSalePrevious - stats4hNetworkBaseTokenHighestSaleChange - stats4hNonCurrencyMintsCurrent - stats4hNonCurrencyMintsPrevious - stats4hNonCurrencyMintsChange - stats4hNonCurrencySalesCurrent - stats4hNonCurrencySalesPrevious - stats4hNonCurrencySalesChange - stats4hNonCurrencyTokensSoldCurrent - stats4hNonCurrencyTokensSoldPrevious - stats4hNonCurrencyTokensSoldChange - stats4hNonCurrencyTransfersCurrent - stats4hNonCurrencyTransfersPrevious - stats4hNonCurrencyTransfersChange - stats4hNonCurrencyUniqueBuyersCurrent - stats4hNonCurrencyUniqueBuyersPrevious - stats4hNonCurrencyUniqueBuyersChange - stats4hNonCurrencyUniqueSellersCurrent - stats4hNonCurrencyUniqueSellersPrevious - stats4hNonCurrencyUniqueSellersChange - stats4hNonCurrencyUniqueSalesWalletsCurrent - stats4hNonCurrencyUniqueSalesWalletsPrevious - stats4hNonCurrencyUniqueSalesWalletsChange - stats4hNonCurrencyUniqueMintersCurrent - stats4hNonCurrencyUniqueMintersPrevious - stats4hNonCurrencyUniqueMintersChange - stats12hUsdVolumeCurrent - stats12hUsdVolumePrevious - stats12hUsdVolumeChange - stats12hUsdVolumeByFillsourceOpenseaCurrent - stats12hUsdVolumeByFillsourceOpenseaChange - stats12hUsdVolumeByFillsourceOpenseaPrevious - stats12hUsdVolumeByFillsourceOpenseaProCurrent - stats12hUsdVolumeByFillsourceOpenseaProChange - stats12hUsdVolumeByFillsourceOpenseaProPrevious - stats12hUsdVolumeByFillsourceSeaportCurrent - stats12hUsdVolumeByFillsourceSeaportChange - stats12hUsdVolumeByFillsourceSeaportPrevious - stats12hUsdVolumeByFillsourceX2Y2Current - stats12hUsdVolumeByFillsourceX2Y2Change - stats12hUsdVolumeByFillsourceX2Y2Previous - stats12hUsdVolumeByFillsourceLooksrareCurrent - stats12hUsdVolumeByFillsourceLooksrareChange - stats12hUsdVolumeByFillsourceLooksrarePrevious - stats12hUsdVolumeByFillsourceLooksrareV2Current - stats12hUsdVolumeByFillsourceLooksrareV2Change - stats12hUsdVolumeByFillsourceLooksrareV2Previous - stats12hUsdVolumeByFillsourceBlurCurrent - stats12hUsdVolumeByFillsourceBlurChange - stats12hUsdVolumeByFillsourceBlurPrevious - stats12hUsdVolumeByFillsourceBlurV2Current - stats12hUsdVolumeByFillsourceBlurV2Change - stats12hUsdVolumeByFillsourceBlurV2Previous - stats12hUsdVolumeByFillsourceBlendCurrent - stats12hUsdVolumeByFillsourceBlendChange - stats12hUsdVolumeByFillsourceBlendPrevious - stats12hUsdVolumeByFillsourceGemCurrent - stats12hUsdVolumeByFillsourceGemChange - stats12hUsdVolumeByFillsourceGemPrevious - stats12hUsdVolumeByFillsourceSudoswapCurrent - stats12hUsdVolumeByFillsourceSudoswapChange - stats12hUsdVolumeByFillsourceSudoswapPrevious - stats12hUsdVolumeByFillsourceSudoswapV2Current - stats12hUsdVolumeByFillsourceSudoswapV2Change - stats12hUsdVolumeByFillsourceSudoswapV2Previous - stats12hUsdVolumeByFillsourceCryptopunksCurrent - stats12hUsdVolumeByFillsourceCryptopunksChange - stats12hUsdVolumeByFillsourceCryptopunksPrevious - stats12hUsdAverageCurrent - stats12hUsdAveragePrevious - stats12hUsdAverageChange - stats12hUsdOpenCurrent - stats12hUsdOpenPrevious - stats12hUsdOpenChange - stats12hUsdCloseCurrent - stats12hUsdClosePrevious - stats12hUsdCloseChange - stats12hUsdLowestSaleCurrent - stats12hUsdLowestSalePrevious - stats12hUsdLowestSaleChange - stats12hUsdHighestSaleCurrent - stats12hUsdHighestSalePrevious - stats12hUsdHighestSaleChange - stats12hNetworkBaseTokenVolumeCurrent - stats12hNetworkBaseTokenVolumePrevious - stats12hNetworkBaseTokenVolumeChange - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaCurrent - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaChange - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaPrevious - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaProCurrent - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaProChange - stats12hNetworkBaseTokenVolumeByFillsourceOpenseaProPrevious - stats12hNetworkBaseTokenVolumeByFillsourceSeaportCurrent - stats12hNetworkBaseTokenVolumeByFillsourceSeaportChange - stats12hNetworkBaseTokenVolumeByFillsourceSeaportPrevious - stats12hNetworkBaseTokenVolumeByFillsourceX2Y2Current - stats12hNetworkBaseTokenVolumeByFillsourceX2Y2Change - stats12hNetworkBaseTokenVolumeByFillsourceX2Y2Previous - stats12hNetworkBaseTokenVolumeByFillsourceLooksrareCurrent - stats12hNetworkBaseTokenVolumeByFillsourceLooksrareChange - stats12hNetworkBaseTokenVolumeByFillsourceLooksrarePrevious - stats12hNetworkBaseTokenVolumeByFillsourceLooksrareV2Current - stats12hNetworkBaseTokenVolumeByFillsourceLooksrareV2Change - stats12hNetworkBaseTokenVolumeByFillsourceLooksrareV2Previous - stats12hNetworkBaseTokenVolumeByFillsourceBlurCurrent - stats12hNetworkBaseTokenVolumeByFillsourceBlurChange - stats12hNetworkBaseTokenVolumeByFillsourceBlurPrevious - stats12hNetworkBaseTokenVolumeByFillsourceBlurV2Current - stats12hNetworkBaseTokenVolumeByFillsourceBlurV2Change - stats12hNetworkBaseTokenVolumeByFillsourceBlurV2Previous - stats12hNetworkBaseTokenVolumeByFillsourceBlendCurrent - stats12hNetworkBaseTokenVolumeByFillsourceBlendChange - stats12hNetworkBaseTokenVolumeByFillsourceBlendPrevious - stats12hNetworkBaseTokenVolumeByFillsourceGemCurrent - stats12hNetworkBaseTokenVolumeByFillsourceGemChange - stats12hNetworkBaseTokenVolumeByFillsourceGemPrevious - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapCurrent - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapChange - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapPrevious - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapV2Current - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapV2Change - stats12hNetworkBaseTokenVolumeByFillsourceSudoswapV2Previous - stats12hNetworkBaseTokenVolumeByFillsourceCryptopunksCurrent - stats12hNetworkBaseTokenVolumeByFillsourceCryptopunksChange - stats12hNetworkBaseTokenVolumeByFillsourceCryptopunksPrevious - stats12hNetworkBaseTokenAverageCurrent - stats12hNetworkBaseTokenAveragePrevious - stats12hNetworkBaseTokenAverageChange - stats12hNetworkBaseTokenOpenCurrent - stats12hNetworkBaseTokenOpenPrevious - stats12hNetworkBaseTokenOpenChange - stats12hNetworkBaseTokenCloseCurrent - stats12hNetworkBaseTokenClosePrevious - stats12hNetworkBaseTokenCloseChange - stats12hNetworkBaseTokenLowestSaleCurrent - stats12hNetworkBaseTokenLowestSalePrevious - stats12hNetworkBaseTokenLowestSaleChange - stats12hNetworkBaseTokenHighestSaleCurrent - stats12hNetworkBaseTokenHighestSalePrevious - stats12hNetworkBaseTokenHighestSaleChange - stats12hNonCurrencyMintsCurrent - stats12hNonCurrencyMintsPrevious - stats12hNonCurrencyMintsChange - stats12hNonCurrencySalesCurrent - stats12hNonCurrencySalesPrevious - stats12hNonCurrencySalesChange - stats12hNonCurrencyTokensSoldCurrent - stats12hNonCurrencyTokensSoldPrevious - stats12hNonCurrencyTokensSoldChange - stats12hNonCurrencyTransfersCurrent - stats12hNonCurrencyTransfersPrevious - stats12hNonCurrencyTransfersChange - stats12hNonCurrencyUniqueBuyersCurrent - stats12hNonCurrencyUniqueBuyersPrevious - stats12hNonCurrencyUniqueBuyersChange - stats12hNonCurrencyUniqueSellersCurrent - stats12hNonCurrencyUniqueSellersPrevious - stats12hNonCurrencyUniqueSellersChange - stats12hNonCurrencyUniqueSalesWalletsCurrent - stats12hNonCurrencyUniqueSalesWalletsPrevious - stats12hNonCurrencyUniqueSalesWalletsChange - stats12hNonCurrencyUniqueMintersCurrent - stats12hNonCurrencyUniqueMintersPrevious - stats12hNonCurrencyUniqueMintersChange - stats24hUsdVolumeCurrent - stats24hUsdVolumePrevious - stats24hUsdVolumeChange - stats24hUsdVolumeByFillsourceOpenseaCurrent - stats24hUsdVolumeByFillsourceOpenseaChange - stats24hUsdVolumeByFillsourceOpenseaPrevious - stats24hUsdVolumeByFillsourceOpenseaProCurrent - stats24hUsdVolumeByFillsourceOpenseaProChange - stats24hUsdVolumeByFillsourceOpenseaProPrevious - stats24hUsdVolumeByFillsourceSeaportCurrent - stats24hUsdVolumeByFillsourceSeaportChange - stats24hUsdVolumeByFillsourceSeaportPrevious - stats24hUsdVolumeByFillsourceX2Y2Current - stats24hUsdVolumeByFillsourceX2Y2Change - stats24hUsdVolumeByFillsourceX2Y2Previous - stats24hUsdVolumeByFillsourceLooksrareCurrent - stats24hUsdVolumeByFillsourceLooksrareChange - stats24hUsdVolumeByFillsourceLooksrarePrevious - stats24hUsdVolumeByFillsourceLooksrareV2Current - stats24hUsdVolumeByFillsourceLooksrareV2Change - stats24hUsdVolumeByFillsourceLooksrareV2Previous - stats24hUsdVolumeByFillsourceBlurCurrent - stats24hUsdVolumeByFillsourceBlurChange - stats24hUsdVolumeByFillsourceBlurPrevious - stats24hUsdVolumeByFillsourceBlurV2Current - stats24hUsdVolumeByFillsourceBlurV2Change - stats24hUsdVolumeByFillsourceBlurV2Previous - stats24hUsdVolumeByFillsourceBlendCurrent - stats24hUsdVolumeByFillsourceBlendChange - stats24hUsdVolumeByFillsourceBlendPrevious - stats24hUsdVolumeByFillsourceGemCurrent - stats24hUsdVolumeByFillsourceGemChange - stats24hUsdVolumeByFillsourceGemPrevious - stats24hUsdVolumeByFillsourceSudoswapCurrent - stats24hUsdVolumeByFillsourceSudoswapChange - stats24hUsdVolumeByFillsourceSudoswapPrevious - stats24hUsdVolumeByFillsourceSudoswapV2Current - stats24hUsdVolumeByFillsourceSudoswapV2Change - stats24hUsdVolumeByFillsourceSudoswapV2Previous - stats24hUsdVolumeByFillsourceCryptopunksCurrent - stats24hUsdVolumeByFillsourceCryptopunksChange - stats24hUsdVolumeByFillsourceCryptopunksPrevious - stats24hUsdAverageCurrent - stats24hUsdAveragePrevious - stats24hUsdAverageChange - stats24hUsdOpenCurrent - stats24hUsdOpenPrevious - stats24hUsdOpenChange - stats24hUsdCloseCurrent - stats24hUsdClosePrevious - stats24hUsdCloseChange - stats24hUsdLowestSaleCurrent - stats24hUsdLowestSalePrevious - stats24hUsdLowestSaleChange - stats24hUsdHighestSaleCurrent - stats24hUsdHighestSalePrevious - stats24hUsdHighestSaleChange - stats24hNetworkBaseTokenVolumeCurrent - stats24hNetworkBaseTokenVolumePrevious - stats24hNetworkBaseTokenVolumeChange - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaCurrent - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaChange - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaPrevious - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaProCurrent - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaProChange - stats24hNetworkBaseTokenVolumeByFillsourceOpenseaProPrevious - stats24hNetworkBaseTokenVolumeByFillsourceSeaportCurrent - stats24hNetworkBaseTokenVolumeByFillsourceSeaportChange - stats24hNetworkBaseTokenVolumeByFillsourceSeaportPrevious - stats24hNetworkBaseTokenVolumeByFillsourceX2Y2Current - stats24hNetworkBaseTokenVolumeByFillsourceX2Y2Change - stats24hNetworkBaseTokenVolumeByFillsourceX2Y2Previous - stats24hNetworkBaseTokenVolumeByFillsourceLooksrareCurrent - stats24hNetworkBaseTokenVolumeByFillsourceLooksrareChange - stats24hNetworkBaseTokenVolumeByFillsourceLooksrarePrevious - stats24hNetworkBaseTokenVolumeByFillsourceLooksrareV2Current - stats24hNetworkBaseTokenVolumeByFillsourceLooksrareV2Change - stats24hNetworkBaseTokenVolumeByFillsourceLooksrareV2Previous - stats24hNetworkBaseTokenVolumeByFillsourceBlurCurrent - stats24hNetworkBaseTokenVolumeByFillsourceBlurChange - stats24hNetworkBaseTokenVolumeByFillsourceBlurPrevious - stats24hNetworkBaseTokenVolumeByFillsourceBlurV2Current - stats24hNetworkBaseTokenVolumeByFillsourceBlurV2Change - stats24hNetworkBaseTokenVolumeByFillsourceBlurV2Previous - stats24hNetworkBaseTokenVolumeByFillsourceBlendCurrent - stats24hNetworkBaseTokenVolumeByFillsourceBlendChange - stats24hNetworkBaseTokenVolumeByFillsourceBlendPrevious - stats24hNetworkBaseTokenVolumeByFillsourceGemCurrent - stats24hNetworkBaseTokenVolumeByFillsourceGemChange - stats24hNetworkBaseTokenVolumeByFillsourceGemPrevious - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapCurrent - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapChange - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapPrevious - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapV2Current - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapV2Change - stats24hNetworkBaseTokenVolumeByFillsourceSudoswapV2Previous - stats24hNetworkBaseTokenVolumeByFillsourceCryptopunksCurrent - stats24hNetworkBaseTokenVolumeByFillsourceCryptopunksChange - stats24hNetworkBaseTokenVolumeByFillsourceCryptopunksPrevious - stats24hNetworkBaseTokenAverageCurrent - stats24hNetworkBaseTokenAveragePrevious - stats24hNetworkBaseTokenAverageChange - stats24hNetworkBaseTokenOpenCurrent - stats24hNetworkBaseTokenOpenPrevious - stats24hNetworkBaseTokenOpenChange - stats24hNetworkBaseTokenCloseCurrent - stats24hNetworkBaseTokenClosePrevious - stats24hNetworkBaseTokenCloseChange - stats24hNetworkBaseTokenLowestSaleCurrent - stats24hNetworkBaseTokenLowestSalePrevious - stats24hNetworkBaseTokenLowestSaleChange - stats24hNetworkBaseTokenHighestSaleCurrent - stats24hNetworkBaseTokenHighestSalePrevious - stats24hNetworkBaseTokenHighestSaleChange - stats24hNonCurrencyMintsCurrent - stats24hNonCurrencyMintsPrevious - stats24hNonCurrencyMintsChange - stats24hNonCurrencySalesCurrent - stats24hNonCurrencySalesPrevious - stats24hNonCurrencySalesChange - stats24hNonCurrencyTokensSoldCurrent - stats24hNonCurrencyTokensSoldPrevious - stats24hNonCurrencyTokensSoldChange - stats24hNonCurrencyTransfersCurrent - stats24hNonCurrencyTransfersPrevious - stats24hNonCurrencyTransfersChange - stats24hNonCurrencyUniqueBuyersCurrent - stats24hNonCurrencyUniqueBuyersPrevious - stats24hNonCurrencyUniqueBuyersChange - stats24hNonCurrencyUniqueSellersCurrent - stats24hNonCurrencyUniqueSellersPrevious - stats24hNonCurrencyUniqueSellersChange - stats24hNonCurrencyUniqueSalesWalletsCurrent - stats24hNonCurrencyUniqueSalesWalletsPrevious - stats24hNonCurrencyUniqueSalesWalletsChange - stats24hNonCurrencyUniqueMintersCurrent - stats24hNonCurrencyUniqueMintersPrevious - stats24hNonCurrencyUniqueMintersChange -} - -"""The attribute used to rank NFT pools.""" -enum NftPoolRankingAttribute { - balanceNBT - balanceUSD - expenseNBT24 - expenseNBTAll - expenseUSD24 - expenseUSDAll - nftBalance - nftsBought24 - nftsBoughtAll - nftsSold24 - nftsSoldAll - nftVolume24 - nftVolumeAll - offerNBT - offerUSD - poolFeesNBT24 - poolFeesNBTAll - poolFeesUSD24 - poolFeesUSDAll - protocolFeesNBT24 - protocolFeesNBTAll - protocolFeesUSD24 - protocolFeesUSDAll - revenueNBT24 - revenueNBTAll - revenueUSD24 - revenueUSDAll - sellNBT - sellUSD - volumeNBT24 - volumeNBTAll - volumeUSD24 - volumeUSDAll -} - -"""The attribute used to rank NFT collections.""" -enum NftPoolCollectionRankingAttribute { - balanceNBT - balanceUSD - expenseNBT24 - expenseNBTAll - expenseUSD24 - expenseUSDAll - floorNBT - floorUSD - highPriceNBT24 - highPriceNBTAll - highPriceUSD24 - highPriceUSDAll - lowPriceNBT24 - lowPriceNBTAll - lowPriceUSD24 - lowPriceUSDAll - nftBalance - nftsBought24 - nftsBoughtAll - nftsSold24 - nftsSoldAll - nftVolume24 - nftVolumeAll - offerNBT - offerUSD - poolFeesNBT24 - poolFeesNBTAll - poolFeesUSD24 - poolFeesUSDAll - protocolFeesNBT24 - protocolFeesNBTAll - protocolFeesUSD24 - protocolFeesUSDAll - revenueNBT24 - revenueNBTAll - revenueUSD24 - revenueUSDAll - totalSupply - volumeNBT24 - volumeNBTAll - volumeUSD24 - volumeUSDAll -} - -"""The type of an NFT pool event.""" -enum NftPoolEventType { - NEW_POOL - SWAP_NFT_IN_POOL - SWAP_NFT_OUT_POOL - NFT_DEPOSIT - NFT_WITHDRAWAL - TOKEN_DEPOSIT - TOKEN_WITHDRAWAL - SPOT_PRICE_UPDATE - DELTA_UPDATE - FEE_UPDATE - ASSET_RECIPIENT_CHANGE - NEW_POOL_V2 - SWAP_NFT_IN_POOL_V2 - SWAP_NFT_OUT_POOL_V2 - NFT_DEPOSIT_V2 - NFT_WITHDRAWAL_V2 - TOKEN_DEPOSIT_V2 - TOKEN_WITHDRAWAL_V2 - SPOT_PRICE_UPDATE_V2 - OWNERSHIP_TRANSFERRED -} - -"""The attribute used to rank NFT collections.""" -enum NftCollectionsLeaderboardMetric { - volumeUsd - volumeUsdGain - sales - salesGain - tokensSold - tokensSoldGain - volumeBase - volumeBaseGain - mints - mintsGain - buyers - buyersGain - sellers - sellersGain -} - -"""The duration used to rank NFTs.""" -enum NftCollectionsLeaderboardDuration { - day30 - week1 - day1 - hour12 - hour4 - hour1 - min15 -} - -"""NFT marketplaces.""" -enum NftExchange { - OPENSEA - SEAPORT - X2Y2 - SUDOSWAPV2 - LOOKSRARE - LOOKSRAREV2 - TOFUNFT - TREASURE - ZEROEXV3 - ZEROEXV4 - QUIXOTIC - JOEPEGS - STRATOS - PLAYDAPP - BLUR - CRYPTOPUNKS - BITKEEP - MINTED - ALTO - PROVENANT - BLURV2 - BLEND - SUDOSWAPAMMV2 -} - -"""Event-specific data for an NFT pool transaction.""" -union NftPoolEventData = NewPoolEventData | SwapNftOutPoolEventData | SwapNftInPoolEventData | NftPoolNftDepositEventData | NftPoolNftWithdrawalEventData | NftPoolTokenDepositEventData | NftPoolTokenWithdrawalEventData | NftPoolSpotPriceUpdateEventData | NftPoolDeltaUpdateEventData | NftPoolFeeUpdateEventData | NftPoolAssetRecipientUpdateEventData | NewPoolEventDataV2 | SwapNftOutPoolEventDataV2 | SwapNftInPoolEventDataV2 | NftPoolNftDepositEventDataV2 | NftPoolNftWithdrawalEventDataV2 | NftPoolTokenDepositEventDataV2 | NftPoolTokenWithdrawalEventDataV2 | NftPoolSpotPriceUpdateEventDataV2 | NftPoolOwnershipTransferredEventDataV2 - -"""Input type of `NftPoolNumberFilter`.""" -input NftPoolNumberFilter { - """Greater than or equal to.""" - gte: String - """Greater than.""" - gt: String - """Less than or equal to.""" - lte: String - """Less than.""" - lt: String -} - -"""Input type of `NftPoolRanking`.""" -input NftPoolRanking { - """The attribute to rank NFT pools by.""" - attribute: NftPoolRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Event data for creating a new NFT pool.""" -type NewPoolEventData { - """The type of NFT pool event, `NEW_POOL`.""" - type: NftPoolEventType! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The contract address of the NFT pool.""" - poolAddress: String! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The contract address of the liquidity token of the pool (usually WETH).""" - tokenAddress: String! - """The wallet address of the pool owner.""" - ownerAddress: String! - """The wallet address that will receive the tokens or NFT sent to the pair during swaps.""" - assetRecipientAddress: String! - """The contract address of the bonding curve.""" - bondingCurveAddress: String! - """The bonding curve type that defines how the prices of NFTs change after each buy or sell within a pool.""" - bondingCurveType: BondingCurveType! - """The initial delta used in the bonding curve.""" - delta: String! - """The pool fee amount in the pool's liquidity token.""" - feeAmountT: String! - """The initial spot price in the pool's liquidity token.""" - startPriceT: String! - """The initial price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - buyPriceT: String! - """The initial price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - sellPriceT: String! - """The unix timestamp for the time the pool was created.""" - createdAt: Int! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for swapping an NFT out of a pool.""" -type SwapNftOutPoolEventData { - """The type of NFT pool event, `SWAP_NFT_OUT_POOL`.""" - type: NftPoolEventType! - """The ID of the token involved in the swap (`address`:`networkId`).""" - tokenId: String! - """The updated delta used in the bonding curve.""" - newDelta: String! - """The fee for the pool in the pool's liquidity token.""" - poolFeeT: String! - """The protocol fee in the pool's liquidity token.""" - protocolFeeT: String! - """Metadata for each of the NFTs involved in the swap.""" - nftsTransfered: [NftPoolEventNftTransfer] - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The total value of all NFTs involved in the swap in the pool's liquidity token.""" - amountT: String! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for swapping an NFT out of a pool.""" -type SwapNftOutPoolEventDataV2 { - """The type of NFT pool event, `SWAP_NFT_OUT_POOL`.""" - type: NftPoolEventType! - """The ID of the token involved in the swap (`address`:`networkId`).""" - tokenId: String! - """The updated delta used in the bonding curve.""" - newDelta: String! - """The fee for the pool in the pool's liquidity token.""" - poolFeeT: String! - """The protocol fee in the pool's liquidity token.""" - protocolFeeT: String! - """Metadata for each of the NFTs involved in the swap.""" - nftsTransfered: [NftPoolEventNftTransferV2] - """*New Param*: The list of NFT assets withdrawn. More extensive info than nftTokenIds.""" - nftAssets: [NftAsset] - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The total value of all NFTs involved in the swap in the pool's liquidity token.""" - amountT: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Metadata for an NFT transfer.""" -type NftPoolEventNftTransferV2 { - """The NFT token ID involved in the transfer.""" - nftTokenId: String! - """The number of tokens involved in the transfer.""" - nftQuantity: String! - """The number of tokens involved in the transfer.""" - nftTokenQuantity: String! @deprecated(reason: "nftTokenQuantity is no longer supported - use nftQuantity instead.") - """The value of the token at the time of transfer.""" - amountT: String! -} - -"""Event data for swapping an NFT into a pool.""" -type SwapNftInPoolEventData { - """The type of NFT pool event, `SWAP_NFT_IN_POOL`.""" - type: NftPoolEventType! - """The ID of the token involved in the swap (`address`:`networkId`).""" - tokenId: String! - """The updated delta used in the bonding curve.""" - newDelta: String! - """The fee for the pool in the pool's liquidity token.""" - poolFeeT: String! - """The protocol fee in the pool's liquidity token.""" - protocolFeeT: String! - """Metadata for each of the NFTs involved in the swap.""" - nftsTransfered: [NftPoolEventNftTransfer] - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The total value of all NFTs involved in the swap in the pool's liquidity token.""" - amountT: String! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for swapping an NFT into a pool.""" -type SwapNftInPoolEventDataV2 { - """The type of NFT pool event, `SWAP_NFT_IN_POOL`.""" - type: NftPoolEventType! - """The ID of the token involved in the swap (`address`:`networkId`).""" - tokenId: String! - """The updated delta used in the bonding curve.""" - newDelta: String! - """The fee for the pool in the pool's liquidity token.""" - poolFeeT: String! - """The protocol fee in the pool's liquidity token.""" - protocolFeeT: String! - """Metadata for each of the NFTs involved in the swap.""" - nftsTransfered: [NftPoolEventNftTransferV2] - """*New Param*: The list of NFT assets withdrawn. More extensive info than nftTokenIds.""" - nftAssets: [NftAsset] - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The total value of all NFTs involved in the swap in the pool's liquidity token.""" - amountT: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Metadata for an NFT transfer.""" -type NftPoolEventNftTransfer { - """The NFT token ID involved in the transfer.""" - nftTokenId: String! - """The value of the NFT at the time of transfer.""" - amountT: String! -} - -"""Event data for depositing an NFT into a pool.""" -type NftPoolNftDepositEventData { - """The type of NFT pool event, `NFT_DEPOSIT`.""" - type: NftPoolEventType! - """The list of NFT token IDs deposited.""" - nftTokenIds: [String!]! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! -} - -"""Event data for depositing an NFT into a pool.""" -type NftPoolNftDepositEventDataV2 { - """The type of NFT pool event, `NFT_DEPOSIT`.""" - type: NftPoolEventType! - """The list of NFT token IDs deposited.""" - nftTokenIds: [String!]! - """The amount of each NFT token deposited.""" - nftTokenAmounts: [String!]! - """*New Param*: The list of NFT assets withdrawn. More extensive info than nftTokenIds.""" - nftAssets: [NftAsset] - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! -} - -"""Event data for withdrawing an NFT from a pool.""" -type NftPoolNftWithdrawalEventData { - """The type of NFT pool event, `NFT_WITHDRAWAL`.""" - type: NftPoolEventType! - """The NFT token IDs withdrawn.""" - nftTokenIds: [String!]! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! -} - -"""Event data for withdrawing an NFT from a pool.""" -type NftPoolNftWithdrawalEventDataV2 { - """The type of NFT pool event, `NFT_WITHDRAWAL`.""" - type: NftPoolEventType! - """The list of NFT token IDs withdrawn.""" - nftTokenIds: [String!]! - """The amount of each NFT token withdrawn.""" - nftTokenAmounts: [String!]! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """*New Param*: The list of NFT assets withdrawn. More extensive info than nftTokenIds.""" - nftAssets: [NftAsset] -} - -"""Event data for depositing a token into a pool.""" -type NftPoolTokenDepositEventData { - """The type of NFT pool event, `TOKEN_DEPOSIT`.""" - type: NftPoolEventType! - """The total value of token deposited in the pool's liquidity token.""" - amountT: String! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for depositing a token into a pool.""" -type NftPoolTokenDepositEventDataV2 { - """The type of NFT pool event, `TOKEN_DEPOSIT`.""" - type: NftPoolEventType! - """The total value of token deposited in the pool's liquidity token.""" - amountT: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for withdrawing a token from a pool.""" -type NftPoolTokenWithdrawalEventData { - """The type of NFT pool event, `TOKEN_WITHDRAWAL`.""" - type: NftPoolEventType! - """The total value of token withdrawn in the pool's liquidity token.""" - amountT: String! - """The number of NFTs in the contract after the block has processed.""" - nftTokenBalance: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for withdrawing a token from a pool.""" -type NftPoolTokenWithdrawalEventDataV2 { - """The type of NFT pool event, `TOKEN_WITHDRAWAL`.""" - type: NftPoolEventType! - """The total value of token withdrawn in the pool's liquidity token.""" - amountT: String! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for updating the spot price of a pool.""" -type NftPoolSpotPriceUpdateEventData { - """The type of NFT pool event, `SPOT_PRICE_UPDATE`.""" - type: NftPoolEventType! - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for updating the spot price of a pool.""" -type NftPoolSpotPriceUpdateEventDataV2 { - """The type of NFT pool event, `SPOT_PRICE_UPDATE`.""" - type: NftPoolEventType! - """The updated spot price in the pool's liquidity token.""" - newSpotPriceT: String! - """The updated price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - newSellPriceT: String! - """The updated price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - newBuyPriceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for transferring ownership of a pool.""" -type NftPoolOwnershipTransferredEventDataV2 { - """The type of NFT pool event, `OWNERSHIP_TRANSFERRED`.""" - type: NftPoolEventType! - """The new owner of the pool.""" - newOwner: String! -} - -"""Event data for updating the delta of a pool.""" -type NftPoolDeltaUpdateEventData { - """The type of NFT pool event, `DELTA_UPDATE`.""" - type: NftPoolEventType! - """The updated delta used in the bonding curve.""" - newDelta: String! -} - -"""Event data for updating the fee of a pool.""" -type NftPoolFeeUpdateEventData { - """The type of NFT pool event, `FEE_UPDATE`.""" - type: NftPoolEventType! - """The updated pool fee in the pool's liquidity token.""" - newFeeT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! -} - -"""Event data for updating the asset recipient of a pool.""" -type NftPoolAssetRecipientUpdateEventData { - """The type of NFT pool event, `ASSET_RECIPIENT_CHANGE`.""" - type: NftPoolEventType! - """The updated wallet address that will receive the tokens or NFT sent to the pair during swaps.""" - newAssetRecipient: String! -} - -"""Event data for creating a new NFT pool.""" -type NewPoolEventDataV2 { - """The type of NFT pool event, `NEW_POOL`.""" - type: NftPoolEventType! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The contract address of the NFT pool.""" - poolAddress: String! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The contract address of the liquidity token of the pool (usually WETH).""" - tokenAddress: String! - """The wallet address of the pool owner.""" - ownerAddress: String! - """The wallet address that will receive the tokens or NFT sent to the pair during swaps.""" - assetRecipientAddress: String! - """The contract address of the bonding curve.""" - bondingCurveAddress: String! - """The bonding curve type that defines how the prices of NFTs change after each buy or sell within a pool.""" - bondingCurveType: BondingCurveType! - """The initial delta used in the bonding curve.""" - delta: String! - """The pool fee amount in the pool's liquidity token.""" - feeAmountT: String! - """The initial spot price in the pool's liquidity token.""" - startPriceT: String! - """The initial price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - buyPriceT: String! - """The initial price at which the pool is willing to sell an NFT in the pool's liquidity token.""" - sellPriceT: String! - """The unix timestamp for the time the pool was created.""" - createdAt: Int! - """The amount of token in the contract after the block has processed in the pool's liquidity token.""" - tokenBalanceT: String! - """The ratio of the transaction token to the network's base token.""" - nbtRatio: String! - """The ratio of the transaction token to USD.""" - usdRatio: String! - """The list of NFT token IDs initially deposited.""" - nftTokenIds: [String!]! - """The amount of each NFT token initially deposited.""" - nftTokenQuantities: [String]! - """*New Param*: The list of NFT assets withdrawn. More extensive info than nftTokenIds.""" - nftAssets: [NftAsset] - """The type of NFT in the pool.""" - poolNftType: PoolNftType! - """The list of royalties for the pool. Only applicable for `SUDOSWAP_V2` pools.""" - royalties: [NftPoolRoyalty] - """The property checker contract address for the pool.""" - propertyChecker: String -} - -"""The royalty for a SUDOSWAP_V2 pool.""" -type NftPoolRoyalty { - """The wallet address of recipient.""" - recipient: String - """The royalty percent.""" - percent: String -} - -"""NFT asset media.""" -type NftAssetMedia { - """The URL for a full size image of the NFT asset.""" - image: String! - """The URL for small generated thumbnail of the NFT asset.""" - thumbSm: String! - """The URL for large generated thumbnail of the NFT asset.""" - thumbLg: String! - """Whether the NFT asset media has finished processing.""" - processed: Boolean -} - -"""Attributes for an NFT asset.""" -type NftAssetAttribute { - """Suggested class name to use for css styling. An optional attribute of ERC-1155 assets.""" - class: String - """Suggested CSS styling. An optional attribute of ERC-1155 assets.""" - css: String - """The attribute display type. Can be `Trait`, `Stat`, `Ranking`, `BoostNumber`, `BoostPercentage` or `Date`.""" - displayType: NftAssetAttributeDisplayType! - """The max value, if applicable.""" - maxValue: String - """The name of the attribute.""" - name: String! - """The value of the attribute.""" - value: String! - """The type for the `value` field. Can be `String`, `Number` or `Array`.""" - valueType: NftAssetAttributeType! -} - -"""The status of an NFT asset error.""" -enum NftAssetErrorStatus { - NOT_FOUND - INDEXING_IN_PROGRESS -} - -"""An NFT asset.""" -type NftAsset { - """The ID of the NFT asset (`address`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The token ID of the NFT asset.""" - tokenId: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The NFT asset media.""" - media: NftAssetMedia - """The name of the NFT asset.""" - name: String - """The description of the NFT asset.""" - description: String - """The source image URI linked by smart contract metadata.""" - originalImage: String - """The URI provided by the smart contract. Typically JSON that contains metadata.""" - uri: String - """The attributes for the NFT asset.""" - attributes: [NftAssetAttribute!] - """The number of NFT assets with the same NFT token ID. Only applicable for ERC1155 tokens.""" - quantity: String - """Raw NFT metadata from the smart contract.""" - rawAssetData: RawNftAssetData -} - -"""Raw NFT asset data.""" -type RawNftAssetData { - """An optional image field that may or may not be present on the requested NFT asset smart contract.""" - imageUrl: String - """An optional image field that may or may not be present on the requested NFT asset smart contract.""" - imageData: String - """An optional image field that may or may not be present on the requested NFT asset smart contract.""" - animationUrl: String - """An optional field that may or may not be present on the requested NFT asset smart contract.""" - externalUrl: String -} - -"""An NFT asset error.""" -type NftAssetError { - """The ID of the NFT asset (`address`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The token ID of the NFT asset.""" - tokenId: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The status of the asset error.""" - status: NftAssetErrorStatus! - """The message of the asset error.""" - message: String! -} - -"""An NFT pool.""" -type NftPoolResponse { - """The ID of the NFT pool (`poolAddress`:`networkId`). For example, `0xdbea289dcc10eed8431e78753414a3d81b8e7201:1`.""" - poolId: String! - """The contract address of the liquidity token of the pool (usually WETH).""" - tokenAddress: String! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The contract name of the NFT collection.""" - collectionName: String! - """The symbol of the NFT collection.""" - collectionSymbol: String - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String! - """The contract address of the NFT pool.""" - poolAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The type of liquidity pool.""" - poolType: NftPoolType! - """The pool variant. Can be `ERC20` or `NATIVE`.""" - poolVariant: GraphQlNftPoolVariant! - """The bonding curve type that defines how the prices of NFTs change after each buy or sell within a pool.""" - bondingCurveType: BondingCurveType! - """The contract address of the bonding curve.""" - bondingCurveAddress: String! - """The wallet address that will receive the tokens or NFT sent to the pair during swaps.""" - assetRecipientAddress: String! - """The current delta used in the bonding curve.""" - delta: String! - """The wallet address of the pool owner.""" - owner: String! - """The current fee for pool.""" - fee: String! - poolFeesAllTimeT: String - poolFeesAllTimeNBT: String - """The current price at which the pool is willing to sell an NFT in the network's base token. Only applicable for `SELL` and `BUY_AND_SELL` pool types.""" - floorNBT: String - """The current price at which the pool is willing to buy an NFT in the network's base token. Only applicable for `BUY` and `BUY_AND_SELL` pool types.""" - offerNBT: String - """The spot price in the network's base token.""" - spotPriceNBT: String! - """The current pool liquidity in the network's base token.""" - balanceNBT: String! - """The current number of NFTs in the pool.""" - nftBalance: Int @deprecated(reason: "nftBalance is changing from Int to String - use nftBalanceV2 instead.") - """The current number of NFTs in the pool.""" - nftBalanceV2: String! - """The total volume of the pool in the network's base token over the pool's lifetime.""" - volumeAllTimeNBT: String! - """The current price at which the pool is willing to sell an NFT in the pool's liquidity token. Only applicable for `SELL` and `BUY_AND_SELL` pool types.""" - floorT: String - """The current price at which the pool is willing to buy an NFT in the pool's liquidity token. Only applicable for `BUY` and `BUY_AND_SELL` pool types.""" - offerT: String - """The instantaneous price for selling 1 NFT to the pool in the pool's liquidity token.""" - spotPriceT: String! - """The current pool liquidity in the pool's liquidity token.""" - balanceT: String! - """The total volume of the pool in the pool's liquidity token over the pool's lifetime.""" - volumeAllTimeT: String! - """The total number of NFTs bought and sold over the pool's lifetime.""" - nftVolumeAllTime: Int! @deprecated(reason: "nftVolumeAllTime is changing from Int to String - use nftVolumeAllTimeV2 instead.") - """The total number of NFTs bought and sold over the pool's lifetime.""" - nftVolumeAllTimeV2: String! - """The list of NFT assets in the pool.""" - nftAssets: [NftAsset] - """The type of NFT in the pool.""" - poolNftType: PoolNftType - """The list of royalties for the pool. Only applicable for `SUDOSWAP_V2` pools.""" - royalties: [NftPoolRoyalty] - """The property checker contract address for the pool.""" - propertyChecker: String - """The NFT pool contract version. Can be `SUDOSWAP_V1` or `SUDOSWAP_V2`.""" - version: NftPoolContractVersion - """For ERC1155 pools, the list of NFT token IDs that are accepted by the pool.""" - acceptedNftTokenIds: [String] -} - -"""Response returned by `getNftPoolEvents`.""" -type NftPoolEventsResponse { - """A list of transactions for an NFT pool.""" - items: [NftPoolEvent] - """A cursor for use in pagination.""" - cursor: String -} - -"""Response returned by `getNftPoolCollectionsByExchange`.""" -type GetNftPoolCollectionsResponse { - """A list of NFT collections.""" - items: [NftPoolCollectionResponse] - """A cursor for use in pagination.""" - cursor: String -} - -"""Response returned by `getNftPoolsByCollectionAndExchange` and `getNftPoolsByOwner`.""" -type GetNftPoolsResponse { - """A list of NFT pools.""" - items: [NftPoolResponse]! - """A cursor for use in pagination.""" - cursor: String -} - -"""Stats for an NFT pool.""" -type NftPoolStatsResponse { - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The unix timestamp for the start of the time frame.""" - startTime: Int! - """The unix timestamp for the end of the time frame.""" - endTime: Int! - """The contract address of the NFT pool.""" - poolAddress: String - """The total number of NFTs bought and sold over the time frame.""" - nftVolumeV2: String - """The total number of NFTs bought over the time frame.""" - nftsBoughtV2: String - """The total number of NFTs sold over the time frame.""" - nftsSoldV2: String - """The number of NFTs in the pool at the start of the time frame.""" - openNftBalanceV2: String - """The number of NFTs in the pool at the end of the time frame.""" - closeNftBalanceV2: String - """The total volume of the pool in the network's base token over the time frame.""" - volumeNBT: String - """The total buy volume of the pool in the network's base token over the time frame.""" - revenueNBT: String - """The total sell volume of the pool in the network's base token over the time frame.""" - expenseNBT: String - """The sum of pool fees generated by the pool in the network's base token over the time frame.""" - poolFeesNBT: String - """The sum of protocol fees generated by the pool in the network's base token over the time frame.""" - protocolFeesNBT: String - """The lowest price at which the pool was willing to sell an NFT in the network's base token over the time frame.""" - lowFloorNBT: String - """The highest price at which the pool was willing to sell an NFT in the network's base token over the time frame.""" - highFloorNBT: String - """The lowest price at which the pool was willing to buy an NFT in the network's base token over the time frame.""" - lowOfferNBT: String - """The highest price at which the pool was willing to buy an NFT in the network's base token over the time frame.""" - highOfferNBT: String - """The pool liquidity in the network's base token at the start of the time frame.""" - openBalanceNBT: String - """The pool liquidity in the network's base token at the end of the time frame.""" - closeBalanceNBT: String -} - -"""Response returned by `getNftEvents`.""" -type NftEventsConnection { - """A list of transactions for an NFT collection.""" - items: [NftEvent] - """A cursor for use in pagination.""" - cursor: String -} - -"""An item that was either offered or received as part of an NFT trade.""" -union NftEventTradeItem = NftEventNftTradeItem | NftEventTokenTradeItem - -"""The type of item involved in the trade.""" -enum NftEventTradeItemType { - NFT - TOKEN -} - -"""The direction of the nft sale event.""" -enum NftEventOrderDirection { - BUY - SELL - OFFER_ACCEPTED -} - -"""Fields that are common in all items offered or received as part of an nft trade.""" -interface NftEventTradeItemBase { - """The contract address for the item.""" - address: String! - """The number of items transferred.""" - amount: String - """The recipient of the items.""" - recipient: String - """The type of item involved in the trade. (NFT or TOKEN)""" - type: NftEventTradeItemType! -} - -"""Stat and change for a string based fillsource amount.""" -type NftCollectionFillsourceStringStat { - """The marketplace that filled the NFT order volume. (ex. OPENSEA, BLUR, etc.)""" - fillsource: String! - """The amount of the stat traded in the current time frame.""" - amount: String! - """The change in fillsource volume between the previous and current time frame.""" - change: Float -} - -"""Stat and change for a string based fillsource amount.""" -type NftCollectionFillsourceNumberStat { - """The marketplace that filled the NFT order volume. (ex. OPENSEA, BLUR, etc.)""" - fillsource: String! - """The amount of the stat traded in the current time frame.""" - amount: Float! - """The change in fillsource volume between the previous and current time frame.""" - change: Float -} - -"""Response returned by `filterNftCollections`.""" -type NftCollectionFilterConnection { - """The list of NFT collections matching the filter parameters.""" - results: [NftCollectionFilterResult] - """The number of NFT collections returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""Response returned by `filterNftPoolCollections`.""" -type NftPoolCollectionFilterConnection { - """The list of NFT collections matching the filter parameters.""" - results: [NftPoolCollectionFilterResult] - """The number of NFT collections returned.""" - count: Int - """Where in the list the server started when returning items.""" - page: Int -} - -"""Response returned by `filterNftPools`.""" -type NftPoolFilterConnection { - """The list of NFT pools matching the filter parameters.""" - results: [NftPoolFilterResult] - """The number of NFT pools returned.""" - count: Int - """Where in the list the server started when returning items.""" - page: Int -} - -"""An NFT collection matching a set of filter parameters.""" -type NftCollectionFilterResult { - """The ID of the NFT collection (`address`:`networkId`).""" - id: String - """The contract address of the NFT collection.""" - address: String - """The marketplace address or `all`. Can be used to get marketplace-specific metrics.""" - grouping: String - """The network ID the NFT collection is deployed on.""" - networkId: Int - """The name of the NFT collection.""" - name: String - """The symbol of the NFT collection.""" - symbol: String - """The unix timestamp for the last event.""" - lastEventTimestamp: Int - """The token standard. Can be a variation of `ERC-721` or `ERC-1155`.""" - ercType: String - """The image URL for the collection or one of the assets within the collection.""" - imageUrl: String - """The total supply of the NFT collection.""" - totalSupply: String - """The unix timestamp indicating the last time the data was updated. Updates daily.""" - timestamp: Int - """Stats for the past hour.""" - stats1h: NftStatsWindowWithChange - """Stats for the past 4 hours.""" - stats4h: NftStatsWindowWithChange - """Stats for the past 12 hours.""" - stats12h: NftStatsWindowWithChange - """Stats for the past 24 hours.""" - stats24h: NftStatsWindowWithChange -} - -"""An NFT pool collection.""" -type NftPoolCollectionFilterResult { - """The ID of the NFT collection (`collectionAddress`:`exchangeAddress`:`networkId`).""" - id: String! - """The unix timestamp indicating the last time the data was updated. Updates every 2 hours.""" - timestamp: Int - """The name of the NFT collection.""" - name: String - """The symbol for the NFT collection.""" - symbol: String - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String - """The contract address of the NFT collection.""" - collectionAddress: String - """The network ID the NFT collection is deployed on.""" - networkId: Int - """The token standard. Can be a variation of `ERC-721` or `ERC-1155`.""" - ercType: String - """The image URL for the collection or one of the assets within the collection.""" - imageUrl: String - """The number of NFTs in all of the collection's pools.""" - nftBalance: Int @deprecated(reason: "nftBalance is changing from Int to String - use nftBalanceV2 instead.") - """The number of NFTs in all of the collection's pools.""" - nftBalanceV2: String - """The total liquidity of the collection in the network's base token.""" - balanceNBT: String - """The lowest price at which any of the collection's pools are willing to sell an NFT in the network's base token.""" - floorNBT: String - """The highest price at which any of the collection's pools are willing to buy an NFT in the network's base token.""" - offerNBT: String - """The total liquidity of the collection in USD.""" - balanceUSD: String - """The lowest price at which any of the collection's pools are willing to sell an NFT in USD.""" - floorUSD: String - """The highest price at which any of the collection's pools are willing to buy an NFT in USD.""" - offerUSD: String - """The total supply of the collection.""" - totalSupply: Int @deprecated(reason: "totalSupply is changing from Int to String - use totalSupplyV2 instead.") - totalSupplyV2: String - """The number of NFTs sold in any of the collection's pools over the collection's lifetime.""" - nftsSoldAll: Int @deprecated(reason: "nftsSoldAll is changing from Int to String - use nftsSoldAllV2 instead.") - """The number of NFTs sold in any of the collection's pools over the collection's lifetime.""" - nftsSoldAllV2: String - """The number of NFTs bought in any of the collection's pools over the collection's lifetime.""" - nftsBoughtAll: Int @deprecated(reason: "nftsBoughtAll is changing from Int to String - use nftsBoughtAllV2 instead.") - """The number of NFTs bought in any of the collection's pools over the collection's lifetime.""" - nftsBoughtAllV2: String - """The number of NFTs bought or sold in any of the collection's pools over the collection's lifetime.""" - nftVolumeAll: Int @deprecated(reason: "nftVolumeAll is changing from Int to String - use nftVolumeAllV2 instead.") - """The number of NFTs bought or sold in any of the collection's pools over the collection's lifetime.""" - nftVolumeAllV2: String - """The total volume of the collection in the network's base token over the collection's lifetime.""" - volumeNBTAll: String - """The total buy volume of the collection in the network's base token over the collection's lifetime.""" - revenueNBTAll: String - """The total sell volume of the collection in the network's base token over the collection's lifetime.""" - expenseNBTAll: String - """The highest sale price within the collection in the network's base token in the collection's lifetime.""" - highPriceNBTAll: String - """The lowest sale price within the collection in the network's base token in the collection's lifetime.""" - lowPriceNBTAll: String - """The sum of pool fees generated by the collection in the network's base token over the collection's lifetime.""" - poolFeesNBTAll: String - """The sum of protocol fees generated by the collection in the network's base token over the collection's lifetime.""" - protocolFeesNBTAll: String - """The total volume of the collection in USD over the collection's lifetime.""" - volumeUSDAll: String - """The total buy volume of the collection in USD over the collection's lifetime.""" - revenueUSDAll: String - """The total sell volume of the collection in USD over the collection's lifetime.""" - expenseUSDAll: String - """The highest sale price within the collection in USD in the collection's lifetime.""" - highPriceUSDAll: String - """The lowest sale price within the collection in USD in the collection's lifetime.""" - lowPriceUSDAll: String - """The sum of pool fees generated by the collection in USD over the collection's lifetime.""" - poolFeesUSDAll: String - """The sum of protocol fees generated by the collection in USD over the collection's lifetime.""" - protocolFeesUSDAll: String - """The number of NFTs sold in any of the collection's pools over the past 24 hours.""" - nftsSold24: Int @deprecated(reason: "nftsSold24 is changing from Int to String - use nftsSold24V2 instead.") - """The number of NFTs sold in any of the collection's pools over the past 24 hours.""" - nftsSold24V2: String - """The number of NFTs bought in any of the collection's pools over the past 24 hours.""" - nftsBought24: Int @deprecated(reason: "nftsBought24 is changing from Int to String - use nftsBought24V2 instead.") - """The number of NFTs bought in any of the collection's pools over the past 24 hours.""" - nftsBought24V2: String - """The number of NFTs bought and sold in any of the collection's pools over the past 24 hours.""" - nftVolume24: Int @deprecated(reason: "nftVolume24 is changing from Int to String - use nftVolume24V2 instead.") - """The number of NFTs bought and sold in any of the collection's pools over the past 24 hours.""" - nftVolume24V2: String - """The total volume of the collection in the network's base token over the past 24 hours.""" - volumeNBT24: String - """The total buy volume of the collection in the network's base token over the past 24 hours.""" - revenueNBT24: String - """The total sell volume of the collection in the network's base token over the past 24 hours.""" - expenseNBT24: String - """The highest sale price within the collection in the network's base token in the past 24 hours.""" - highPriceNBT24: String - """The lowest sale price within the collection in the network's base token in the past 24 hours.""" - lowPriceNBT24: String - """The sum of pool fees generated by the collection in the network's base token over the past 24 hours.""" - poolFeesNBT24: String - """The sum of protocol fees generated by the collection in the network's base token over the past 24 hours.""" - protocolFeesNBT24: String - """The total volume of the collection in USD over the past 24 hours.""" - volumeUSD24: String - """The total buy volume of the collection in USD over the past 24 hours.""" - revenueUSD24: String - """The total sell volume of the collection in USD over the past 24 hours.""" - expenseUSD24: String - """The highest sale price within the collection in USD in the past 24 hours.""" - highPriceUSD24: String - """The lowest sale price within the collection in USD in the past 24 hours.""" - lowPriceUSD24: String - """The sum of pool fees generated by the collection in USD over the past 24 hours.""" - poolFeesUSD24: String - """The sum of protocol fees generated by the collection in USD over the past 24 hours.""" - protocolFeesUSD24: String -} - -"""An NFT collection in an NFT pool.""" -type NftPoolCollectionResponse { - """The ID of the NFT collection (`collectionAddress`:`networkId`).""" - collectionId: String! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The symbol of the NFT collection.""" - collectionSymbol: String! - """The ID of the exchange (`exchangeAddress`:`networkId`).""" - exchangeId: String! - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String! - """The name of the NFT collection.""" - name: String - """An image associated with the NFT collection.""" - image: String - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The lowest price at which any of the NFT collection's pools are willing to sell an NFT in the network's base token.""" - floorNBT: String - """The highest price at which any of the NFT collection's pools are willing to buy an NFT in the network's base token.""" - offerNBT: String - """The total liquidity of the collection in the network's base token.""" - balanceNBT: String! - """The current number of NFTs in all the NFT collection's pools.""" - nftBalance: Int! @deprecated(reason: "nftBalance is changing from Int to String - use nftBalanceV2 instead.") - """The current number of NFTs in all the NFT collection's pools.""" - nftBalanceV2: String! - """The total volume of the collection in the network's base token over the collection's lifetime.""" - volumeAllTimeNBT: String - """The total volume of the collection in USD over the collection's lifetime.""" - volumeAllTimeUSD: String - """The total number of NFTs bought and sold over the collection's lifetime.""" - nftVolumeAllTime: Int @deprecated(reason: "nftVolumeAllTime is changing from Int to String - use nftVolumeAllTimeV2 instead.") - """The total number of NFTs bought and sold over the collection's lifetime.""" - nftVolumeAllTimeV2: String - """The media for one of the assets within the NFT collection.""" - media: NftAssetMedia @deprecated(reason: "Use `image` from `NftContract` instead.") - """The sum of protocol fees generated by the collection in the network's base token over the collection's lifetime.""" - protocolFeesNBTAll: String - """The sum of protocol fees generated by the collection in USD over the collection's lifetime.""" - protocolFeesUSDAll: String - """The sum of pool fees generated by the collection in the network's base token over the collection's lifetime.""" - poolFeesNBTAll: String - """The sum of pool fees generated by the collection in USD over the collection's lifetime.""" - poolFeesUSDAll: String - """As estimated sum in the network's base token of the collection's royalties paid to creators by pool swaps over the collection's lifetime.""" - royaltiesNBTAllEstimate: String - """An estimated sum in USD of the collection's royalties paid to creators by pool swaps over the collection's lifetime.""" - royaltiesUSDAllEstimate: String -} - -"""An NFT pool matching a set of filter parameters.""" -type NftPoolFilterResult { - """The ID of the NFT pool (`poolAddress`:`networkId`).""" - id: String! - """The contract address of the NFT pool.""" - poolAddress: String! - """The unix timestamp indicating the last time the data was updated. Updates every 2 hours.""" - timestamp: Int! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String! - """The name of the NFT collection.""" - collectionName: String! - """The symbol of the NFT collection.""" - collectionSymbol: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The wallet address that will receive the tokens or NFT sent to the pair during swaps.""" - assetRecipientAddress: String - """The contract address of the bonding curve.""" - bondingCurveAddress: String! - """The delta used in the pool's bonding curve.""" - delta: String! - """The fee amount for the pool.""" - feeAmount: String! - """The type of liquidity pool.""" - poolType: NftPoolType! - """The contract address of the liquidity token of the pool.""" - tokenAddress: String! - """The wallet address of the pool owner.""" - ownerAddress: String! - """The pool variant. Can be `ERC20` or `NATIVE`.""" - poolVariant: GraphQlNftPoolVariant! - """The list of royalties for the pool. Only applicable for `SUDOSWAP_V2` pools.""" - royalties: [NftPoolRoyalty] - """The property checker contract address for the pool.""" - propertyChecker: String - """The NFT pool contract version. Can be `SUDOSWAP_V1` or `SUDOSWAP_V2`.""" - version: NftPoolContractVersion - """The type of NFT in the pool.""" - poolNftType: PoolNftType - """For ERC1155 pools, the list of NFT token IDs that are accepted by the pool.""" - acceptedNftTokenIds: [String] - """The current number of NFTs in the pool.""" - nftBalance: Int @deprecated(reason: "nftBalance is changing from Int to String - use nftBalanceV2 instead.") - """The current number of NFTs in the pool.""" - nftBalanceV2: String - """The current pool liquidity in the network's base token.""" - balanceNBT: String - """The current price at which the pool is willing to sell an NFT.""" - sellNBT: String - """The current price at which the pool is willing to buy an NFT in the network's base token.""" - offerNBT: String - """The current spot price for the pool in the network's base token.""" - spotNBT: String - """The current value of the collection in the pool's liquidity token.""" - balanceT: String - """The current price at which the pool is willing to sell an NFT in the network's base token.""" - sellT: String - """The current price at which the pool is willing to buy an NFT in the pool's liquidity token.""" - offerT: String - """The current spot price for the pool in the pool's liquidity token.""" - spotT: String - """The current pool liquidity in USD.""" - balanceUSD: String - """The current price at which the pool is willing to sell an NFT in USD.""" - sellUSD: String - """The current price at which the pool is willing to buy an NFT in USD.""" - offerUSD: String - """The total number of NFTs sold over the pool's lifetime.""" - nftsSoldAll: Int @deprecated(reason: "nftsSoldAll is changing from Int to String - use nftsSoldAllV2 instead.") - """The total number of NFTs sold over the pool's lifetime.""" - nftsSoldAllV2: String - """The total number of NFTs bought over the pool's lifetime.""" - nftsBoughtAll: Int @deprecated(reason: "nftsBoughtAll is changing from Int to String - use nftsBoughtAllV2 instead.") - """The total number of NFTs bought over the pool's lifetime.""" - nftsBoughtAllV2: String - """The total number of NFTs bought and sold over the pool's lifetime.""" - nftVolumeAll: Int @deprecated(reason: "nftVolumeAll is changing from Int to String - use nftVolumeAllV2 instead.") - """The total number of NFTs bought and sold over the pool's lifetime.""" - nftVolumeAllV2: String - """The total volume of the pool in the network's base token over the pool's lifetime.""" - volumeNBTAll: String - """The total buy volume of the pool in the network's base token over the pool's lifetime.""" - revenueNBTAll: String - """The total sell volume of the pool in the network's base token over the pool's lifetime.""" - expenseNBTAll: String - """The sum of pool fees generated by the pool in the network's base token over the pool's lifetime.""" - poolFeesNBTAll: String - """The sum of protocol fees generated by the pool in the network's base token over the pool's lifetime.""" - protocolFeesNBTAll: String - """The total volume of the pool in the pool's liquidity token over the pool's lifetime.""" - volumeTAll: String - """The total buy volume of the pool in the pool's liquidity token over the pool's lifetime.""" - revenueTAll: String - """The total sell volume of the pool in the pool's liquidity token over the pool's lifetime.""" - expenseTAll: String - """The sum of pool fees generated by the pool in the pool's liquidity token over the pool's lifetime.""" - poolFeesTAll: String - """The sum of protocol fees generated by the pool in the pool's liquidity token over the pool's lifetime.""" - protocolFeesTAll: String - """The total volume of the pool in USD over the pool's lifetime.""" - volumeUSDAll: String - """The total buy volume of the pool in USD over the pool's lifetime.""" - revenueUSDAll: String - """The total sell volume of the pool in USD over the pool's lifetime.""" - expenseUSDAll: String - """The sum of pool fees generated by the pool in USD over the pool's lifetime.""" - poolFeesUSDAll: String - """The sum of protocol fees generated by the pool in USD over the pool's lifetime.""" - protocolFeesUSDAll: String - """The total number of NFTs sold by the pool over the past 24 hours.""" - nftsSold24: Int @deprecated(reason: "nftsSold24 is changing from Int to String - use nftsSold24V2 instead.") - """The total number of NFTs sold by the pool over the past 24 hours.""" - nftsSold24V2: String - """The total number of NFTs bought by the pool over the past 24 hours.""" - nftsBought24: Int @deprecated(reason: "nftsBought24 is changing from Int to String - use nftsBought24V2 instead.") - """The total number of NFTs bought by the pool over the past 24 hours.""" - nftsBought24V2: String - """The total number of NFTs bought and sold over the past 24 hours.""" - nftVolume24: Int @deprecated(reason: "nftVolume24 is changing from Int to String - use nftVolume24V2 instead.") - """The total number of NFTs bought and sold over the past 24 hours.""" - nftVolume24V2: String - """The total volume of the pool in the network's base token over the past 24 hours.""" - volumeNBT24: String - """The total buy volume of the pool in the network's base token over the past 24 hours.""" - revenueNBT24: String - """The total sell volume of the pool in the network's base token over the past 24 hours.""" - expenseNBT24: String - """The sum of pool fees generated by the pool in the network's base token over the past 24 hours.""" - poolFeesNBT24: String - """The sum of protocol fees generated by the pool in the network's base token over the past 24 hours.""" - protocolFeesNBT24: String - """The total volume of the pool in the pool's liquidity token over the past 24 hours.""" - volumeT24: String - """The total buy volume of the pool in the pool's liquidity token over the past 24 hours.""" - revenueT24: String - """The total sell volume of the pool in the pool's liquidity token over the past 24 hours.""" - expenseT24: String - """The sum of pool fees generated by the pool in the pool's liquidity token over the past 24 hours.""" - poolFeesT24: String - """The sum of protocol fees generated by the pool in the pool's liquidity token over the past 24 hours.""" - protocolFeesT24: String - """The total volume of the pool in USD over the past 24 hours.""" - volumeUSD24: String - """The total buy volume of the pool in USD over the past 24 hours.""" - revenueUSD24: String - """The total sell volume of the pool in USD over the past 24 hours.""" - expenseUSD24: String - """The sum of pool fees generated by the pool in USD over the past 24 hours.""" - poolFeesUSD24: String - """The sum of protocol fees generated by the pool in USD over the past 24 hours.""" - protocolFeesUSD24: String - """The list of NFT assets in the pool.""" - nftAssets: [NftAsset] -} - -"""An NFT pool transaction.""" -type NftPoolEvent { - """The ID of the NFT pool (`poolAddress`:`networkId`). For example, `0xdbea289dcc10eed8431e78753414a3d81b8e7201:1`.""" - id: String! - """The contract address of the NFT pool.""" - poolAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The contract address of the NFT collection.""" - collectionAddress: String! - """The ID of the NFT collection (`collectionAddress`:`networkId`).""" - collectionId: String! - """The contract address of the NFT AMM marketplace.""" - exchangeAddress: String! - """The contract address of the liquidity token of the pool (usually WETH).""" - tokenAddress: String! - """The block number for the transaction.""" - blockNumber: Int! - """The index of the log in the block.""" - logIndex: Int! - """The index of the transaction within the block.""" - transactionIndex: Int! - """The hash of the block where the transaction occurred.""" - blockHash: String! - """The unique hash for the transaction.""" - transactionHash: String! - """The unix timestamp for the transaction.""" - timestamp: Int! - """The wallet address that transacted.""" - maker: String! - """The type of liquidity pool.""" - poolType: NftPoolType! - """The event type of the transaction.""" - eventType: NftPoolEventType! - """The event-specific data for the transaction.""" - data: NftPoolEventData! -} - -"""NFT stats over a time frame.""" -type NftStatsWindowWithChange { - """The unix timestamp for the start of the window.""" - startTime: Int - """The unix timestamp for the end of the window.""" - endTime: Int - """The currency stats in USD, such as volume.""" - usd: NftCollectionCurrencyStats - """The currency stats in the network's base token, such as volume.""" - networkBaseToken: NftCollectionCurrencyStats - """The numerical stats, such as number of sales.""" - nonCurrency: NftCollectionNonCurrencyStats -} - -"""Number metrics for NFT fillsource stats.""" -type NftFillsourceStatsNumberMetrics { - """Marketplace that filled the NFT order volume. (ex. OPENSEA, BLUR, etc.)""" - fillsource: String - """The total value for the current window.""" - current: Float - """The total value for the previous window.""" - previous: Float - """The percent change between the `current` and `previous`.""" - change: Float -} - -"""String metrics for NFT stats.""" -type NftFillsourceStatsStringMetrics { - """Marketplace that filled the NFT order volume. (ex. OPENSEA, BLUR, etc.)""" - fillsource: String - """The total value for the current window.""" - current: String - """The total value for the previous window.""" - previous: String - """The percent change between the `current` and `previous`.""" - change: Float -} - -"""Price stats for an NFT collection over a time frame. Either in USD or the network's base token.""" -type NftCollectionCurrencyStats { - """The volume over the time frame.""" - volume: NftStatsStringMetrics - """The volume partitioned by fillsource over the time frame""" - volumeByFillsource: [NftFillsourceStatsStringMetrics] - """The percentages of total volume partitioned by fillsource over the time frame""" - volumePercentByFillsource: [NftFillsourceStatsNumberMetrics] - """The average sale price in the time frame.""" - average: NftStatsStringMetrics - """The opening price for the time frame.""" - open: NftStatsStringMetrics - """The closing price for the time frame.""" - close: NftStatsStringMetrics - """The lowest sale price in the time frame.""" - lowestSale: NftStatsStringMetrics - """The highest sale price in the time frame.""" - highestSale: NftStatsStringMetrics -} - -"""Numerical stats for an NFT collection over a time frame.""" -type NftCollectionNonCurrencyStats { - """The number of mints over the time frame.""" - mints: NftStatsNumberMetrics - """The number of sales over the time frame.""" - sales: NftStatsNumberMetrics - """The number of tokens sold over the time frame.""" - tokensSold: NftStatsStringMetrics - """The number of transfers over the time frame.""" - transfers: NftStatsNumberMetrics - """The number of unique buyers over the time frame.""" - uniqueBuyers: NftStatsNumberMetrics - """The number of unique sellers over the time frame.""" - uniqueSellers: NftStatsNumberMetrics - """The number of unique wallets (buyers or sellers) over the time frame.""" - uniqueSalesWallets: NftStatsNumberMetrics - """The number of unique minters over the time frame.""" - uniqueMinters: NftStatsNumberMetrics -} - -"""String metrics for NFT stats.""" -type NftStatsStringMetrics { - """The total value for the current window.""" - current: String - """The total value for the previous window.""" - previous: String - """The percent change between the `current` and `previous`.""" - change: Float -} - -"""Number metrics for NFT stats.""" -type NftStatsNumberMetrics { - """The total value for the current window.""" - current: Float - """The total value for the previous window.""" - previous: Float - """The percent change between the `current` and `previous`.""" - change: Float -} - -"""A numeric range filter with optional upper and lower bounds.""" -input NumberFilter { - """Greater than or equal to.""" - gte: Float - """Greater than.""" - gt: Float - """Less than or equal to.""" - lte: Float - """Less than.""" - lt: Float -} - -"""Filter for NFT stats.""" -input StatsFilter { - """The total value for the current window.""" - current: NumberFilter - """The total value for the previous window.""" - previous: NumberFilter - """The percent change between the `current` and `previous`.""" - change: NumberFilter -} - -"""Filter for fillsource based NFT stats.""" -input FillsourceStatsFilter { - """The fillsource to target for the current window.""" - fillsource: String! - """The total value for the current window.""" - current: NumberFilter - """The total value for the previous window.""" - previous: NumberFilter - """The percent change between the `current` and `previous`.""" - change: NumberFilter -} - -"""Currency stats.""" -input statsCurrency { - """The volume over the time frame.""" - volume: StatsFilter - """The volume by fillsource over the time frame.""" - volumeByFillsource: [FillsourceStatsFilter] - """The volume percentage by fillsource over the time frame.""" - volumePercentByFillsource: [FillsourceStatsFilter] - """The average sale price in the time frame.""" - average: StatsFilter - """The opening price for the time frame.""" - open: StatsFilter - """The closing price for the time frame.""" - close: StatsFilter - """The lowest sale price in the time frame.""" - lowestSale: StatsFilter - """The highest sale price in the time frame.""" - highestSale: StatsFilter -} - -"""Numerical stats for an NFT collection over a time frame.""" -input statsNonCurrency { - """The number of mints over the time frame.""" - mints: StatsFilter - """The number of sales over the time frame.""" - sales: StatsFilter - """The number of tokens sold over the time frame.""" - tokensSold: StatsFilter - """The number of transfers over the time frame.""" - transfers: StatsFilter - """The number of unique buyers over the time frame.""" - uniqueBuyers: StatsFilter - """The number of unique sellers over the time frame.""" - uniqueSellers: StatsFilter - """The number of unique wallets (buyers or sellers) over the time frame.""" - uniqueSalesWallets: StatsFilter - """The number of unique minters over the time frame.""" - uniqueMinters: StatsFilter -} - -"""NFT stats for a given time frame.""" -input NftStatsWindowFilter { - """The currency stats in USD, such as volume.""" - usd: statsCurrency - """The currency stats in the network's base token, such as volume.""" - networkBaseToken: statsCurrency - """The numerical stats, such as number of sales.""" - nonCurrency: statsNonCurrency -} - -"""Input filters for `filterNftCollections`.""" -input NftCollectionFilters { - """The total supply of the NFT collection.""" - totalSupply: NumberFilter - """The unix timestamp for the last event.""" - lastEventTimestamp: NumberFilter - """The list of token standards to filter by.""" - ercType: [NftContractErcType] - """The list of network IDs to filter by.""" - network: [Int] - """Stats for the past hour.""" - stats1h: NftStatsWindowFilter - """Stats for the past 4 hours.""" - stats4h: NftStatsWindowFilter - """Stats for the past 12 hours.""" - stats12h: NftStatsWindowFilter - """Stats for the past 24 hours.""" - stats24h: NftStatsWindowFilter -} - -"""Input type of `NftCollectionRanking`.""" -input NftCollectionRanking { - """The attribute to rank NFT collections by.""" - attribute: NftCollectionRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Input type of `NftPoolCollectionRanking`.""" -input NftPoolCollectionRanking { - """The attribute to rank NFT collections by.""" - attribute: NftPoolCollectionRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Input type of `NftPoolCollectionFilters`.""" -input NftPoolCollectionFilters { - """The number of NFTs in all of the collection's pools.""" - nftBalance: NumberFilter - """The total liquidity of the collection in the network's base token.""" - balanceNBT: NumberFilter - """The lowest price at which any of the collection's pools are willing to sell an NFT in the network's base token.""" - floorNBT: NumberFilter - """The highest price at which any of the collection's pools are willing to buy an NFT in the network's base token.""" - offerNBT: NumberFilter - """The total liquidity of the collection in USD.""" - balanceUSD: NumberFilter - """The lowest price at which any of the collection's pools are willing to sell an NFT in USD.""" - floorUSD: NumberFilter - """The highest price at which any of the collection's pools are willing to buy an NFT in USD.""" - offerUSD: NumberFilter - """The total supply of the collection.""" - totalSupply: NumberFilter - """The number of NFTs sold in any of the collection's pools over the collection's lifetime.""" - nftsSoldAll: NumberFilter - """The number of NFTs bought in any of the collection's pools over the collection's lifetime.""" - nftsBoughtAll: NumberFilter - """The number of NFTs bought or sold in any of the collection's pools over the collection's lifetime.""" - nftVolumeAll: NumberFilter - """The total volume of the collection in the network's base token over the collection's lifetime.""" - volumeNBTAll: NumberFilter - """The total buy volume of the collection in the network's base token over the collection's lifetime.""" - revenueNBTAll: NumberFilter - """The total sell volume of the collection in the network's base token over the collection's lifetime.""" - expenseNBTAll: NumberFilter - """The highest sale price within the collection in the network's base token in the collection's lifetime.""" - highPriceNBTAll: NumberFilter - """The lowest sale price within the collection in the network's base token in the collection's lifetime.""" - lowPriceNBTAll: NumberFilter - """The sum of pool fees generated by the collection in the network's base token over the collection's lifetime.""" - poolFeesNBTAll: NumberFilter - """The sum of protocol fees generated by the collection in the network's base token over the collection's lifetime.""" - protocolFeesNBTAll: NumberFilter - """The total volume of the collection in USD over the collection's lifetime.""" - volumeUSDAll: NumberFilter - """The total buy volume of the collection in USD over the collection's lifetime.""" - revenueUSDAll: NumberFilter - """The total sell volume of the collection in USD over the collection's lifetime.""" - expenseUSDAll: NumberFilter - """The highest sale price within the collection in USD in the collection's lifetime.""" - highPriceUSDAll: NumberFilter - """The lowest sale price within the collection in USD in the collection's lifetime.""" - lowPriceUSDAll: NumberFilter - """The sum of pool fees generated by the collection in USD over the collection's lifetime.""" - poolFeesUSDAll: NumberFilter - """The sum of protocol fees generated by the collection in USD over the collection's lifetime.""" - protocolFeesUSDAll: NumberFilter - """The number of NFTs sold in any of the collection's pools over the past 24 hours.""" - nftsSold24: NumberFilter - """The number of NFTs bought in any of the collection's pools over the past 24 hours.""" - nftsBought24: NumberFilter - """The number of NFTs bought in any of the collection's pools over the past 24 hours.""" - nftVolume24: NumberFilter - """The total volume of the collection in the network's base token over the past 24 hours.""" - volumeNBT24: NumberFilter - """The total buy volume of the collection in the network's base token over the past 24 hours.""" - revenueNBT24: NumberFilter - """The total sell volume of the collection in the network's base token over the past 24 hours.""" - expenseNBT24: NumberFilter - """The highest sale price within the collection in the network's base token in the past 24 hours.""" - highPriceNBT24: NumberFilter - """The lowest sale price within the collection in the network's base token in the past 24 hours.""" - lowPriceNBT24: NumberFilter - """The sum of pool fees generated by the collection in the network's base token over the past 24 hours.""" - poolFeesNBT24: NumberFilter - """The sum of protocol fees generated by the collection in the network's base token over the past 24 hours.""" - protocolFeesNBT24: NumberFilter - """The total volume of the collection in USD over the past 24 hours.""" - volumeUSD24: NumberFilter - """The total buy volume of the collection in USD over the past 24 hours.""" - revenueUSD24: NumberFilter - """The total sell volume of the collection in USD over the past 24 hours.""" - expenseUSD24: NumberFilter - """The highest sale price within the collection in USD in the past 24 hours.""" - highPriceUSD24: NumberFilter - """The lowest sale price within the collection in USD in the past 24 hours.""" - lowPriceUSD24: NumberFilter - """The sum of pool fees generated by the collection in USD over the past 24 hours.""" - poolFeesUSD24: NumberFilter - """The sum of protocol fees generated by the collection in USD over the past 24 hours.""" - protocolFeesUSD24: NumberFilter - """The list of network IDs to filter by.""" - network: [Int] - """The list of NFT AMM marketplace addresses to filter by.""" - exchange: [String] - """The list of token standards to filter by. Can be a variation of `ERC-721` or `ERC-1155`.""" - ercType: [String] -} - -"""Response returned by `searchNfts`.""" -type NftSearchResponse { - """A list of NFT collections matching a given query string.""" - items: [NftSearchResponseCollection] - """The number of additional results found.""" - hasMore: Int! -} - -"""An NFT collection matching a given query string.""" -type NftSearchResponseCollection { - """The ID of the NFT collection (`address`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The name of the NFT collection. For example, `Bored Ape Yacht Club`.""" - name: String - """The symbol of the NFT collection. For example, `BAYC`.""" - symbol: String - """The image URL for the collection or one of the assets within the collection.""" - imageUrl: String - """The trade volume in USD over the `window`.""" - volume: String! - """The change in volume between the previous and current `window`.""" - volumeChange: Float! - """The trade count over the `window`.""" - tradeCount: String! - """The change in trade count between the previous and current `window`.""" - tradeCountChange: Float! - """The lowest sale price over the `window`.""" - floor: String! - """The average sale price over the `window`.""" - average: String! - """The highest sale price over the `window`.""" - ceiling: String! - """The time frame used for calculating stats.""" - window: String! -} - -"""Input type of `NftPoolFilters`.""" -input NftPoolFilters { - """The number of NFTs in the pool.""" - nftBalance: NftPoolNumberFilter - """The pool liquidity in the network's base token.""" - balanceNBT: NftPoolNumberFilter - """The current sell price of the pool in the network's base token.""" - sellNBT: NftPoolNumberFilter - """The price at which the pool is willing to buy an NFT in the network's base token.""" - offerNBT: NftPoolNumberFilter - """The pool liquidity in USD.""" - balanceUSD: NftPoolNumberFilter - """The current sell price of the pool in USD.""" - sellUSD: NftPoolNumberFilter - """The price at which the pool is willing to buy an NFT in USD.""" - offerUSD: NftPoolNumberFilter - """The number of NFTs sold over the pool's lifetime.""" - nftsSoldAll: NftPoolNumberFilter - """The number of NFTs bought over the pool's lifetime.""" - nftsBoughtAll: NftPoolNumberFilter - """The number of NFTs bought or sold over the pool's lifetime.""" - nftVolumeAll: NftPoolNumberFilter - """The total volume of the pool in the network's base token over the pool's lifetime.""" - volumeNBTAll: NftPoolNumberFilter - """The total buy volume of the pool in the network's base token over the pool's lifetime.""" - revenueNBTAll: NftPoolNumberFilter - """The total sell volume of the pool in the network's base token over the pool's lifetime.""" - expenseNBTAll: NftPoolNumberFilter - """The sum of fees generated by the pool in the network's base token over the pool's lifetime.""" - poolFeesNBTAll: NftPoolNumberFilter - """The sum of protocol fees generated by the pool in the network's base token over the pool's lifetime.""" - protocolFeesNBTAll: NftPoolNumberFilter - """The total volume of the pool in USD over the pool's lifetime.""" - volumeUSDAll: NftPoolNumberFilter - """The total buy volume of the pool in USD over the pool's lifetime.""" - revenueUSDAll: NftPoolNumberFilter - """The total sell volume of the pool in USD over the pool's lifetime.""" - expenseUSDAll: NftPoolNumberFilter - """The sum of fees generated by the pool in USD over the pool's lifetime.""" - poolFeesUSDAll: NftPoolNumberFilter - """The sum of protocol fees generated by the pool in USD over the pool's lifetime.""" - protocolFeesUSDAll: NftPoolNumberFilter - """The number of NFTs sold over the past 24 hours.""" - nftsSold24: NftPoolNumberFilter - """The number of NFTs bought over the past 24 hours.""" - nftsBought24: NftPoolNumberFilter - """The number of NFTs bought or sold over the past 24 hours.""" - nftVolume24: NftPoolNumberFilter - """The total volume of the pool in the network's base token over the past 24 hours.""" - volumeNBT24: NftPoolNumberFilter - """The total buy volume of the pool in the network's base token over the past 24 hours.""" - revenueNBT24: NftPoolNumberFilter - """The total sell volume of the pool in the network's base token over the past 24 hours.""" - expenseNBT24: NftPoolNumberFilter - """The sum of fees generated by the pool in the network's base token in the past 24 hours.""" - poolFeesNBT24: NftPoolNumberFilter - """The sum of protocol fees generated by the pool in the network's base token over the past 24 hours.""" - protocolFeesNBT24: NftPoolNumberFilter - """The total volume of the pool in USD over the past 24 hours.""" - volumeUSD24: NftPoolNumberFilter - """The total buy volume of the pool in USD over the past 24 hours.""" - revenueUSD24: NftPoolNumberFilter - """The total sell volume of the pool in USD over the past 24 hours.""" - expenseUSD24: NftPoolNumberFilter - """The sum of fees generated by the pool in USD in the past 24 hours.""" - poolFeesUSD24: NftPoolNumberFilter - """The sum of protocol fees generated by the pool in USD over the past 24 hours.""" - protocolFeesUSD24: NftPoolNumberFilter - """The list of network IDs to filter by.""" - network: [Int] - """The list of NFT AMM marketplace addresses to filter by.""" - exchangeAddress: [String] - """The contract address of the NFT collection.""" - collectionAddress: [String] - """For ERC1155 pools, the list of NFT token IDs that are accepted by the pool.""" - acceptedNftTokenIds: [String] - """The wallet address of the pool owner.""" - ownerAddress: [String] -} - -"""Response returned by `getNftCollectionMetadata`.""" -type NftCollectionMetadataResponse { - """The ID of the NFT collection (`address`:`networkId`).""" - id: String! - """Metadata for the NFT collection.""" - contract: NftContract! - """A list of stats for the NFT collection across different time frames.""" - stats: [NftCollectionWindowStats] - """The media for one of the assets within the NFT collection.""" - media: NftAssetMedia -} - -"""Stats for an NFT collection for a time frame.""" -type NftCollectionWindowStats { - """The time frame used to calculate the stats.""" - window: String! - """The price stats for the NFT collection in USD.""" - usdPriceStats: NftCollectionPriceStats! - """The price stats for the NFT collection in the network's base token.""" - networkBaseTokenPriceStats: NftCollectionPriceStats! - """The trade count over the `window`.""" - tradeCount: String! - """The change in trade count between the previous and current `window`.""" - tradeCountChange: Float! -} - -"""Price stats for an NFT collection over a time frame. Either in USD or the network's base token.""" -type NftCollectionPriceStats { - """The trade volume.""" - volume: String! - """The lowest sale price.""" - floor: String! - """The average sale price.""" - average: String! - """The highest sale price.""" - ceiling: String! - """The change in volume between the previous and current time frame.""" - volumeChange: Float - """The change in floor price between the previous and current time frame.""" - floorChange: Float - """The change in average price between the previous and current time frame.""" - averageChange: Float - """The change in ceiling price between the previous and current time frame.""" - ceilingChange: Float - """The volume partitioned by fillsource over the time frame""" - volumeByFillsource: [NftCollectionFillsourceStringStat] - """The percentages of total volume partitioned by fillsource over the time frame""" - volumePercentByFillsource: [NftCollectionFillsourceNumberStat] -} - -"""Metadata for an NFT collection.""" -type NftContract { - """The ID of the NFT collection (`address`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The token standard. Can be a variation of `ERC-721` or `ERC-1155`.""" - ercType: String! - """The name of the NFT collection.""" - name: String - """The description of the NFT collection.""" - description: String - """The symbol for the NFT collection.""" - symbol: String - """The total supply of the NFT collection.""" - totalSupply: String - """The URL for an image of the NFT collection.""" - image: String -} - -"""The contract label type.""" -enum ContractLabelType { - Scam - Verified -} - -"""The contract label sub-type.""" -enum ContractLabelSubType { - Generic - HighTax - HoneyPot - Imitator -} - -"""Metadata for a contract label.""" -type ContractLabel { - """The unix timestamp for when the contract label was created.""" - createdAt: Int! - """The contract label sub-type. Can be `Generic`, `HighTax`, `HoneyPot` or `Imitator`.""" - subType: ContractLabelSubType! - """The contract label type. Can be `Scam`.""" - type: ContractLabelType! -} - -"""Response returned by `getNftAssets`.""" -type NftAssetsConnection { - """A list of NFT assets.""" - items: [NftAsset] - """A list of errors encountered while fetching the NFT assets. Errors correspond to null values in `items` by array index.""" - itemErrors: [NftAssetError] - """A cursor for use in pagination.""" - cursor: String -} - -"""String metrics for detailed NFT stats.""" -type DetailedNftStatsStringMetrics { - """The percent change between the `currentValue` and `previousValue`.""" - change: Float - """The total value for the most recent duration.""" - currentValue: String - """The total value for the previous duration.""" - previousValue: String - """The list of aggregated values for each bucket.""" - buckets: [String]! -} - -"""Number metrics for detailed NFT stats.""" -type DetailedNftStatsNumberMetrics { - """The percent change between the `currentValue` and `previousValue`.""" - change: Float - """The total value for the most recent duration.""" - currentValue: Int - """The total value for the previous duration.""" - previousValue: Int - """The list of aggregated values for each bucket.""" - buckets: [Int]! -} - -"""The start/end timestamp for a given bucket within the window.""" -type DetailedNftStatsBucketTimestamp { - """The unix timestamp for the start of the window.""" - start: Int! - """The unix timestamp for the end of the window.""" - end: Int! -} - -"""Numerical stats for an NFT collection over a time frame.""" -type WindowedDetailedNftNonCurrencyStats { - """The number of mints over the time frame.""" - mints: DetailedNftStatsNumberMetrics - """The number of sales over the time frame.""" - sales: DetailedNftStatsNumberMetrics - """The number of transfers over the time frame.""" - transfers: DetailedNftStatsNumberMetrics - """The number of tokens sold over the time frame.""" - tokensSold: DetailedNftStatsStringMetrics - """The number of unique buyers over the time frame.""" - uniqueBuyers: DetailedNftStatsNumberMetrics - """The number of unique sellers over the time frame.""" - uniqueSellers: DetailedNftStatsNumberMetrics - """The number of unique wallets (buyers or sellers) over the time frame.""" - uniqueSalesWallets: DetailedNftStatsNumberMetrics - """The number of unique minters over the time frame.""" - uniqueMinters: DetailedNftStatsNumberMetrics -} - -"""Price stats for an NFT collection over a time frame. Either in USD or the network's base token.""" -type WindowedDetailedNftCurrencyStats { - """The volume over the time frame.""" - volume: DetailedNftStatsStringMetrics - """The average sale price in the time frame.""" - average: DetailedNftStatsStringMetrics - """The opening price for the time frame.""" - open: DetailedNftStatsStringMetrics - """The highest sale price in the time frame.""" - highestSale: DetailedNftStatsStringMetrics - """The lowest sale price in the time frame.""" - lowestSale: DetailedNftStatsStringMetrics - """The closing price for the time frame.""" - close: DetailedNftStatsStringMetrics -} - -"""Detailed NFT stats over a time frame.""" -type WindowedDetailedNftStats { - """The duration used to request detailed NFT stats.""" - duration: DetailedNftStatsDuration! - """The unix timestamp for the start of the window.""" - start: Int! - """The unix timestamp for the end of the window.""" - end: Int! - """The list of start/end timestamps broken down for each bucket within the window.""" - timestamps: [DetailedNftStatsBucketTimestamp]! - """The currency stats in USD, such as volume.""" - statsUsd: WindowedDetailedNftCurrencyStats! - """The currency stats in the network's base token, such as volume.""" - statsNetworkBaseToken: WindowedDetailedNftCurrencyStats! - """The numerical stats, such as number of buyers.""" - statsNonCurrency: WindowedDetailedNftNonCurrencyStats! -} - -"""Detailed stats for an NFT collection.""" -type DetailedNftStats { - """The contract address of the NFT collection.""" - collectionAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The marketplace address or `all`. Can be used to get marketplace-specific metrics.""" - grouping: String - """The breakdown of stats over an hour window.""" - stats_hour1: WindowedDetailedNftStats - """The breakdown of stats over a 4 hour window.""" - stats_hour4: WindowedDetailedNftStats - """The breakdown of stats over a 12 hour window.""" - stats_hour12: WindowedDetailedNftStats - """The breakdown of stats over a 24 hour window.""" - stats_day1: WindowedDetailedNftStats - """The breakdown of stats over a 7 day window.""" - stats_week1: WindowedDetailedNftStats - """The breakdown of stats over a 30 day window.""" - stats_day30: WindowedDetailedNftStats -} - -input NftHoldersInput { - """The address of the collection contract.""" - collectionAddress: String! - """The network ID the collection is deployed on.""" - networkId: Int! - """A cursor for use in pagination.""" - cursor: String -} - -type NftHoldersResponse { - """The list wallets for a collection.""" - items: [NftBalance!]! - """the unique count of holders for the collection.""" - count: Int! - """A cursor for use in pagination.""" - cursor: String - """Status of holder. Disabled if on unsupported network or there is insufficient holder data.""" - status: HoldersStatus! -} - -"""Wallet balance of an Nft Collection.""" -type NftBalance { - """The address of the wallet.""" - walletAddress: String! - """The ID of the collection (`collectionAddress:networkId`).""" - collectionId: String! - """The number of items held by the wallet.""" - balance: String! -} - -enum HoldersStatus { - ENABLED - DISABLED -} - -input WalletNftCollectionsInput { - """The address of the wallet.""" - walletAddress: String! - """A cursor for use in pagination.""" - cursor: String -} - -type WalletNftCollectionsResponse { - """The list of collections for a wallet.""" - items: [WalletNftCollection!]! - """A cursor for use in pagination.""" - cursor: String -} - -type WalletNftCollection { - """The address of the wallet.""" - walletAddress: String! - """The collection ID (`collectionAddress:networkId`).""" - collectionId: String! - """The number of items held by the wallet.""" - quantity: String! -} - -input WalletNftCollectionAssetsInput { - """The address of the wallet.""" - walletAddress: String! - """The collection ID (`collectionAddress:networkId`).""" - collectionId: String! - """A cursor for use in pagination.""" - cursor: String -} - -type WalletNftCollectionAssetsResponse { - """The list of nft assets for a wallet.""" - items: [WalletNftCollectionAsset]! - """The address of the wallet.""" - walletAddress: String! - """The collection ID (`collectionAddress:networkId`).""" - collectionId: String! - """A cursor for use in pagination.""" - cursor: String -} - -type WalletNftCollectionAsset { - """The id of the nft asset.""" - tokenId: String! - """The number of instances of the nft held by the wallet (Applicable to ERC1155 NFTs).""" - quantity: String! -} - -"""Input type of `getNftContracts`.""" -input NftContractInput { - """The NFT contract address.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! -} - -"""Input type of `EventQueryTimestamp`.""" -input EventQueryTimestampInput { - """The unix timestamp for the start of the requested range (inclusive).""" - from: Int! - """The unix timestamp for the end of the requested range (inclusive). For `getTokenEvents`, `to` may equal `from` to select one second.""" - to: Int! -} - -"""Metadata for an NFT collection.""" -type EnhancedNftContract { - """The ID of the NFT collection (`address`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The token standard. Can be a variation of `ERC-721` or `ERC-1155`.""" - ercType: String! - """The name of the NFT collection.""" - name: String - """The description of the NFT collection.""" - description: String - """The symbol of the NFT collection.""" - symbol: String - """The total supply of the NFT collection.""" - totalSupply: String - """Community gathered links for the socials of this NFT collection.""" - socialLinks: SocialLinks - """The URL for an image of the NFT collection.""" - image: String - """A list of labels for the NFT collection.""" - labels: [ContractLabel] -} - -"""Community gathered links for the socials of this contract.""" -type SocialLinks { - bitcointalk: String - blog: String - coingecko: String - coinmarketcap: String - discord: String - email: String - facebook: String - github: String - instagram: String - linkedin: String - reddit: String - slack: String - telegram: String - twitch: String - twitter: String - website: String - wechat: String - whitepaper: String - youtube: String - tiktok: String -} - -"""Game data for a Parallel asset.""" -type ParallelAssetGameData { - """The rarity of the asset. Can be `Common`, `Uncommon`, `Rare`, `Legendary`, or `Prime`.""" - rarity: String - """The Parallel the asset belongs to.""" - parallel: String - """The energy used to play in-game.""" - cost: String - """The damage dealt when engaged in combat.""" - attack: String - """The possible damage received before being destroyed.""" - health: String - """The card type. Can be `Effect`, `Relic`, `Unit`, `Upgrade` or `Paragon`.""" - cardType: String - """The card subtype. Can be `Pirate`, `Vehicle` or `Clone`.""" - subtype: String - """The description of the card's in-game abilities.""" - functionText: String - """The description of the card's passive ability.""" - passiveAbility: String -} - -type ParallelAssetMetadata { - """The card class. Can be `Art Card`, `Asset`, `Card Back`, `FE`, `Masterpiece`, `PL`, or `SE`.""" - class: String - """The total supply of this individual asset.""" - supply: String - """The asset description, sourced off-chain. Usually equal to the asset's on-chain `description`.""" - flavourText: String - """The expansion used for naming base and expansion sets.""" - expansion: String - """The paraset the asset belongs to.""" - paraset: String - """The ID used to match other cards with the same name but different class.""" - parallelId: String - """The artist name.""" - artist: String -} - -"""Input type of `ParallelCardChangeQueryTimestamp.""" -input ParallelCardChangeQueryTimestampInput { - """The unix timestamp for the start of the requested range.""" - from: Int - """The unix timestamp for the end of the requested range.""" - to: Int -} - -"""Tracked changes made to a Parallel card.""" -type ParallelCardChange { - """The token ID of the Parallel asset.""" - tokenId: String! - """The unix timestamp for the card change.""" - timestamp: Int! - """The Parallel card metadata before and after the card change.""" - diff: ParallelCardChangeDiff! -} - -"""Parallel card metadata before and after a card change.""" -type ParallelCardChangeDiff { - """Metadata for a Parallel card before the card change.""" - old: ParallelCardChangeFields! - """Metadata for a Parallel card after the card change.""" - new: ParallelCardChangeFields! -} - -"""Metadata for a Parallel card.""" -type ParallelCardChangeFields { - """The ID used to match other cards with the same name but different class.""" - parallelId: String - """The rarity of the asset. Can be `Common`, `Uncommon`, `Rare`, `Legendary`, or `Prime`.""" - rarity: String - """The card class. Can be `Art Card`, `Asset`, `Card Back`, `FE`, `Masterpiece`, `PL`, or `SE`.""" - class: String - """The total supply of this individual asset.""" - supply: String - """The Parallel the asset belongs to.""" - parallel: String - """The energy used to play in-game.""" - cost: String - """The damage dealt when engaged in combat.""" - attack: String - """The possible damage received before being destroyed.""" - health: String - """The card type. Can be `Effect`, `Relic`, `Unit`, `Upgrade` or `Paragon`.""" - cardType: String - """The card subtype. Can be `Pirate`, `Vehicle` or `Clone`.""" - subtype: String - """The description of the card's in-game abilities.""" - functionText: String - """The description of the card's passive ability.""" - passiveAbility: String - """The asset description, sourced off-chain. Usually equal to the asset's on-chain `description`.""" - flavourText: String - """The expansion used for naming base and expansion sets.""" - expansion: String - """The paraset the asset belongs to.""" - paraset: String - """The artist name.""" - artist: String -} - -"""Response returned by `getParallelCardChanges`.""" -type ParallelCardChangesConnection { - """A cursor for use in pagination.""" - cursor: String - """A list of tracked changes made to a Parallel card.""" - items: [ParallelCardChange] -} - -"""Input Type of `PrimePoolQuery`""" -input PrimePoolInput { - """The address of the pool contract.""" - address: String! - """The network that the pool is deployed on.""" - networkId: Int! - """Optional list of pool ids to fetch.""" - poolIds: [String] -} - -"""Response returned by `getPrimePools`.""" -type PrimePoolConnection { - """A cursor for use in pagination.""" - cursor: String - """A list of prime pools.""" - items: [PrimePool] -} - -"""Values obtained directly from the chain.""" -type PrimePoolChainData { - """Whether caching is paused for this pool.""" - cachingPaused: Boolean - """How much ETH has been claimed for this pool.""" - ethClaimed: String - """How much ETH reward has been accrued for this pool.""" - ethReward: String - """The pool's allocation of the contract's per-second ETH rewards.""" - ethAllocPoint: String - """Total share points of the contract's per-second ETH rewards to the pool.""" - ethTotalAllocPoint: String - """Caching ETH rewards period start timestamp.""" - ethStartTimestamp: Int - """Caching ETH rewards period end timestamp.""" - ethEndTimestamp: Int - """Last timestamp at which ETH rewards were assigned.""" - ethLastRewardTimestamp: Int - """Minimum number of timed cache seconds per ETH.""" - ethTimedCachePeriod: String - """The pool's allocation of the contract's per second PRIME rewards.""" - primeAllocPoint: String - """Total share points of the contract's per second PRIME rewards to the pool.""" - primeTotalAllocPoint: String - """Caching rewards period start timestamp.""" - primeStartTimestamp: String - """Caching rewards period end timestamp.""" - primeEndTimestamp: Int - """Last timestamp at which PRIME rewards were assigned.""" - primeLastRewardTimestamp: Int -} - -type PrimePoolCalcData { - """The amount of accumulated PRIME rewards in total for the pool.""" - poolAccumulatedPrime: String - """The amount of accumulated PRIME rewards per share for the pool.""" - shareAccumulatedPrime: String - """The amount of accumulated ETH rewards in total for the pool.""" - poolAccumulatedEth: String - """The amount of accumulated ETH rewards per share for the pool.""" - shareAccumulatedEth: String - """The amount of PRIME for the pool to pay out as caching rewards.""" - poolPrimeAmount: String - """The amount of ETH for the pool to pay out as caching rewards.""" - poolEthAmount: String - """The amount of PRIME paid out daily by the pool as caching rewards.""" - poolPrimePerDay: String - """The amount of PRIME paid out per second by the pool as caching rewards.""" - poolPrimePerSecond: String - """The amount of ETH paid out daily by the pool as caching rewards.""" - poolEthPerDay: String - """The amount of ETH paid out per second by the pool as caching rewards.""" - poolEthPerSecond: String - """The amount of PRIME paid out daily by the pool, per share of the pool's total cached supply.""" - sharePrimePerDay: String - """The amount of PRIME paid out per second by the pool, per share of the pool's total cached supply.""" - sharePrimePerSecond: String - """The amount of ETH paid out daily by the pool, per share of the pool's total cached supply.""" - shareEthPerDay: String - """The amount of ETH paid out per second by the pool, per share of the pool's total cached supply.""" - shareEthPerSecond: String -} - -"""An Echelon Prime Pool.""" -type PrimePool { - """The ID of the contract-level Prime Pool (poolContractAddress:networkId). For example, `0x89bb49d06610b4b18e355504551809be5177f3d0:1`.""" - id: String - """The contract address for the Prime Pool.""" - poolContractAddress: String - """The network ID the Prime Pool is deployed on.""" - networkId: Int - """The ID of the pool within the contract.""" - poolId: String - """Values calculated by Defined using on-chain data.""" - calcData: PrimePoolCalcData - """Values obtained directly from the chain.""" - chainData: PrimePoolChainData - """When the pool was created by Defined.""" - createdAt: Int - """The block number for when Defined discovered this pool.""" - discoveryBlockNumber: Int - """The transaction hash of when Defined discovered this pool.""" - discoveryTransactionHash: String - """The contract address for the tokens cached ib the pool.""" - nftContractAddress: String - """The type of pool for this Prime Pool.""" - poolType: String - """The Parallel tokenIds required to cache in the pool.""" - tokenIds: [String] - """The # of cached sets in the pool.""" - totalSupply: String -} - -"""Response returned by `filterNftParallelAssets`.""" -type ParallelAssetFilterConnection { - """The list of Parallel assets matching the filter parameters.""" - results: [ParallelAssetFilterResult] - """The number of Parallel assets returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""A Parallel asset matching a set of filter parameters.""" -type ParallelAssetFilterResult { - """The ID of the NFT asset (`address`:`tokenId`).""" - id: String! - """The contract address of the NFT collection.""" - address: String! - """The token ID of the NFT asset.""" - tokenId: String! - """The internal Parallel ID of the NFT asset.""" - parallelId: Int! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The NFT asset media.""" - media: NftAssetMedia - """The name of the NFT asset.""" - name: String - """The description of the NFT asset.""" - description: String - """The source image URI linked by smart contract metadata.""" - originalImage: String - """The URI provided by the smart contract. Typically JSON that contains metadata.""" - uri: String - """The unix timestamp for the last trade.""" - timestamp: Int - """The last sale price in USD.""" - lastPriceUsd: String - """The last sale price in the network's base token.""" - lastPriceNetworkBaseToken: String - """The game data for the NFT asset.""" - gameData: ParallelAssetGameData - """Metadata for the NFT asset.""" - metadata: ParallelAssetMetadata -} - -"""Attribute used to rank Parallel assets.""" -enum ParallelAssetRankingAttribute { - attack - cost - health - supply - lastPriceUsd - lastPriceNetworkBaseToken -} - -"""Input type of `ParallelAssetRanking`.""" -input ParallelAssetRanking { - """The attribute to rank Parallel assets by.""" - attribute: ParallelAssetRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Input type of `ParallelAssetFilters`.""" -input ParallelAssetFilters { - """The damage dealt when engaged in combat.""" - attack: NumberFilter - """The energy used to play in-game.""" - cost: NumberFilter - """The possible damage received before being destroyed.""" - health: NumberFilter - """The total supply of this individual asset.""" - supply: NumberFilter - """The last sale price in USD.""" - lastPriceUsd: NumberFilter - """The last sale price in the network's base token.""" - lastPriceNetworkBaseToken: NumberFilter -} - -"""The Parallel stream of evolution.""" -enum ParallelAssetMatcherParallel { - Augencore - Marcolian - Shroud - Earthen - Kathari - UnknownOrigins - Universal -} - -"""The Parallel asset card type.""" -enum ParallelAssetMatcherCardType { - Effect - Relic - Unit - Upgrade - Paragon -} - -"""The Parallel asset class.""" -enum ParallelAssetMatcherClass { - FE - SE - Asset - ArtCard - CardBack - Masterpiece - PL -} - -"""The Parallel asset rarity.""" -enum ParallelAssetMatcherRarity { - Common - Uncommon - Rare - Legendary - Prime -} - -"""The Parallel asset subtype.""" -enum ParallelAssetMatcherSubtype { - Pirate - Vehicle - Clone -} - -"""Input type of `ParallelAssetMatchers`.""" -input ParallelAssetMatchers { - tokenId: [String] - """The Parallel the asset belongs to.""" - parallel: [ParallelAssetMatcherParallel] - """The card type. Can be `Effect`, `Relic`, `Unit`, `Upgrade` or `Paragon`.""" - cardType: [ParallelAssetMatcherCardType] - """The card class. Can be `Art Card`, `Asset`, `Card Back`, `FE`, `Masterpiece`, `PL`, or `SE`.""" - class: [ParallelAssetMatcherClass] - """The paraset the asset belongs to.""" - paraset: [String] - """The list of rarities. Can be `Common`, `Uncommon`, `Rare`, `Legendary`, or `Prime`.""" - rarity: [ParallelAssetMatcherRarity] - """The card subtype. Can be `Pirate`, `Vehicle` or `Clone`.""" - subtype: [ParallelAssetMatcherSubtype] - """The expansion used for naming base and expansion sets.""" - expansion: [String] -} - -"""Response returned by `getPrimePoolAssets`.""" -type PrimePoolAssetConnection { - """The cursor to use for pagination.""" - cursor: String - """The list of cached Prime pool assets returned by the query.""" - items: [PrimePoolAsset] -} - -"""A cached Prime pool asset.""" -type PrimePoolAsset { - """The Prime pool asset ID (poolContractAddress:poolId:networkId)""" - id: String! - """The owner wallet address of the cached Prime pool asset.""" - sortKey: String! - """The number of cached Prime pool assets of this type by this owner.""" - amount: String! - """The owner wallet address of the cached Prime pool asset.""" - from: String! - """The owner wallet address of the cached Prime pool asset, and network ID (from:networkId).""" - fromHashKey: String! - """The Prime pool ID and Prime pool contract address (poolId:poolContractAddress).""" - fromSortKey: String! - """The network ID of the cached Prime pool asset.""" - networkId: Int! - """THe contract address of the Prime pool.""" - poolContractAddress: String! - """The Prime pool ID.""" - poolId: String! - """The amount of ETH the user is not eligible for either from having already harvesting or from not caching in the past.""" - ethRewardDebt: String - """The amount of PRIME the user is not eligible for either from having already harvesting or from not caching in the past.""" - primeRewardDebt: String -} - -"""Response returned by `getPrimePoolEvents`.""" -type PrimePoolEventConnection { - """The cursor to use for pagination.""" - cursor: String - """The list of Prime pool events returned by the query.""" - items: [PrimePoolEvent] -} - -"""A Prime pool event type.""" -enum PrimePoolEventType { - CACHE - CACHING_PAUSED - CLAIM - EMERGENCY_WITHDRAW - END_TIMESTAMP_UPDATED - ETH_REWARDS_ADDED - ETH_REWARDS_SET - LOG_POOL_ADDITION - LOG_POOL_SET_ALLOC_POINT - LOG_SET_PER_SECOND - LOG_UPDATE_POOL - POOL_DISCOVERED - REWARD_DECREASE - REWARD_INCREASE - TIME_CACHE_PERIOD_UPDATED - WITHDRAW -} - -"""The type of Prime pool caching contract.""" -enum PrimePoolType { - PRIME_REWARDS - ETH_AND_PRIME_REWARDS - TIMED_CACHE_ETH_AND_PRIME_REWARDS -} - -"""A Prime pool event.""" -type PrimePoolEvent { - """The Prime pool event ID (poolContractAddress:poolId:networkId)""" - id: String! - """The sort key of the Prime pool event (blockNumber:transactionIndex:logIndex).""" - sortKey: String! - """The blockHash of the Prime pool event.""" - blockHash: String! - """The blockNumber of the Prime pool event.""" - blockNumber: Int! - """The event data for the Prime pool event.""" - data: PrimePoolEventData! - """The Prime pool event type.""" - eventType: PrimePoolEventType! - """The Prime pool event's calling address.""" - from: String! - """The Prime pool event's calling address, and network ID (from:networkId).""" - fromHashKey: String! - """The logIndex of the Prime pool event.""" - logIndex: Int! - """The network ID of the Prime pool event.""" - networkId: Int! - """The Prime pool contract address.""" - poolContractAddress: String! - """The Prime pool ID.""" - poolId: String! - """The Prime pool type.""" - poolType: PrimePoolType! - """The timestamp of the Prime pool event.""" - timestamp: Int! - """The transactionHash of the Prime pool event.""" - transactionHash: String! - """The transactionIndex of the Prime pool event.""" - transactionIndex: Int! -} - -"""Event-specific data for a Prime pool transaction.""" -union PrimePoolEventData = PrimePoolCacheData | PrimePoolCachingPausedData | PrimePoolClaimEthData | PrimePoolClaimPrimeData | PrimePoolEmergencyWithdrawData | PrimePoolEndTimestampUpdatedEthData | PrimePoolEndTimestampUpdatedPrimeData | PrimePoolEthRewardsAddedData | PrimePoolEthRewardsSetData | PrimePoolLogPoolAdditionData | PrimePoolLogPoolSetAllocPointData | PrimePoolLogSetPerSecondData | PrimePoolLogUpdatePoolData | PrimePoolRewardDecreaseData | PrimePoolRewardIncreaseData | PrimePoolTimeCachePeriodUpdateData | PrimePoolWithdrawData - -"""Event-specific data for a Prime pool Cache transaction.""" -type PrimePoolCacheData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The amount of Prime pool asset(s) cached.""" - eventAmount: String! - """The total supply of assets cached in this Prime pool, including the amount cached in this transaction.""" - totalSupply: String! - """The owner wallet address of the cached Prime pool asset(s).""" - user: String! - """The total number of Prime pool asset(s) cached in this pool by this owner.""" - userCachedAmount: String! - """The amount of PRIME the user is not eligible for either from having already harvesting or from not caching in the past.""" - userPrimeRewardDebt: String! - """The amount of ETH the user is not eligible for either from having already harvesting or from not caching in the past.""" - userEthRewardDebt: String! -} - -"""Event-specific data for a Prime pool CachingPaused transaction.""" -type PrimePoolCachingPausedData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The state of caching paused set on the pool.""" - cachingPaused: Boolean! -} - -"""Currency types for Prime pool events.""" -enum PrimePoolCurrency { - ETH - PRIME -} - -"""Event-specific data for a Prime pool ClaimEth transaction.""" -type PrimePoolClaimEthData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The wallet address claiming ETH rewards.""" - user: String! - """The amount of ETH claimed.""" - eventAmount: String! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The amount of ETH the user is not eligible for either from having already harvesting or from not caching in the past.""" - userEthRewardDebt: String! - """The total amount of ETH claimed for a pool.""" - ethClaimed: String -} - -"""Event-specific data for a Prime pool ClaimPrime transaction.""" -type PrimePoolClaimPrimeData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The wallet address claiming PRIME rewards.""" - user: String! - """The amount of PRIME claimed.""" - eventAmount: String! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The total amount of PRIME claimed for a pool.""" - userPrimeRewardDebt: String! -} - -"""Event-specific data for a Prime pool EmergencyWithdraw transaction.""" -type PrimePoolEmergencyWithdrawData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The wallet address emergency withdrawing from the pool.""" - user: String! - """The amount of Prime pool asset(s) emergency withdrawn.""" - eventAmount: String! - """The total supply of assets cached in this Prime pool.""" - totalSupply: String! - """The updated total number of Prime pool asset(s) cached in this pool by this owner.""" - userCachedAmount: String! - """The amount of PRIME the user is not eligible for either from having already harvesting or from not caching in the past.""" - userPrimeRewardDebt: String! - """The amount of ETH the user is not eligible for either from having already harvesting or from not caching in the past.""" - userEthRewardDebt: String! -} - -"""Event-specific data for a Prime pool EndTimestampUpdatedEth transaction.""" -type PrimePoolEndTimestampUpdatedEthData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The updated ETH reward start timestamp for the pool.""" - ethStartTimestamp: Int! - """The updated ETH reward end timestamp for the pool.""" - ethEndTimestamp: Int! - """The updated reward per second for the pool.""" - ethPerSecond: String! -} - -"""Event-specific data for a Prime pool EndTimestampUpdatedPrime transaction.""" -type PrimePoolEndTimestampUpdatedPrimeData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The updated PRIME reward start timestamp for the pool.""" - primeStartTimestamp: Int! - """The updated PRIME reward end timestamp for the pool.""" - primeEndTimestamp: Int! - """The updated reward per second for the pool.""" - primePerSecond: String! -} - -"""Event-specific data for a Prime pool LogUpdatePool transaction.""" -type PrimePoolEthRewardsAddedData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The amount of ETH rewards added to the pool.""" - amount: String! - """The total ETH rewards for the pool.""" - totalRewards: String! -} - -"""Event-specific data for a Prime pool EthRewardsSet transaction.""" -type PrimePoolEthRewardsSetData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The amount of ETH rewards set for the pool.""" - amount: String! - """The total ETH rewards for the pool.""" - totalRewards: String! -} - -"""Event-specific data for a Prime pool LogPoolAddition (new Prime pool) transaction.""" -type PrimePoolLogPoolAdditionData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The token ID's added to the new Prime pool.""" - tokenIds: [String!]! -} - -"""Event-specific data for a Prime pool LogPoolSetAllocPoint transaction.""" -type PrimePoolLogPoolSetAllocPointData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The updated alloc point for the pool (the pool's share of the contract's total rewards).""" - allocPoint: String! - """The updated total alloc point for the pool (the sum of all pools' alloc points).""" - totalAllocPoint: String! -} - -"""Event-specific data for a Prime pool LogSetPerSecond transaction.""" -type PrimePoolLogSetPerSecondData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The updated reward per second for the pool.""" - amount: String! - """The updated reward start timestamp for the pool.""" - startTimestamp: Int! - """The updated reward end timestamp for the pool.""" - endTimestamp: Int! - """The updated PRIME reward per second for the pool.""" - primeAmountPerSecond: String - """The updated ETH reward per second for the pool.""" - ethAmountPerSecond: String -} - -"""Event-specific data for a Prime pool LogUpdatePool transaction.""" -type PrimePoolLogUpdatePoolData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The timestamp at which rewards were last assigned.""" - lastRewardTimestamp: Int! - """The total amount of assets cached in the pool (emitted by the event, before the transaction).""" - supply: String! - """The total amount of assets cached in the pool (queried from the pool after the transaction).""" - totalSupply: String! - """The amount of accumulated rewards per share.""" - accPerShare: String! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The PRIME amount of the pool.""" - primeAmount: String - """The ETH amount of the pool.""" - ethAmount: String -} - -"""Event-specific data for a Prime pool RewardDecrease transaction.""" -type PrimePoolRewardDecreaseData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The amount of rewards decreased.""" - eventAmount: String! - """The updated total rewards for the pool.""" - updatedAmount: String! -} - -"""Event-specific data for a Prime pool RewardIncrease transaction.""" -type PrimePoolRewardIncreaseData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The amount of rewards increased.""" - eventAmount: String! - """The updated total rewards for the pool.""" - updatedAmount: String! -} - -"""Event-specific data for a Prime pool TimeCachePeriodUpdate transaction.""" -type PrimePoolTimeCachePeriodUpdateData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The currency type of the event.""" - currency: PrimePoolCurrency! - """The minimum number of timed cache seconds per ETH reward.""" - timedCachePeriod: String! -} - -"""Event-specific data for a Prime pool Withdraw transaction.""" -type PrimePoolWithdrawData { - """The Prime pool event type.""" - type: PrimePoolEventType! - """The address of the wallet who withdrew.""" - user: String! - """The amount of assets withdrawn.""" - eventAmount: String! - """The updated total assets for the pool after the withdrawal.""" - totalSupply: String! - """The amount of PRIME the user is not eligible for either from having already harvesting or from not caching in the past.""" - userPrimeRewardDebt: String! - """The amount of ETH the user is not eligible for either from having already harvesting or from not caching in the past.""" - userEthRewardDebt: String! - """The amount of cached asset the user has in the pool, following the withdrawal.""" - userCachedAmount: String! -} - -"""Response returned by `onNftEventsCreated`.""" -type AddNftEventsOutput { - """The contract address of the NFT collection.""" - address: String! - """The network ID the collection is deployed on.""" - networkId: Int! - """The id of the collection (`address`:`networkId`).""" - id: String! - """A list of NFT transactions streaming real-time.""" - events: [NftEvent]! -} - -"""Response returned by `onNftPoolEventsCreated`.""" -type AddNftPoolEventsOutput { - collectionAddress: String! - exchangeAddress: String! - poolAddress: String! - networkId: Int! - id: String! - events: [NftPoolEvent]! -} - -scalar JSON - -type ApiToken { - """Unique identifier for the token""" - id: String! - """JWT to be passed into the Authorization header for API requests""" - token: String! - """ISO time string for the expiry of the token""" - expiresTimeString: String! - """Number of root fields this api token is allowed to resolve before it's rate limited""" - requestLimit: String! - """Approximate number of remaining resolutions before this token is rate limited""" - remaining: String -} - -input CreateApiTokensInput { - """Number of tokens to create, default is 1""" - count: Int - """Number of requests allowed per token, represented as a string, default is 5000""" - requestLimit: String - """Number of milliseconds until the token expires, defaults to 1 hour (3600000)""" - expiresIn: Int -} - -"""What the numbers in `ApiUsage` are measured in.""" -enum ApiUsageUnit { - """Compute units""" - COMPUTE_UNITS - """Billed requests""" - REQUESTS -} - -"""Usage for an account in its current billing period. Usage values are base-10 integer strings.""" -type ApiUsage { - """What `used`, `limit`, `remaining` and `breakdown` are measured in""" - unit: ApiUsageUnit! - """Start of the current billing period (unix seconds)""" - periodStart: Int! - """End of the current billing period, exclusive (unix seconds)""" - periodEnd: Int! - """Usage this period, in `unit`""" - used: String! - """Plan quota for this period, in `unit`. Null if the plan has no quota. On some plans this is a soft limit: reaching it does not block requests.""" - limit: String - """`limit` minus `used`, floored at 0. Null if there is no quota.""" - remaining: String - """Percent of the quota used. Can exceed 100. Null if there is no quota.""" - percentUsed: Float - """Usage split by operation type, in `unit`""" - breakdown: ApiUsageBreakdown! - """When these numbers were last refreshed (unix seconds). Null if no usage has been recorded this period.""" - updatedAt: Int -} - -"""Usage split by operation type. Values are base-10 integer strings.""" -type ApiUsageBreakdown { - """Queries""" - query: String! - """Mutations""" - mutation: String! - """Subscriptions""" - subscription: String! - """Webhook deliveries""" - webhook: String! -} - -scalar Void - -"""Type of the community gathered note.""" -enum CommunityNoteType { - """An contract attribute change.""" - ATTRIBUTE - """A scam report.""" - SCAM - """A logo change.""" - LOGO -} - -"""Type of the contract.""" -enum ContractType { - TOKEN - WALLET -} - -enum ContractProposalStatus { - ACCEPTED - PENDING - REJECTED - REVERTED -} - -"""The attribute used to rank tokens.""" -enum TokenRankingAttribute { - """Weighted risk score.""" - riskScore - """Unix seconds of the token's latest recorded risk change.""" - riskFlaggedAt - createdAt - tokenCreatedAt - lastTransaction - age @deprecated(reason: "Use createdAt instead") - buyCount5m - buyCount1 - buyCount4 - buyCount12 - buyCount24 - change5m - change1 - change4 - change12 - change24 - volumeChange5m - volumeChange1 - volumeChange4 - volumeChange12 - volumeChange24 - high5m - high1 - high4 - high12 - high24 - holders - notableHolderCount - liquidity - totalLiquidityUsd - low5m - low1 - low4 - low12 - low24 - marketCap - circulatingMarketCap - priceUSD - sellCount5m - sellCount1 - sellCount4 - sellCount12 - sellCount24 - trendingScore - trendingScore5m - trendingScore1 - trendingScore4 - trendingScore12 - trendingScore24 - txnCount5m - txnCount1 - txnCount4 - txnCount12 - txnCount24 - uniqueBuys5m - uniqueBuys1 - uniqueBuys4 - uniqueBuys12 - uniqueBuys24 - uniqueSells5m - uniqueSells1 - uniqueSells4 - uniqueSells12 - uniqueSells24 - uniqueTransactions5m - uniqueTransactions1 - uniqueTransactions4 - uniqueTransactions12 - uniqueTransactions24 - volume5m - volume1 - volume4 - volume12 - volume24 - buyVolume5m - buyVolume1 - buyVolume4 - buyVolume12 - buyVolume24 - sellVolume5m - sellVolume1 - sellVolume4 - sellVolume12 - sellVolume24 - poolFees5m - poolFees1 - poolFees4 - poolFees12 - poolFees24 - baseFees5m - baseFees1 - baseFees4 - baseFees12 - baseFees24 - priorityFees5m - priorityFees1 - priorityFees4 - priorityFees12 - priorityFees24 - builderTips5m - builderTips1 - builderTips4 - builderTips12 - builderTips24 - l1DataFees5m - l1DataFees1 - l1DataFees4 - l1DataFees12 - l1DataFees24 - totalFees5m - totalFees1 - totalFees4 - totalFees12 - totalFees24 - feeToVolumeRatio5m - feeToVolumeRatio1 - feeToVolumeRatio4 - feeToVolumeRatio12 - feeToVolumeRatio24 - launchpadCompletedAt - launchpadMigratedAt - graduationPercent - walletAgeAvg - walletAgeStd - swapPct1dOldWallet - swapPct7dOldWallet - sniperHeldPercentage - bundlerHeldPercentage - insiderHeldPercentage - suspiciousHeldPercentage - sniperCount - bundlerCount - insiderCount - suspiciousCount - devHeldPercentage - top10HoldersPercent - coinCommunityPostCount - coinCommunityMemberCount - coinCommunityLikeCount - coinCommunityLastPostAt -} - -"""Input type of `TokenRanking`.""" -input TokenRanking { - """The attribute to rank tokens by.""" - attribute: TokenRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Real-time or historical prices for a token.""" -type Price { - """The contract address of the token.""" - address: String! - """The unix timestamp for the price.""" - timestamp: Int - """The network ID the token is deployed on.""" - networkId: Int! - """The token price in USD.""" - priceUsd: Float! - """The pool that emitted the swap generating this price""" - blockNumber: Int - """The token's liquidity in USD. On networks where the real-money total is enabled, this is `totalLiquidityUsd` from `filterTokens`: the combined liquidity of its 15 deepest pools, leaving out pools with no trade in the last 7 days, where each pool counts only the real money the token can reach in one or two trades into the network's pricing reference tokens (such as its main stablecoins), with each route counted once. Elsewhere, or until that total is computed for the token, it is the token's route-backed liquidity, summed across its pairs with valid routing liquidity. Null when this stat has not been computed for the token yet. On subscriptions it is the `totalLiquidityUsd` value only, refreshed at most every 30 seconds, and null on networks where the real-money total is not enabled.""" - liquidityUsd: String - """The percent price change in the past 24 hours. Decimal format. Not available via subscription.""" - priceChange24: Float - """The pool that emitted the swap generating this price""" - poolAddress: String @deprecated(reason: "Pricing no longer based on specific pools") - """Ratio of how confident we are in the price""" - confidence: Float @deprecated(reason: "Pricing no longer based on specific pools") -} - -"""Metadata for a token.""" -type EnhancedToken { - """The ID of the token (`address:networkId`).""" - id: String! - """The contract address of the token.""" - address: String! - """The token ID on CoinMarketCap.""" - cmcId: Int - """The precision to which the token can be divided. For example, the smallest unit for USDC is 0.000001 (6 decimals).""" - decimals: Int! - """Whether the token has been flagged as a scam.""" - isScam: Boolean - """The token name. For example, `ApeCoin`.""" - name: String - """The network ID the token is deployed on.""" - networkId: Int! - """The token symbol. For example, `APE`.""" - symbol: String - """The total supply of the token.""" - totalSupply: String @deprecated(reason: "Use the TokenInfo type") - """Community gathered links for the socials of this token.""" - socialLinks: SocialLinks - """More metadata about the token.""" - info: TokenInfo - """The Grid asset ID, if this token is linked to a Grid asset.""" - gridAssetId: String - """The Grid bluechip rating for this token (e.g. `A+`, `B-`).""" - bluechipRating: String - """The Grid organization associated with this token. Null when the token is reached through `AssetDeployment.token`.""" - organization: Organization - """The Grid asset associated with this token. Null when the token is reached through `AssetDeployment.token`.""" - asset: Asset - """Information about the token from 3rd party sources.""" - explorerData: ExplorerTokenData @deprecated(reason: "Use the TokenInfo type") - """A list of exchanges where the token has been traded.""" - exchanges: [Exchange!] - """The thumbnail token logo URL.""" - imageThumbUrl: String @deprecated(reason: "Use the TokenInfo type") - """The small token logo URL.""" - imageSmallUrl: String @deprecated(reason: "Use the TokenInfo type") - """The large token logo URL.""" - imageLargeUrl: String @deprecated(reason: "Use the TokenInfo type") - """The circulating supply of the token.""" - circulatingSupply: String @deprecated(reason: "Use the TokenInfo type") - """The amount of this token in the pair.""" - pooled: String @deprecated(reason: "Pooled can be found on the pair instead") - """The token creator's wallet address.""" - creatorAddress: String - """The token creator's wallet identity and profile, resolved from creatorAddress. Null when the token has no known creator.""" - creator: Wallet - """The token creator's network-based token balance at time of contract creation.""" - creatorBalanceNBT: String - """The block height the token was created at.""" - createBlockNumber: Int - """The transaction hash of the token's creation.""" - createTransactionHash: String - """The unix timestamp for the creation of the token.""" - createdAt: Int - """Returns mint authority address if token is mintable. If null, verify against isMintableValid.""" - mintable: String - """Returns freeze authority address if token is freezable. If null, verify against isFreezableValid.""" - freezable: String - """Determines if freezable is a valid address or null value for the authority, or if the freezable state has not yet been determined.""" - isFreezableValid: Boolean - """Determines if mintable is a valid address or null value for the authority, or if the mintable state has not yet been determined.""" - isMintableValid: Boolean - """The launchpad data for the token, if applicable.""" - launchpad: LaunchpadData - """The percentage of total supply held by the top 10 holders (excluding exchanges/pairs).""" - top10HoldersPercent: Float - """Whether the token name or symbol contains profanity.""" - profanity: Boolean - """All-time high and low price/market cap data for the token.""" - extrema: TokenExtrema - """The Coin Community data for the token""" - coinCommunity: CoinCommunity - """Token extension metadata, if available.""" - extensions: TokenExtensions - """Token-standard-specific custom metadata — currently ERC-7572 `contractURI` fields, as used by Base B20 tokens. Null for tokens without a recognized token standard.""" - tokenStandardCustomData: Erc7572CustomInfo - categories: [Category!] - """Codex's unified risk assessment for this token — one verdict, the score behind it, how much analysis stood behind that score, and the reasons that fired. Read `coverage` before trusting `verdict`.""" - risk: TokenRisk - """The issuer of a real-world-asset token, such as a tokenized stock. Null when the token has no known issuer.""" - issuer: TokenIssuer -} - -"""A token matching a set of filter parameters.""" -type TokenFilterResult { - """Metadata for the token.""" - token: EnhancedToken - """The unix timestamp for the creation of the token's first pair.""" - createdAt: Int - """The unix timestamp for the token's last transaction.""" - lastTransaction: Int - age: Int @deprecated(reason: "Age isn't supported - use createdAt instead") - """The number of buys in the past 5 minutes.""" - buyCount5m: Int - """The number of buys in the past hour.""" - buyCount1: Int - """The number of buys in the past 12 hours.""" - buyCount12: Int - """The number of buys in the past 24 hours.""" - buyCount24: Int - """The number of buys in the past 4 hours.""" - buyCount4: Int - """The percent price change in the past 5 minutes. Decimal format.""" - change5m: String - """The percent price change in the past hour. Decimal format.""" - change1: String - """The percent price change in the past 12 hours. Decimal format.""" - change12: String - """The percent price change in the past 24 hours. Decimal format.""" - change24: String - """The percent price change in the past 4 hours. Decimal format.""" - change4: String - """The percent volume change in the past 5 minutes. Decimal format.""" - volumeChange5m: String - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: String - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: String - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: String - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: String - """The exchanges the token is listed on.""" - exchanges: [Exchange] - fdv: String @deprecated(reason: "FDV isn't supported - use marketCap instead") - """The highest price in USD in the past 5 minutes.""" - high5m: String - """The highest price in USD in the past hour.""" - high1: String - """The highest price in USD in the past 12 hours.""" - high12: String - """The highest price in USD in the past 24 hours.""" - high24: String - """The highest price in USD in the past 4 hours.""" - high4: String - """The token's liquidity in USD. On networks where the real-money total is enabled, this is the same value as `totalLiquidityUsd` (the combined liquidity of its 15 deepest pools) once the token has one. On other networks it is the liquidity of the token's top pair, or with `useAggregatedStats` the token's aggregated liquidity. The value is recomputed when the token trades, so a token with no trade since this definition last changed keeps its previous value.""" - liquidity: String - """The token's total liquidity in USD: the combined liquidity of its 15 deepest pools, leaving out pools with no trade in the last 7 days. On networks where the real-money total is enabled, each pool counts only the real money behind it: what the token can reach in one or two trades into the network's pricing reference tokens (such as its main stablecoins), with each route counted once. On networks where the real-money total is enabled, `liquidity` is the same value; elsewhere `liquidity` covers the top pair only (or the aggregated liquidity with `useAggregatedStats`). The value is recomputed when the token trades, so a token with no trade since this definition last changed keeps its previous value. Null when this stat has not been computed for the token yet.""" - totalLiquidityUsd: String - """The token of interest. Can be `token0` or `token1`.""" - quoteToken: String - """The lowest price in USD in the past 5 minutes.""" - low5m: String - """The lowest price in USD in the past hour.""" - low1: String - """The lowest price in USD in the past 12 hours.""" - low12: String - """The lowest price in USD in the past 24 hours.""" - low24: String - """The lowest price in USD in the past 4 hours.""" - low4: String - """The fully diluted market cap.""" - marketCap: String - """The circulating market cap.""" - circulatingMarketCap: String - """Metadata for the token's top pair.""" - pair: Pair - """Metadata for the token's most liquid pair""" - liquidPair: Pair - """The liquidity of the token's most liquid pair. On networks where the real-money total is enabled, this is the same value as `totalLiquidityUsd` (the combined liquidity of the token's 15 deepest pools) once the token has one. The value is recomputed when the token trades.""" - liquidPairLiquidity: String - """The liquid pairs price in USD.""" - liquidPairPriceUSD: String - """The token price in USD.""" - priceUSD: String - """A heuristic based on various factors used to rank tokens based on how trending they are.""" - trendingScore: Float - """The trending score over the past 5 minutes. Matches the value the `trendingScore5m` ranking attribute sorts by.""" - trendingScore5m: Float - """The trending score over the past hour. Matches the value the `trendingScore1` ranking attribute sorts by.""" - trendingScore1: Float - """The trending score over the past 4 hours. Matches the value the `trendingScore4` ranking attribute sorts by.""" - trendingScore4: Float - """The trending score over the past 12 hours. Matches the value the `trendingScore12` ranking attribute sorts by.""" - trendingScore12: Float - """The trending score over the past 24 hours. Matches the value the `trendingScore24` ranking attribute sorts by.""" - trendingScore24: Float - """The number of sells in the past 5 minutes.""" - sellCount5m: Int - """The number of sells in the past hour.""" - sellCount1: Int - """The number of sells in the past 12 hours.""" - sellCount12: Int - """The number of sells in the past 24 hours.""" - sellCount24: Int - """The number of sells in the past 4 hours.""" - sellCount4: Int - """The number of transactions in the past 5 minutes.""" - txnCount5m: Int - """The number of transactions in the past hour.""" - txnCount1: Int - """The number of transactions in the past 12 hours.""" - txnCount12: Int - """The number of transactions in the past 24 hours.""" - txnCount24: Int - """The number of transactions in the past 4 hours.""" - txnCount4: Int - """The unique number of buys in the past 5 minutes.""" - uniqueBuys5m: Int - """The unique number of buys in the past hour.""" - uniqueBuys1: Int - """The unique number of buys in the past 12 hours.""" - uniqueBuys12: Int - """The unique number of buys in the past 24 hours.""" - uniqueBuys24: Int - """The unique number of buys in the past 4 hours.""" - uniqueBuys4: Int - """The unique number of sells in the past 5 minutes.""" - uniqueSells5m: Int - """The unique number of sells in the past hour.""" - uniqueSells1: Int - """The unique number of sells in the past 12 hours.""" - uniqueSells12: Int - """The unique number of sells in the past 24 hours.""" - uniqueSells24: Int - """The unique number of sells in the past 4 hours.""" - uniqueSells4: Int - """The unique number of transactions in the past 5 minutes.""" - uniqueTransactions5m: Int - """The unique number of transactions in the past hour.""" - uniqueTransactions1: Int - """The unique number of transactions in the past 12 hours.""" - uniqueTransactions12: Int - """The unique number of transactions in the past 24 hours.""" - uniqueTransactions24: Int - """The unique number of transactions in the past 4 hours.""" - uniqueTransactions4: Int - """The trade volume in USD in the past hour.""" - volume1: String - """The trade volume in USD in the past 5 minutes.""" - volume5m: String - """The trade volume in USD in the past 12 hours.""" - volume12: String - """The trade volume in USD in the past 24 hours.""" - volume24: String - """The trade volume in USD in the past 4 hours.""" - volume4: String - """The buy volume in USD in the past hour.""" - buyVolume1: String - """The buy volume in USD in the past 12 hours.""" - buyVolume12: String - """The buy volume in USD in the past 24 hours.""" - buyVolume24: String - """The buy volume in USD in the past 4 hours.""" - buyVolume4: String - """The buy volume in USD in the past 5 minutes.""" - buyVolume5m: String - """The sell volume in USD in the past hour.""" - sellVolume1: String - """The sell volume in USD in the past 12 hours.""" - sellVolume12: String - """The sell volume in USD in the past 24 hours.""" - sellVolume24: String - """The sell volume in USD in the past 4 hours.""" - sellVolume4: String - """The sell volume in USD in the past 5 minutes.""" - sellVolume5m: String - """The total pool fees in USD in the past 5 minutes.""" - poolFees5m: String - """The total pool fees in USD in the past hour.""" - poolFees1: String - """The total pool fees in USD in the past 4 hours.""" - poolFees4: String - """The total pool fees in USD in the past 12 hours.""" - poolFees12: String - """The total pool fees in USD in the past 24 hours.""" - poolFees24: String - """The total base gas fees in USD in the past 5 minutes.""" - baseFees5m: String - """The total base gas fees in USD in the past hour.""" - baseFees1: String - """The total base gas fees in USD in the past 4 hours.""" - baseFees4: String - """The total base gas fees in USD in the past 12 hours.""" - baseFees12: String - """The total base gas fees in USD in the past 24 hours.""" - baseFees24: String - """The total priority fees in USD in the past 5 minutes.""" - priorityFees5m: String - """The total priority fees in USD in the past hour.""" - priorityFees1: String - """The total priority fees in USD in the past 4 hours.""" - priorityFees4: String - """The total priority fees in USD in the past 12 hours.""" - priorityFees12: String - """The total priority fees in USD in the past 24 hours.""" - priorityFees24: String - """The total builder tips (MEV) in USD in the past 5 minutes.""" - builderTips5m: String - """The total builder tips (MEV) in USD in the past hour.""" - builderTips1: String - """The total builder tips (MEV) in USD in the past 4 hours.""" - builderTips4: String - """The total builder tips (MEV) in USD in the past 12 hours.""" - builderTips12: String - """The total builder tips (MEV) in USD in the past 24 hours.""" - builderTips24: String - """The total L1 data fees in USD in the past 5 minutes.""" - l1DataFees5m: String - """The total L1 data fees in USD in the past hour.""" - l1DataFees1: String - """The total L1 data fees in USD in the past 4 hours.""" - l1DataFees4: String - """The total L1 data fees in USD in the past 12 hours.""" - l1DataFees12: String - """The total L1 data fees in USD in the past 24 hours.""" - l1DataFees24: String - """The total trading fees (pool + gas + tips) in USD in the past 5 minutes.""" - totalFees5m: String - """The total trading fees (pool + gas + tips) in USD in the past hour.""" - totalFees1: String - """The total trading fees (pool + gas + tips) in USD in the past 4 hours.""" - totalFees4: String - """The total trading fees (pool + gas + tips) in USD in the past 12 hours.""" - totalFees12: String - """The total trading fees (pool + gas + tips) in USD in the past 24 hours.""" - totalFees24: String - """The ratio of total fees to volume in the past 5 minutes. Decimal format.""" - feeToVolumeRatio5m: String - """The ratio of total fees to volume in the past hour. Decimal format.""" - feeToVolumeRatio1: String - """The ratio of total fees to volume in the past 4 hours. Decimal format.""" - feeToVolumeRatio4: String - """The ratio of total fees to volume in the past 12 hours. Decimal format.""" - feeToVolumeRatio12: String - """The ratio of total fees to volume in the past 24 hours. Decimal format.""" - feeToVolumeRatio24: String - """Whether the token has been flagged as a scam.""" - isScam: Boolean - """The number of different wallets holding the token.""" - holders: Int - """The average age of the wallets that traded in the last 24h""" - walletAgeAvg: String - """The standard deviation of age of the wallets that traded in the last 24h""" - walletAgeStd: String - """The percentage of wallets that are less than 1d old that have traded in the last 24h""" - swapPct1dOldWallet: String - """The percentage of wallets that are less than 7d old that have traded in the last 24h""" - swapPct7dOldWallet: String - """The number of wallets that have sniped the token. Null for a token `tokenWalletStats` does not cover.""" - sniperCount: Int - """The percentage of tokens held by snipers. Null for a token `tokenWalletStats` does not cover.""" - sniperHeldPercentage: Float - """The number of wallets that have bundled the token. Null for a token `tokenWalletStats` does not cover.""" - bundlerCount: Int - """The percentage of tokens held by bundlers. Null for a token `tokenWalletStats` does not cover.""" - bundlerHeldPercentage: Float - """The number of wallets that have been an insider of the token. Null for a token `tokenWalletStats` does not cover.""" - insiderCount: Int - """The percentage of tokens held by insiders. Null for a token `tokenWalletStats` does not cover.""" - insiderHeldPercentage: Float - """The number of suspicious wallets (deduplicated union of snipers, bundlers, and insiders). Null for a token `tokenWalletStats` does not cover.""" - suspiciousCount: Int - """The percentage of tokens held by suspicious wallets. Null for a token `tokenWalletStats` does not cover.""" - suspiciousHeldPercentage: Float - """The percentage of tokens held by the dev. Null for a token `tokenWalletStats` does not cover.""" - devHeldPercentage: Float - """The percentage of total supply held by the top 10 holders.""" - top10HoldersPercent: Float - """The reasons the token has been flagged as a potential scam.""" - potentialScamReasons: [PotentialScamReason] - """The all-time high price in USD.""" - athPrice: String - """The unix timestamp when the all-time high price was reached.""" - athPriceTimestamp: Int - """The all-time low price in USD.""" - atlPrice: String - """The unix timestamp when the all-time low price was reached.""" - atlPriceTimestamp: Int - """The all-time high fully diluted market cap.""" - athFdv: String - """The unix timestamp when the all-time high FDV was reached.""" - athFdvTimestamp: Int - """The all-time low fully diluted market cap.""" - atlFdv: String - """The unix timestamp when the all-time low FDV was reached.""" - atlFdvTimestamp: Int - """The all-time high circulating market cap.""" - athCircMc: String - """The unix timestamp when the all-time high circulating market cap was reached.""" - athCircMcTimestamp: Int - """The all-time low circulating market cap.""" - atlCircMc: String - """The unix timestamp when the all-time low circulating market cap was reached.""" - atlCircMcTimestamp: Int -} - -"""Metadata for a contract.""" -union EnhancedContract = EnhancedToken | EnhancedNftContract - -"""Community gathered proposals for an asset.""" -type CommunityNote { - """The contract address of the contract.""" - address: String! - contractType: ContractType! - currentContract: EnhancedContract - """The contract after the community note was applied.""" - currentData: JSON - """The ID of the contract (`address:id`).""" - id: String! - """The unix timestamp of when the community note was moderated.""" - moderatedAt: Int - """The network ID the contract is deployed on.""" - networkId: Int! - """The contract before the community note was applied.""" - previousData: JSON - """The data of the community note.""" - proposalData: JSON! - """The ordinal number of the community note.""" - proposalNum: Int! - """The type of the community note.""" - proposalType: CommunityNoteType! - """The unix timestamp of when the community note was created.""" - proposedAt: Int! - """The status of the community note.""" - status: ContractProposalStatus! - sortKey: String! -} - -"""Metadata for a decentralized exchange.""" -type Exchange { - """The ID of the exchange (`address:id`).""" - id: String! - """The contract address of the exchange.""" - address: String! - """The hex string for the exchange color.""" - color: String - """The name of the exchange.""" - name: String - """The version of the exchange, if applicable.""" - exchangeVersion: String - """The exchange logo URL.""" - iconUrl: String - """The network ID the exchange is deployed on.""" - networkId: Int! - """The URL for the exchange.""" - tradeUrl: String -} - -"""Filters for community notes.""" -input CommunityNotesFilter { - """The contract address of the contract.""" - address: String - contractType: ContractType - """The network ID the contract is deployed on.""" - networkId: [Int] - """The type of the proposal.""" - proposalType: CommunityNoteType -} - -"""Input type of `getCommunityNotes`.""" -input CommunityNotesInput { - """A set of filters to apply""" - filter: CommunityNotesFilter - """The maximum number of community notes to return.""" - limit: Int - """The cursor to use for pagination.""" - cursor: String -} - -"""Community notes data.""" -type CommunityNotesResponse { - """The list of community notes matching the filter parameters.""" - items: [CommunityNote!]! - """The number of community notes returned.""" - count: Int! - """A cursor for use in pagination.""" - cursor: String -} - -"""Metadata for a wallet label from the WALLET_LABEL_TYPES vocabulary""" -type WalletLabelType { - """Label name (e.g. WHALE, CEX, KOL)""" - name: String! - """Human-readable display name""" - displayName: String! - """Description of what this label means""" - description: String! -} - -"""A prediction sub-subcategory (3rd level, terminal).""" -type PredictionSubSubcategory { - """The display name.""" - name: String! - """The URL slug.""" - slug: String! -} - -"""A prediction subcategory (2nd level).""" -type PredictionSubcategory { - """The display name.""" - name: String! - """The URL slug.""" - slug: String! - """Nested subcategories (3rd level).""" - subcategories: [PredictionSubSubcategory!] -} - -"""A prediction category with optional nested subcategories.""" -type PredictionCategory { - """The display name.""" - name: String! - """The URL slug.""" - slug: String! - """Nested subcategories (2nd level).""" - subcategories: [PredictionSubcategory!] -} - -"""The duration used to request windowed prediction stats.""" -enum PredictionStatsDuration { - week1 - day1 - hour12 - hour4 - hour1 - min5 -} - -"""Input type of `detailedPredictionMarketStats`.""" -input DetailedPredictionMarketStatsInput { - """The ID of the prediction market.""" - marketId: String! - """The unix timestamp.""" - timestamp: Int - """The stat durations to include.""" - durations: [PredictionStatsDuration!] - """The number of stat buckets to return.""" - bucketCount: Int -} - -"""A currency value pair containing both USD and collateral token values.""" -type CurrencyValuePair { - """Value in USD.""" - usd: String! - """Value in collateral token units.""" - ct: String! -} - -"""OHLC (Open/High/Low/Close) values for a currency pair.""" -type CurrencyOHLC { - """Opening value.""" - open: CurrencyValuePair! - """Closing value.""" - close: CurrencyValuePair! - """Low value.""" - low: CurrencyValuePair! - """High value.""" - high: CurrencyValuePair! -} - -"""A price value pair containing both USD and collateral token prices.""" -type PriceValuePair { - """Price in USD.""" - usd: String! - """Price in collateral token units.""" - ct: String! -} - -"""OHLC (Open/High/Low/Close) values for prices.""" -type PriceOHLC { - """Opening price.""" - open: PriceValuePair! - """Closing price.""" - close: PriceValuePair! - """Low price.""" - low: PriceValuePair! - """High price.""" - high: PriceValuePair! -} - -"""All-time stats containing volume data.""" -type WindowedPredictionAllTimeStats { - """Total volume.""" - volume: CurrencyValuePair! - """Venue-specific volume (optional).""" - venueVolume: CurrencyValuePair -} - -"""Core market stats that are always available.""" -type WindowedPredictionMarketCoreStats { - """Volume during this window.""" - volume: CurrencyValuePair! - """Number of trades during this window.""" - trades: Int! -} - -"""Unique trader count during the period.""" -type WindowedPredictionMarketUniqueTraderStats { - """Number of unique traders.""" - uniqueTraders: Int! -} - -"""Market-level liquidity OHLC data.""" -type WindowedPredictionMarketLiquidityStats { - """Liquidity OHLC values.""" - liquidity: CurrencyOHLC! -} - -"""Market-level open interest OHLC data.""" -type WindowedPredictionMarketOpenInterestStats { - """Open interest OHLC values.""" - openInterest: CurrencyOHLC! -} - -"""Change percentages for a prediction market over a time window.""" -type WindowedPredictionMarketChangeStats { - """Volume change percentage.""" - volumeChange: Float! - """Trades change percentage.""" - tradesChange: Float! - """Unique traders change percentage (optional).""" - uniqueTradersChange: Float - """Liquidity change percentage (optional).""" - liquidityChange: Float - """Open interest change percentage (optional).""" - openInterestChange: Float -} - -"""Volume breakdown including shares for an outcome.""" -type OutcomeVolumeStats { - """Volume in USD.""" - usd: String! - """Volume in collateral token units.""" - ct: String! - """Volume in shares.""" - shares: String! -} - -"""Buy/sell volume breakdown including shares.""" -type OutcomeBuySellVolumeStats { - """Volume in USD.""" - usd: String! - """Volume in collateral token units.""" - ct: String! - """Volume in shares.""" - shares: String! -} - -"""Core outcome stats that are always available.""" -type WindowedPredictionOutcomeCoreStats { - """The venue-specific outcome ID.""" - venueOutcomeId: String! - """Number of trades.""" - trades: Int! - """Volume stats including shares.""" - volume: OutcomeVolumeStats! - """Price OHLC data.""" - price: PriceOHLC! -} - -"""Buy/sell trade breakdown for an outcome.""" -type WindowedPredictionOutcomeBuySellStats { - """Number of buys.""" - buys: Int! - """Number of sells.""" - sells: Int! - """Buy volume breakdown.""" - buyVolume: OutcomeBuySellVolumeStats! - """Sell volume breakdown.""" - sellVolume: OutcomeBuySellVolumeStats! -} - -"""Outcome-level liquidity OHLC data.""" -type WindowedPredictionOutcomeLiquidityStats { - """Liquidity OHLC values.""" - liquidity: CurrencyOHLC! -} - -"""Orderbook bid/ask OHLC data.""" -type WindowedPredictionOutcomeOrderbookStats { - """Bid price OHLC.""" - bid: PriceOHLC! - """Ask price OHLC.""" - ask: PriceOHLC! -} - -"""Two percent depth OHLC data for bid and ask.""" -type WindowedPredictionOutcomeDepthStats { - """Bid depth OHLC.""" - bidDepth: CurrencyOHLC! - """Ask depth OHLC.""" - askDepth: CurrencyOHLC! -} - -"""Change percentages for a prediction outcome over a time window.""" -type WindowedPredictionOutcomeChangeStats { - """Volume change percentage.""" - volumeChange: Float! - """Volume shares change percentage.""" - volumeSharesChange: Float! - """Price change percentage.""" - priceChange: Float! - """Trades change percentage.""" - tradesChange: Float! - """Price range over the window (volatility proxy).""" - priceRange: Float! - """Buys change percentage (optional).""" - buysChange: Float - """Sells change percentage (optional).""" - sellsChange: Float - """Liquidity change percentage (optional).""" - liquidityChange: Float -} - -"""Enhanced stats for a single outcome over a time window.""" -type EnhancedWindowedPredictionOutcomeStats { - """Core stats (always present).""" - core: WindowedPredictionOutcomeCoreStats! - """Buy/sell breakdown (optional).""" - buySell: WindowedPredictionOutcomeBuySellStats - """Liquidity stats (optional).""" - liquidity: WindowedPredictionOutcomeLiquidityStats - """Orderbook stats (optional).""" - orderbook: WindowedPredictionOutcomeOrderbookStats - """Depth stats (optional).""" - depth: WindowedPredictionOutcomeDepthStats - """Change stats for this window.""" - statsChange: WindowedPredictionOutcomeChangeStats! -} - -"""Trending, relevance, and competitive scores for a market window.""" -type PredictionMarketWindowScores { - """The trending score.""" - trending: Float! - """The relevance score.""" - relevance: Float! - """The competitive score.""" - competitive: Float! -} - -"""Enhanced stats for a prediction market over a time window.""" -type EnhancedWindowedPredictionMarketStats { - """Window start timestamp.""" - start: Int! - """Window end timestamp.""" - end: Int! - """Timestamp of last transaction in window.""" - lastTransactionAt: Int! - """Core stats (always present).""" - core: WindowedPredictionMarketCoreStats! - """Unique trader stats (optional).""" - uniqueTraders: WindowedPredictionMarketUniqueTraderStats - """Liquidity stats (optional).""" - liquidity: WindowedPredictionMarketLiquidityStats - """Open interest stats (optional).""" - openInterest: WindowedPredictionMarketOpenInterestStats - """Change stats for this window.""" - statsChange: WindowedPredictionMarketChangeStats! - """Scores for this window.""" - scores: PredictionMarketWindowScores! - """Outcome 0 stats.""" - outcome0Stats: EnhancedWindowedPredictionOutcomeStats! - """Outcome 1 stats.""" - outcome1Stats: EnhancedWindowedPredictionOutcomeStats! - """All-time aggregate stats.""" - allTimeStats: WindowedPredictionAllTimeStats! -} - -"""Scores across multiple time windows for a prediction entity.""" -type DetailedPredictionStatsScores { - """The score5m.""" - score5m: Float - """The score1.""" - score1: Float - """The score4.""" - score4: Float - """The score12.""" - score12: Float - """The score24.""" - score24: Float - """The score1w.""" - score1w: Float -} - -"""All-time aggregate stats for a prediction market.""" -type PredictionMarketAllTimeStats { - """Total volume.""" - volume: CurrencyValuePair! - """Venue-specific volume (optional).""" - venueVolume: CurrencyValuePair -} - -"""Lifecycle metadata for a prediction entity including status and timing.""" -type PredictionLifecycleStats { - """The age seconds.""" - ageSeconds: Int! - """The expected lifespan seconds.""" - expectedLifespanSeconds: Int - """The time to resolution seconds.""" - timeToResolutionSeconds: Int - """The is resolved.""" - isResolved: Boolean! - """The ID of the winning outcome.""" - winningOutcomeId: String -} - -"""Response returned by `detailedPredictionMarketStats`.""" -type DetailedPredictionMarketStats { - """The ID of the prediction market.""" - marketId: String! - """The prediction market.""" - predictionMarket: PredictionMarket! - """The prediction event.""" - predictionEvent: PredictionEvent! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Lifecycle metadata.""" - lifecycle: PredictionLifecycleStats! - """Stats for the 5-minute window.""" - statsMin5: EnhancedWindowedPredictionMarketStats - """Stats for the 1-hour window.""" - statsHour1: EnhancedWindowedPredictionMarketStats - """Stats for the 4-hour window.""" - statsHour4: EnhancedWindowedPredictionMarketStats - """Stats for the 12-hour window.""" - statsHour12: EnhancedWindowedPredictionMarketStats - """Stats for the 1-day window.""" - statsDay1: EnhancedWindowedPredictionMarketStats - """Stats for the 1-week window.""" - statsWeek1: EnhancedWindowedPredictionMarketStats - """Trending scores across time windows.""" - trendingScores: DetailedPredictionStatsScores! - """Relevance scores across time windows.""" - relevanceScores: DetailedPredictionStatsScores! - """Competitive scores across time windows.""" - competitiveScores: DetailedPredictionStatsScores! - """All-time aggregate stats.""" - allTimeStats: PredictionMarketAllTimeStats! -} - -"""Input type of `detailedPredictionEventStats`.""" -input DetailedPredictionEventStatsInput { - """The ID of the prediction event.""" - eventId: String! - """The unix timestamp.""" - timestamp: Int - """The stat durations to include.""" - durations: [PredictionStatsDuration!] - """The number of stat buckets to return.""" - bucketCount: Int -} - -"""Core event stats that are always available.""" -type WindowedPredictionEventCoreStats { - """Volume during this window.""" - volume: CurrencyValuePair! - """Number of trades during this window.""" - trades: Int! -} - -"""Buy/sell volume breakdown for an event.""" -type WindowedPredictionEventBuySellStats { - """Buy volume.""" - buyVolume: CurrencyValuePair! - """Sell volume.""" - sellVolume: CurrencyValuePair! -} - -"""Unique trader count during the period.""" -type WindowedPredictionEventUniqueTraderStats { - """Number of unique traders.""" - uniqueTraders: Int! -} - -"""Event-level liquidity OHLC data.""" -type WindowedPredictionEventLiquidityStats { - """Liquidity OHLC values.""" - liquidity: CurrencyOHLC! -} - -"""Event-level open interest OHLC data.""" -type WindowedPredictionEventOpenInterestStats { - """Open interest OHLC values.""" - openInterest: CurrencyOHLC! -} - -"""Change percentages for a prediction event over a time window.""" -type WindowedPredictionEventChangeStats { - """Volume change percentage.""" - volumeChange: Float! - """Trades change percentage.""" - tradesChange: Float! - """Buy volume change percentage (optional).""" - buyVolumeChange: Float - """Sell volume change percentage (optional).""" - sellVolumeChange: Float - """Unique traders change percentage (optional).""" - uniqueTradersChange: Float - """Liquidity change percentage (optional).""" - liquidityChange: Float - """Open interest change percentage (optional).""" - openInterestChange: Float -} - -"""Trending, relevance, and competitive scores for an event window.""" -type PredictionEventWindowScores { - """The trending score.""" - trending: Float! - """The relevance score.""" - relevance: Float! - """The competitive score.""" - competitive: Float! -} - -"""Enhanced stats for a prediction event over a time window.""" -type EnhancedWindowedPredictionEventStats { - """Window start timestamp.""" - start: Int! - """Window end timestamp.""" - end: Int! - """Timestamp of last transaction in window.""" - lastTransactionAt: Int! - """Core stats (always present).""" - core: WindowedPredictionEventCoreStats! - """Buy/sell breakdown (optional).""" - buySell: WindowedPredictionEventBuySellStats - """Unique trader stats (optional).""" - uniqueTraders: WindowedPredictionEventUniqueTraderStats - """Liquidity stats (optional).""" - liquidity: WindowedPredictionEventLiquidityStats - """Open interest stats (optional).""" - openInterest: WindowedPredictionEventOpenInterestStats - """Change stats for this window.""" - statsChange: WindowedPredictionEventChangeStats! - """Scores for this window.""" - scores: PredictionEventWindowScores! - """All-time aggregate stats.""" - allTimeStats: WindowedPredictionAllTimeStats! -} - -"""All-time aggregate stats for a prediction event.""" -type PredictionEventAllTimeStats { - """Total volume.""" - volume: CurrencyValuePair! - """Venue-specific volume (optional).""" - venueVolume: CurrencyValuePair -} - -"""Response returned by `detailedPredictionEventStats`.""" -type DetailedPredictionEventStats { - """The ID of the prediction event.""" - eventId: String! - """The prediction event.""" - predictionEvent: PredictionEvent! - """The prediction markets.""" - predictionMarkets: [PredictionMarket!]! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Lifecycle metadata.""" - lifecycle: PredictionLifecycleStats! - """Stats for the 5-minute window.""" - statsMin5: EnhancedWindowedPredictionEventStats - """Stats for the 1-hour window.""" - statsHour1: EnhancedWindowedPredictionEventStats - """Stats for the 4-hour window.""" - statsHour4: EnhancedWindowedPredictionEventStats - """Stats for the 12-hour window.""" - statsHour12: EnhancedWindowedPredictionEventStats - """Stats for the 1-day window.""" - statsDay1: EnhancedWindowedPredictionEventStats - """Stats for the 1-week window.""" - statsWeek1: EnhancedWindowedPredictionEventStats - """Trending scores across time windows.""" - trendingScores: DetailedPredictionStatsScores! - """Relevance scores across time windows.""" - relevanceScores: DetailedPredictionStatsScores! - """All-time aggregate stats.""" - allTimeStats: PredictionEventAllTimeStats! -} - -"""The duration used to request windowed trader stats.""" -enum PredictionTraderStatsDuration { - day30 - week1 - day1 - hour12 - hour4 - hour1 -} - -"""Input type of `detailedPredictionTraderStats`.""" -input DetailedPredictionTraderStatsInput { - """The ID of the prediction trader.""" - traderId: String! - """The unix timestamp.""" - timestamp: Int - """The stat durations to include.""" - durations: [PredictionTraderStatsDuration!] -} - -"""A prediction trader with aggregate stats and metadata.""" -type PredictionTrader { - """The unique identifier.""" - id: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The venue trader id.""" - venueTraderId: String! - """The trader alias.""" - alias: String - """The primary address.""" - primaryAddress: String - """The linked addresses.""" - linkedAddresses: [String!] - """The profile image url.""" - profileImageUrl: String - """The profile url.""" - profileUrl: String - """The total trades count.""" - totalTradesCount: Int! - """The total volume usd.""" - totalVolumeUsd: String! - """The total volume ct.""" - totalVolumeCT: String! - """The timestamp of the first trade.""" - firstTradeTimestamp: Int! - """The timestamp of the last trade.""" - lastTradeTimestamp: Int! - """The biggest win usd.""" - biggestWinUsd: String! - """The biggest win ct.""" - biggestWinCT: String! - """The biggest loss usd.""" - biggestLossUsd: String! - """The biggest loss ct.""" - biggestLossCT: String! - """The all time profit usd.""" - allTimeProfitUsd: String! - """The all time profit ct.""" - allTimeProfitCT: String! - """The active markets count.""" - activeMarketsCount: Int! - """Labels applied to this entity.""" - labels: [String!] - """The creation timestamp.""" - createdAt: Int! - """The last update timestamp.""" - updatedAt: Int! -} - -"""Currency stats for a prediction trader over a time window.""" -type WindowedPredictionTraderCurrencyStats { - """Volume in USD.""" - volumeUsd: String! - """Buy volume in USD.""" - buyVolumeUsd: String! - """Sell volume in USD.""" - sellVolumeUsd: String! - """Volume in collateral token units.""" - volumeCT: String! - """Buy volume in collateral token units.""" - buyVolumeCT: String! - """Sell volume in collateral token units.""" - sellVolumeCT: String! - """The realized pnl usd.""" - realizedPnlUsd: String! - """The realized pnl ct.""" - realizedPnlCT: String! - """The realized profit percentage.""" - realizedProfitPercentage: Float! - """The average profit usd per trade.""" - averageProfitUsdPerTrade: String! - """The average profit ctper trade.""" - averageProfitCTPerTrade: String! - """The average swap amount usd.""" - averageSwapAmountUsd: String! - """The average swap amount ct.""" - averageSwapAmountCT: String! - """The held token acquisition cost usd.""" - heldTokenAcquisitionCostUsd: String! - """The held token acquisition cost ct.""" - heldTokenAcquisitionCostCT: String! - """The sold token acquisition cost usd.""" - soldTokenAcquisitionCostUsd: String! - """The sold token acquisition cost ct.""" - soldTokenAcquisitionCostCT: String! -} - -"""Non-currency stats for a prediction trader over a time window.""" -type WindowedPredictionTraderNonCurrencyStats { - """The number of trades.""" - trades: Int! - """The number of buys.""" - buys: Int! - """The number of sells.""" - sells: Int! - """The number of unique markets.""" - uniqueMarkets: Int! - """The wins.""" - wins: Int! - """The losses.""" - losses: Int! -} - -"""Change percentages for a prediction trader over a time window.""" -type WindowedPredictionTraderChangeStats { - """Volume change percentage.""" - volumeChange: Float! - """Buy volume.""" - buyVolumeChange: Float! - """Sell volume.""" - sellVolumeChange: Float! - """The percentage change.""" - realizedPnlChange: Float! - """Trades change percentage.""" - tradesChange: Float! - """The percentage change.""" - uniqueMarketsChange: Float! - """The percentage change.""" - winsChange: Float! - """The percentage change.""" - lossesChange: Float! -} - -"""All-time stats for a prediction trader in a windowed context.""" -type WindowedPredictionTraderAllTimeStats { - """The total volume usd.""" - totalVolumeUsd: String! - """The total volume ct.""" - totalVolumeCT: String! - """The total profit usd.""" - totalProfitUsd: String! - """The total profit ct.""" - totalProfitCT: String! -} - -"""Enhanced stats for a prediction trader over a time window, including scores.""" -type EnhancedWindowedPredictionTraderStats { - """The start.""" - start: Int! - """The end.""" - end: Int! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Currency stats for this window.""" - statsCurrency: WindowedPredictionTraderCurrencyStats! - """Non-currency stats for this window.""" - statsNonCurrency: WindowedPredictionTraderNonCurrencyStats! - """Change stats for this window.""" - statsChange: WindowedPredictionTraderChangeStats! -} - -"""Response returned by `detailedPredictionTraderStats`.""" -type DetailedPredictionTraderStats { - """The ID of the prediction trader.""" - traderId: String! - """The trader.""" - trader: PredictionTrader! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Stats for the 1-hour window.""" - statsHour1: EnhancedWindowedPredictionTraderStats - """Stats for the 4-hour window.""" - statsHour4: EnhancedWindowedPredictionTraderStats - """Stats for the 12-hour window.""" - statsHour12: EnhancedWindowedPredictionTraderStats - """Stats for the 1-day window.""" - statsDay1: EnhancedWindowedPredictionTraderStats - """Stats for the 1-week window.""" - statsWeek1: EnhancedWindowedPredictionTraderStats - """Stats for the Day30 window.""" - statsDay30: EnhancedWindowedPredictionTraderStats - """All-time aggregate stats.""" - allTimeStats: WindowedPredictionTraderAllTimeStats! -} - -"""The time resolution for prediction trader bar data.""" -enum PredictionTraderBarsResolution { - hour1 - hour4 - day1 - week1 -} - -"""Input type of `predictionTraderBars`.""" -input PredictionTraderBarsInput { - """The ID of the prediction trader.""" - traderId: String! - """The start timestamp (unix seconds).""" - from: Int! - """The end timestamp (unix seconds).""" - to: Int! - """The resolution details.""" - resolution: PredictionTraderBarsResolution! - """Number of bars to return counting back from `to`.""" - countback: Int - """Whether to omit bars with no activity.""" - removeEmptyBars: Boolean -} - -"""Bar data for a prediction trader at a single point in time.""" -type PredictionTraderBar { - """The unix timestamp for this bar.""" - t: Int! - """The number of trades.""" - trades: Int - """The number of buys.""" - buys: Int - """The number of sells.""" - sells: Int - """The number of unique markets.""" - uniqueMarkets: Int - """Volume in USD.""" - volumeUsd: String - """Buy volume in USD.""" - buyVolumeUsd: String - """Sell volume in USD.""" - sellVolumeUsd: String - """Volume in collateral token units.""" - volumeCT: String - """Buy volume in collateral token units.""" - buyVolumeCT: String - """Sell volume in collateral token units.""" - sellVolumeCT: String - """The wins.""" - wins: Int - """The losses.""" - losses: Int - """The realized pnl usd.""" - realizedPnlUsd: String - """The realized pnl ct.""" - realizedPnlCT: String - """The cumulative realized pnl usd.""" - cumulativeRealizedPnlUsd: String - """The cumulative realized pnl ct.""" - cumulativeRealizedPnlCT: String -} - -"""Response returned by `predictionTraderBars`.""" -type PredictionTraderBarsResponse { - """The ID of the prediction trader.""" - traderId: String! - """The trader.""" - trader: PredictionTrader - """The bar data.""" - bars: [PredictionTraderBar!]! -} - -"""Input type of `predictionTraderMarketsStats`.""" -input PredictionTraderMarketsStatsInput { - """The ID of the prediction trader.""" - traderId: String! - """Maximum number of results to return.""" - limit: Int - """Cursor for pagination.""" - cursor: String - """Associated market IDs.""" - marketIds: [String!] -} - -"""The PnL status of a trader position in a market.""" -enum PredictionTraderMarketPnlStatus { - WIN - LOSS - NEUTRAL -} - -"""Per-outcome stats for a trader within a specific market.""" -type PredictionTraderOutcomeStats { - """The ID of the prediction outcome.""" - outcomeId: String! - """The shares held. This number may not be the same as the actual shares held if the trader has not actually redeemed the shares, but we've already calculated the pnl.""" - sharesHeld: String! - """The actual shares held. If the trader has not actually redeemed the shares, but we've already calculated the pnl, this will still track their actual shares held.""" - actualSharesHeld: String! - """The avg entry price usd.""" - avgEntryPriceUsd: String! - """The avg entry price ct.""" - avgEntryPriceCT: String! - """The cost basis usd.""" - costBasisUsd: String! - """The cost basis ct.""" - costBasisCT: String! - """The number of buys.""" - buys: Int! - """The number of sells.""" - sells: Int! - """Buy volume in USD.""" - buyVolumeUsd: String! - """Sell volume in USD.""" - sellVolumeUsd: String! - """Buy volume in collateral token units.""" - buyVolumeCT: String! - """Sell volume in collateral token units.""" - sellVolumeCT: String! - """Buy volume in shares.""" - buyVolumeShares: String! - """Sell volume in shares.""" - sellVolumeShares: String! - """The realized pnl usd.""" - realizedPnlUsd: String! - """The realized pnl ct.""" - realizedPnlCT: String! - """The pnl status.""" - pnlStatus: PredictionTraderMarketPnlStatus! - """The timestamp of the first trade.""" - firstTradeTimestamp: Int! - """The timestamp of the last trade.""" - lastTradeTimestamp: Int! -} - -"""Per-market stats for a trader.""" -type PredictionTraderMarketStats { - """The ID of the prediction trader.""" - traderId: String! - """The ID of the prediction market.""" - marketId: String! - """The prediction market.""" - predictionMarket: PredictionMarket - """Whether the trader has an open position. Means they have actual shares held in the market (either outcome).""" - hasOpenPosition: Boolean! - """Outcome 0 stats.""" - outcome0Stats: PredictionTraderOutcomeStats! - """Outcome 1 stats.""" - outcome1Stats: PredictionTraderOutcomeStats! - """The creation timestamp.""" - createdAt: Int! - """The last update timestamp.""" - updatedAt: Int! -} - -"""Response returned by `predictionTraderMarketsStats`.""" -type PredictionTraderMarketsStatsConnection { - """The list of items.""" - items: [PredictionTraderMarketStats!]! - """Cursor for pagination.""" - cursor: String -} - -"""The prediction protocol or venue.""" -enum PredictionProtocol { - POLYMARKET - KALSHI -} - -"""The lifecycle status of a prediction event.""" -enum PredictionEventStatus { - OPEN - SUSPENDED - RESOLVED - CANCELLED - PENDING -} - -"""Resolution details for a settled prediction market or event.""" -type PredictionResolution { - """The resolution result.""" - result: String - """The resolution source.""" - source: String -} - -"""On-chain token used as collateral for a prediction market.""" -type PredictionCollateralToken { - """The token contract address.""" - tokenAddress: String! - """The network ID.""" - networkId: Int! - """The token or currency symbol.""" - symbol: String -} - -"""Fiat currency used as collateral for a prediction market.""" -type PredictionCollateralFiat { - """The token or currency symbol.""" - symbol: String! -} - -"""Collateral backing a prediction market, either on-chain token or fiat.""" -union PredictionCollateral = PredictionCollateralToken | PredictionCollateralFiat - -"""A prediction event containing one or more markets.""" -type PredictionEvent { - """The unique identifier.""" - id: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The venue-specific event ID.""" - venueEventId: String! - """The venue-specific series ID.""" - venueSeriesId: String - """The current status.""" - status: PredictionEventStatus! - """The question or title.""" - question: String! - """The external URL.""" - url: String! - """Primary rules text.""" - rulesPrimary: String! - """Secondary rules text.""" - rulesSecondary: String - """Tags associated with this entity.""" - tags: [String!]! - """The timestamp when this entity opens.""" - opensAt: Int! - """The timestamp when this entity closes.""" - closesAt: Int - """The expected resolution timestamp.""" - resolvesAt: Int - """The actual resolution timestamp.""" - resolvedAt: Int - """The resolution details.""" - resolution: PredictionResolution - """URL of the large image.""" - imageLargeUrl: String - """URL of the thumbnail image.""" - imageThumbUrl: String - """URL of the small image.""" - imageSmallUrl: String - """The creation timestamp.""" - createdAt: Int! - """The last update timestamp.""" - updatedAt: Int! - """The network ID.""" - networkId: Int - """Associated market IDs.""" - marketIds: [String!] - """Categories associated with this entity.""" - categories: [PredictionCategory!] - """Per-domain structured enrichment (sports league/teams/start times today; new domains added over time). Null when no domain-specific signal extracted.""" - enrichedMetadata: PredictionEventEnrichedMetadata -} - -"""Input type of `predictionMarkets`.""" -input PredictionMarketsInput { - """Associated market IDs.""" - marketIds: [String!]! -} - -"""Input type of `predictionTraders`.""" -input PredictionTradersInput { - """The trader ids.""" - traderIds: [String!]! -} - -"""A prediction market with outcomes, pricing, and metadata.""" -type PredictionMarket { - """The unique identifier.""" - id: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The venue-specific market ID.""" - venueMarketId: String! - """The venue-specific market slug.""" - venueMarketSlug: String - """The ID of the prediction event.""" - eventId: String - """The venue-specific event ID.""" - venueEventId: String - """The question or title.""" - question: String - """The display label.""" - label: String - """A clean, UI-ready label derived from `label`/`question` with the parent event name stripped (and Kalshi `Yes:`/`No:` prefixes unwrapped). Falls back to `question` when `label` is missing or `unknown`.""" - suggestedLabel: String - """The parent event label.""" - eventLabel: String - """Primary rules text.""" - rules: String - """Secondary rules text.""" - rules2: String - """Venue-specific outcome IDs.""" - venueOutcomeIds: [String!]! - """Internal outcome IDs.""" - outcomeIds: [String!]! - """Labels for each outcome.""" - outcomeLabels: [String!] - """The resolution details.""" - resolution: PredictionResolution - """URL of the large image.""" - imageLargeUrl: String - """URL of the thumbnail image.""" - imageThumbUrl: String - """URL of the small image.""" - imageSmallUrl: String - """The creation timestamp.""" - createdAt: Int - """The last update timestamp.""" - updatedAt: Int - """The timestamp when this entity opens.""" - opensAt: Int - """The timestamp when this entity closes.""" - closesAt: Int - """The expected resolution timestamp.""" - resolvesAt: Int - """The actual resolution timestamp.""" - resolvedAt: Int - """The last observation timestamp.""" - observedAt: Int! - """The network ID.""" - networkId: Int - """The exchange contract address.""" - exchangeAddress: String - """Categories associated with this entity.""" - categories: [PredictionCategory!] - """The ID of the winning outcome.""" - winningOutcomeId: String - """Per-domain structured enrichment (sports market type/teams/start times today). Null when no domain-specific signal extracted.""" - enrichedMetadata: PredictionMarketEnrichedMetadata -} - -"""The time resolution for prediction market bar data.""" -enum PredictionMarketBarsResolution { - min1 - min5 - min15 - min30 - hour1 - hour4 - hour12 - day1 - week1 -} - -"""Input type of `predictionMarketBars`.""" -input PredictionMarketBarsInput { - """The ID of the prediction market.""" - marketId: String! - """The start timestamp (unix seconds).""" - from: Int! - """The end timestamp (unix seconds).""" - to: Int! - """The resolution details.""" - resolution: PredictionMarketBarsResolution! - """Number of bars to return counting back from `to`.""" - countback: Int - """Whether to omit bars with no activity.""" - removeEmptyBars: Boolean -} - -"""OHLC price data for a prediction market bar.""" -type PredictionMarketBarOhlc { - """The open value.""" - o: String! - """The high value.""" - h: String! - """The low value.""" - l: String! - """The close value.""" - c: String! -} - -"""Bar data for a single outcome within a prediction market.""" -type PredictionOutcomeBar { - """The venue-specific outcome ID.""" - venueOutcomeId: String! - """The number of trades.""" - trades: Int - """The number of buys.""" - buys: Int - """The number of sells.""" - sells: Int - """Volume in shares.""" - volumeShares: String - """Buy volume in shares.""" - buyVolumeShares: String - """Sell volume in shares.""" - sellVolumeShares: String - """Volume in USD.""" - volumeUsd: String - """Buy volume in USD.""" - buyVolumeUsd: String - """Sell volume in USD.""" - sellVolumeUsd: String - """Volume in collateral token units.""" - volumeCollateralToken: String - """Buy volume in collateral token units.""" - buyVolumeCollateralToken: String - """Sell volume in collateral token units.""" - sellVolumeCollateralToken: String - """The price usd.""" - priceUsd: PredictionMarketBarOhlc - """The price collateral token.""" - priceCollateralToken: PredictionMarketBarOhlc - """Liquidity in USD.""" - liquidityUsd: PredictionMarketBarOhlc - """The liquidity collateral token.""" - liquidityCollateralToken: PredictionMarketBarOhlc - """The bid usd.""" - bidUsd: PredictionMarketBarOhlc - """The bid collateral token.""" - bidCollateralToken: PredictionMarketBarOhlc - """The ask usd.""" - askUsd: PredictionMarketBarOhlc - """The ask collateral token.""" - askCollateralToken: PredictionMarketBarOhlc - """The two percent bid depth usd.""" - twoPercentBidDepthUsd: PredictionMarketBarOhlc - """The two percent bid depth collateral token.""" - twoPercentBidDepthCollateralToken: PredictionMarketBarOhlc - """The two percent ask depth usd.""" - twoPercentAskDepthUsd: PredictionMarketBarOhlc - """The two percent ask depth collateral token.""" - twoPercentAskDepthCollateralToken: PredictionMarketBarOhlc -} - -"""Bar data for a prediction market at a single point in time.""" -type PredictionMarketBar { - """The unix timestamp for this bar.""" - t: Int! - """Volume in USD.""" - volumeUsd: String - """Volume in collateral token units.""" - volumeCollateralToken: String - """Volume in shares.""" - volumeShares: String - """The number of unique traders.""" - uniqueTraders: Int - """The last event timestamp.""" - lastEventTimestamp: Int - """The number of trades.""" - trades: Int - """The all time volume usd (from on-chain trades).""" - allTimeVolumeUsd: String - """The all time venue volume usd (reported by venue).""" - allTimeVenueVolumeUsd: String - """The all time volume collateral token (from on-chain trades).""" - allTimeVolumeCollateralToken: String - """The all time venue volume collateral token (reported by venue).""" - allTimeVenueVolumeCollateralToken: String - """Open interest in USD.""" - openInterestUsd: PredictionMarketBarOhlc - """Outcome 0 data.""" - outcome0: PredictionOutcomeBar - """Outcome 1 data.""" - outcome1: PredictionOutcomeBar -} - -"""Response returned by `predictionMarketBars`.""" -type PredictionMarketBarsResponse { - """The ID of the prediction market.""" - marketId: String! - """The prediction market.""" - predictionMarket: PredictionMarket! - """The prediction event.""" - predictionEvent: PredictionEvent! - """The bar data.""" - bars: [PredictionMarketBar!]! -} - -"""Input type of `predictionEventTopMarketsBars`.""" -input PredictionEventTopMarketsBarsInput { - """The event ID to fetch top markets for""" - eventId: String! - """Unix timestamp (seconds) for the start of the range""" - from: Int! - """Unix timestamp (seconds) for the end of the range""" - to: Int! - """Resolution for the bars (e.g., min1, min5, hour1, day1)""" - resolution: PredictionMarketBarsResolution! - """Number of bars to fetch backwards from 'to' (alternative to 'from')""" - countback: Int - """Maximum number of markets to return (default 5, max 10)""" - limit: Int - """Use pre-computed leaderboard ranking (overrides rankBy options when true)""" - useLeaderboard: Boolean - """Market-level attribute to rank by (use this OR rankByOutcome + rankByOutcomeAttribute)""" - rankBy: PredictionMarketRankingAttribute - """Which outcome to rank by (use with rankByOutcomeAttribute)""" - rankByOutcome: PredictionOutcomeIndex - """Outcome-level attribute to rank by (requires rankByOutcome)""" - rankByOutcomeAttribute: PredictionOutcomeRankingAttribute - """Direction to rank (DESC = highest first)""" - rankDirection: RankingDirection - """Whether to remove empty bars from the response""" - removeEmptyBars: Boolean - """Explicit list of market IDs to fetch (overrides ranking if provided)""" - marketIds: [String!] -} - -"""Response returned by `predictionEventTopMarketsBars`.""" -type PredictionEventTopMarketsBarsResponse { - """The ID of the prediction event.""" - eventId: String! - """The parent prediction event""" - predictionEvent: PredictionEvent - """Array of market bars (max 10)""" - marketBars: [PredictionMarketBarsResponse!]! -} - -"""The time resolution for prediction event bar data.""" -enum PredictionEventBarsResolution { - min1 - min5 - min15 - min30 - hour1 - hour4 - hour12 - day1 - week1 -} - -"""Input type of `predictionEventBars`.""" -input PredictionEventBarsInput { - """The ID of the prediction event.""" - eventId: String! - """The start timestamp (unix seconds).""" - from: Int! - """The end timestamp (unix seconds).""" - to: Int! - """The resolution details.""" - resolution: PredictionEventBarsResolution! - """Number of bars to return counting back from `to`.""" - countback: Int - """Whether to omit bars with no activity.""" - removeEmptyBars: Boolean -} - -"""OHLC price data for a prediction event bar.""" -type PredictionEventBarOhlc { - """The open value.""" - o: String! - """The high value.""" - h: String! - """The low value.""" - l: String! - """The close value.""" - c: String! -} - -"""Bar data for a prediction event at a single point in time.""" -type PredictionEventBar { - """The unix timestamp for this bar.""" - t: Int! - """Volume in USD.""" - volumeUsd: String! - """Buy volume in USD. Null if protocol doesn't provide directional data.""" - buyVolumeUsd: String - """Sell volume in USD. Null if protocol doesn't provide directional data.""" - sellVolumeUsd: String - """The total volume usd.""" - totalVolumeUsd: String! - """The venue volume usd. Null if protocol doesn't provide venue volume.""" - venueVolumeUsd: String - """Volume in collateral token units.""" - volumeCollateralToken: String - """Buy volume in collateral token units.""" - buyVolumeCollateralToken: String - """Sell volume in collateral token units.""" - sellVolumeCollateralToken: String - """Total volume in collateral token (nullable for old aggregates)""" - totalVolumeCollateralToken: String - """Venue volume in collateral token (nullable for old aggregates)""" - venueVolumeCollateralToken: String - """The number of trades.""" - trades: Int! - """The number of unique traders. Null if protocol doesn't track unique traders.""" - uniqueTraders: Int - """The last event timestamp.""" - lastEventTimestamp: Int! - """Liquidity in USD. Null if protocol doesn't provide liquidity data.""" - liquidityUsd: PredictionEventBarOhlc - """Liquidity OHLC in collateral token (nullable for old aggregates)""" - liquidityCollateralToken: PredictionEventBarOhlc - """Open interest in USD. Null if protocol doesn't provide open interest data.""" - openInterestUsd: PredictionEventBarOhlc - """Open interest OHLC in collateral token (nullable for old aggregates)""" - openInterestCollateralToken: PredictionEventBarOhlc -} - -"""Response returned by `predictionEventBars`.""" -type PredictionEventBarsResponse { - """The ID of the prediction event.""" - eventId: String! - """The prediction event.""" - predictionEvent: PredictionEvent - """The prediction markets.""" - predictionMarkets: [PredictionMarket!]! - """The bar data.""" - bars: [PredictionEventBar!]! -} - -"""The type of a prediction trade.""" -enum PredictionTradeType { - TRADE - BUY - SELL - BUY_COUNTERPARTY - SELL_COUNTERPARTY - PAYOUT_REDEMPTION @deprecated(reason: "PAYOUT_REDEMPTION is deprecated and will be removed in the future. Use POSITION_REDEEMED instead.") - POSITION_REDEEMED -} - -"""Input type of `predictionTrades`.""" -input PredictionTradesInput { - """The ID of the prediction market.""" - marketId: String - """The ID of the prediction event.""" - eventId: String - """The ID of the prediction trader.""" - traderId: String - """Maximum number of results to return.""" - limit: Int - """Cursor for pagination.""" - cursor: String -} - -"""A single prediction trade.""" -type PredictionTrade { - """The ID of the prediction market.""" - marketId: String! - """The sort key.""" - sortKey: String! - """The ID of the prediction outcome.""" - outcomeId: String! - """The label of the outcome.""" - outcomeLabel: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The type of trade.""" - tradeType: PredictionTradeType! - """The maker.""" - maker: String - """The unix timestamp.""" - timestamp: Int! - """The outcome index.""" - outcomeIndex: Int - """The price usd.""" - priceUsd: String - """The price collateral.""" - priceCollateral: String - """The token amount.""" - amount: String - """The amount collateral.""" - amountCollateral: String - """The amount usd.""" - amountUsd: String - """The transaction hash.""" - transactionHash: String - """The block number.""" - blockNumber: Int - """The network ID.""" - networkId: Int - """The exchange contract address.""" - exchangeAddress: String - """The exchange contract the trade executed on. Differs from `exchangeAddress` when a Polymarket market migrated to a newer exchange.""" - exchangeTradedOnAddress: String - """The contract address of the collateral token the trade settled in.""" - collateralTokenAddress: String - """The transaction id.""" - transactionId: String - """The prediction market.""" - predictionMarket: PredictionMarket - """The ID of the prediction trader.""" - traderId: String -} - -"""A paginated list of prediction trades.""" -type PredictionTradesConnection { - """The list of items.""" - items: [PredictionTrade!]! - """Cursor for pagination.""" - cursor: String -} - -"""Input type of `predictionTokenHolders`.""" -input PredictionTokenHoldersInput { - """The ID of the prediction market.""" - marketId: String! - """The token ID.""" - tokenId: String! - """Maximum number of results to return.""" - limit: Int - """Cursor for pagination.""" - cursor: String -} - -"""A paginated list of prediction token holders.""" -type PredictionTokenHoldersConnection { - """The list of items.""" - items: [PredictionTokenBalance!]! - """The total number of items.""" - total: Int! - """Cursor for pagination.""" - cursor: String -} - -"""A wallet's token balance for a prediction market.""" -type PredictionTokenBalance { - """The wallet address.""" - walletAddress: String! - """The token amount.""" - amount: String! - """The associated prediction trader.""" - predictionTrader: PredictionTrader -} - -"""Input for `predictionTraderHoldings` query.""" -input PredictionTraderHoldingsInput { - """The trader ID (format: {walletAddress}:{protocol}, e.g. 0x123...abc:Polymarket)""" - traderId: String! - """Maximum number of results to return.""" - limit: Int - """Cursor for pagination.""" - cursor: String -} - -"""A trader's token holding for a prediction outcome.""" -type PredictionTraderHolding { - """The token ID (venue outcome ID).""" - tokenId: String! - """The trader ID.""" - traderId: String! - """The venue trader ID (wallet address).""" - venueTraderId: String! - """The token balance amount.""" - amount: String! - """The prediction market this holding belongs to.""" - market: PredictionMarket - """The outcome index within the market (0 or 1).""" - outcomeIndex: Int -} - -"""A paginated list of trader holdings.""" -type PredictionTraderHoldingsConnection { - """The list of holdings.""" - items: [PredictionTraderHolding!]! - """Cursor for pagination.""" - cursor: String -} - -"""Filters for prediction events.""" -input PredictionEventFilters { - """The prediction protocol.""" - protocol: [PredictionProtocol!] - """The current status.""" - status: [PredictionEventStatus!] - """Categories associated with this entity. Mutually exclusive with excludeCategories and hasCategories.""" - categories: [String!] - """Exclude events with these categories. Mutually exclusive with categories and hasCategories.""" - excludeCategories: [String!] - """Filter by whether the event has any categories. Mutually exclusive with categories and excludeCategories.""" - hasCategories: Boolean - """The resolution source.""" - resolutionSource: [String!] - """The venue-specific series ID.""" - venueSeriesId: [String!] - """The unix timestamp.""" - timestamp: NumberFilter - """The timestamp of the last transaction.""" - lastTransactionAt: NumberFilter - """The creation timestamp.""" - createdAt: NumberFilter - """The age.""" - age: NumberFilter - """The expected lifespan.""" - expectedLifespan: NumberFilter - """The timestamp when this entity opens.""" - opensAt: NumberFilter - """The timestamp when this entity closes.""" - closesAt: NumberFilter - """The expected resolution timestamp.""" - resolvesAt: NumberFilter - """The actual resolution timestamp.""" - resolvedAt: NumberFilter - """Data for marketCount.""" - marketCount: NumberFilter - """The trending score.""" - trendingScore5m: NumberFilter - """The trending score.""" - trendingScore1h: NumberFilter - """The trending score.""" - trendingScore4h: NumberFilter - """The trending score.""" - trendingScore12h: NumberFilter - """The trending score.""" - trendingScore24h: NumberFilter - """The trending score.""" - trendingScore1w: NumberFilter - """The relevance score.""" - relevanceScore5m: NumberFilter - """The relevance score.""" - relevanceScore1h: NumberFilter - """The relevance score.""" - relevanceScore4h: NumberFilter - """The relevance score.""" - relevanceScore12h: NumberFilter - """The relevance score.""" - relevanceScore24h: NumberFilter - """The relevance score.""" - relevanceScore1w: NumberFilter - """Liquidity in USD.""" - liquidityUsd: NumberFilter - """Liquidity in collateral token units.""" - liquidityCT: NumberFilter - """The percentage change.""" - liquidityChange5m: NumberFilter - """The percentage change.""" - liquidityChange1h: NumberFilter - """The percentage change.""" - liquidityChange4h: NumberFilter - """The percentage change.""" - liquidityChange12h: NumberFilter - """The percentage change.""" - liquidityChange24h: NumberFilter - """The percentage change.""" - liquidityChange1w: NumberFilter - """Open interest in USD.""" - openInterestUsd: NumberFilter - """Open interest in collateral token units.""" - openInterestCT: NumberFilter - """The percentage change.""" - openInterestChange5m: NumberFilter - """The percentage change.""" - openInterestChange1h: NumberFilter - """The percentage change.""" - openInterestChange4h: NumberFilter - """The percentage change.""" - openInterestChange12h: NumberFilter - """The percentage change.""" - openInterestChange24h: NumberFilter - """The percentage change.""" - openInterestChange1w: NumberFilter - """Volume in USD.""" - volumeUsd5m: NumberFilter - """Volume in USD.""" - volumeUsd1h: NumberFilter - """Volume in USD.""" - volumeUsd4h: NumberFilter - """Volume in USD.""" - volumeUsd12h: NumberFilter - """Volume in USD.""" - volumeUsd24h: NumberFilter - """Volume in USD.""" - volumeUsd1w: NumberFilter - """Volume in USD.""" - volumeUsdAll: NumberFilter - """Volume in collateral token units.""" - volumeCTAll: NumberFilter - """The venue volume usd.""" - venueVolumeUsd: NumberFilter - """The venue volume ct.""" - venueVolumeCT: NumberFilter - """The percentage change.""" - volumeChange5m: NumberFilter - """The percentage change.""" - volumeChange1h: NumberFilter - """The percentage change.""" - volumeChange4h: NumberFilter - """The percentage change.""" - volumeChange12h: NumberFilter - """The percentage change.""" - volumeChange24h: NumberFilter - """The percentage change.""" - volumeChange1w: NumberFilter - """The trades5m.""" - trades5m: NumberFilter - """The trades1h.""" - trades1h: NumberFilter - """The trades4h.""" - trades4h: NumberFilter - """The trades12h.""" - trades12h: NumberFilter - """The trades24h.""" - trades24h: NumberFilter - """The trades1w.""" - trades1w: NumberFilter - """The percentage change.""" - tradesChange5m: NumberFilter - """The percentage change.""" - tradesChange1h: NumberFilter - """The percentage change.""" - tradesChange4h: NumberFilter - """The percentage change.""" - tradesChange12h: NumberFilter - """The percentage change.""" - tradesChange24h: NumberFilter - """The percentage change.""" - tradesChange1w: NumberFilter - """The unique traders5m.""" - uniqueTraders5m: NumberFilter - """The unique traders1h.""" - uniqueTraders1h: NumberFilter - """The unique traders4h.""" - uniqueTraders4h: NumberFilter - """The unique traders12h.""" - uniqueTraders12h: NumberFilter - """The unique traders24h.""" - uniqueTraders24h: NumberFilter - """The unique traders1w.""" - uniqueTraders1w: NumberFilter - """The percentage change.""" - uniqueTradersChange5m: NumberFilter - """The percentage change.""" - uniqueTradersChange1h: NumberFilter - """The percentage change.""" - uniqueTradersChange4h: NumberFilter - """The percentage change.""" - uniqueTradersChange12h: NumberFilter - """The percentage change.""" - uniqueTradersChange24h: NumberFilter - """The percentage change.""" - uniqueTradersChange1w: NumberFilter -} - -"""The attribute used to rank prediction events.""" -enum PredictionEventRankingAttribute { - timestamp - lastTransactionAt - createdAt - age - expectedLifespan - opensAt - closesAt - resolvesAt - resolvedAt - marketCount - trendingScore5m - trendingScore1h - trendingScore4h - trendingScore12h - trendingScore24h - trendingScore1w - relevanceScore5m - relevanceScore1h - relevanceScore4h - relevanceScore12h - relevanceScore24h - relevanceScore1w - liquidityUsd - liquidityCT - liquidityChange5m - liquidityChange1h - liquidityChange4h - liquidityChange12h - liquidityChange24h - liquidityChange1w - openInterestUsd - openInterestCT - openInterestChange5m - openInterestChange1h - openInterestChange4h - openInterestChange12h - openInterestChange24h - openInterestChange1w - volumeUsd5m - volumeUsd1h - volumeUsd4h - volumeUsd12h - volumeUsd24h - volumeUsd1w - volumeUsdAll - volumeCTAll - venueVolumeUsd - venueVolumeCT - volumeChange5m - volumeChange1h - volumeChange4h - volumeChange12h - volumeChange24h - volumeChange1w - trades5m - trades1h - trades4h - trades12h - trades24h - trades1w - tradesChange5m - tradesChange1h - tradesChange4h - tradesChange12h - tradesChange24h - tradesChange1w - uniqueTraders5m - uniqueTraders1h - uniqueTraders4h - uniqueTraders12h - uniqueTraders24h - uniqueTraders1w - uniqueTradersChange5m - uniqueTradersChange1h - uniqueTradersChange4h - uniqueTradersChange12h - uniqueTradersChange24h - uniqueTradersChange1w - """Score from phrase matching (for search queries)""" - phraseScore -} - -"""A ranking to apply when sorting prediction events.""" -input PredictionEventRanking { - """The attribute to rank by.""" - attribute: PredictionEventRankingAttribute! - """The sort direction.""" - direction: RankingDirection -} - -"""Summary market data within a prediction event filter result.""" -type PredictionEventFilterResultMarket { - """The unique identifier.""" - id: String! - """The display label.""" - label: String -} - -"""The number of a prediction event's markets in each market status.""" -type PredictionEventMarketCounts { - """Markets accepting trades.""" - open: Int! - """Markets with trading temporarily halted. Not derived today, so always 0.""" - suspended: Int! - """Markets whose outcome is determined or that are closed.""" - resolved: Int! - """Markets that were invalidated. Not derived today, so always 0.""" - cancelled: Int! - """Markets that have not opened yet.""" - pending: Int! -} - -"""Metadata for a prediction event returned in search results.""" -type SearchPredictionEvent { - """The unique identifier.""" - id: String! - """The venue-specific event ID.""" - venueEventId: String! - """The venue-specific series ID.""" - venueSeriesId: String - """The exchange contract address.""" - exchangeAddress: String - """The network ID.""" - networkId: Int - """The prediction protocol.""" - protocol: PredictionProtocol! - """The current status.""" - status: PredictionEventStatus! - """The URL slug.""" - slug: String! - """The question or title.""" - question: String! - """The description.""" - description: String - """Tags associated with this entity.""" - tags: [String!]! - """URL of the thumbnail image.""" - imageThumbUrl: String - """The venue url.""" - venueUrl: String! - """The creation timestamp.""" - createdAt: Int! - """The timestamp when this entity opens.""" - opensAt: Int! - """The timestamp when this entity closes.""" - closesAt: Int - """The expected resolution timestamp.""" - resolvesAt: Int - """The actual resolution timestamp.""" - resolvedAt: Int -} - -"""A prediction event matching a set of filter parameters.""" -type PredictionEventFilterResult { - """The unique identifier.""" - id: String! - """The unix timestamp.""" - timestamp: Int! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Simplified event data from search index. Use predictionEvent for full event details.""" - event: SearchPredictionEvent! - """Full prediction event loaded from database. May be null if event no longer exists.""" - predictionEvent: PredictionEvent - """The prediction protocol.""" - protocol: PredictionProtocol! - """The current status.""" - status: PredictionEventStatus! - """The creation timestamp.""" - createdAt: Int! - """The age.""" - age: Int - """The expected lifespan.""" - expectedLifespan: Int - """The timestamp when this entity opens.""" - opensAt: Int! - """The timestamp when this entity closes.""" - closesAt: Int - """The expected resolution timestamp.""" - resolvesAt: Int - """The actual resolution timestamp.""" - resolvedAt: Int - """The top markets for this event.""" - topMarkets: [PredictionEventTopMarket!]! - """Data for markets.""" - markets: [PredictionEventFilterResultMarket!]! - """Data for marketCount.""" - marketCount: Int! - """The number of the event's markets in each status; the counts add up to marketCount. Null for events not reindexed since this field was added.""" - marketCounts: PredictionEventMarketCounts - """Categories associated with this entity.""" - categories: [String!]! - """The resolution source.""" - resolutionSource: String - """The related event ids.""" - relatedEventIds: [String!]! - """The trending score.""" - trendingScore5m: Float - """The trending score.""" - trendingScore1h: Float - """The trending score.""" - trendingScore4h: Float - """The trending score.""" - trendingScore12h: Float - """The trending score.""" - trendingScore24h: Float - """The trending score.""" - trendingScore1w: Float - """The relevance score.""" - relevanceScore5m: Float - """The relevance score.""" - relevanceScore1h: Float - """The relevance score.""" - relevanceScore4h: Float - """The relevance score.""" - relevanceScore12h: Float - """The relevance score.""" - relevanceScore24h: Float - """The relevance score.""" - relevanceScore1w: Float - """Liquidity in USD.""" - liquidityUsd: String - """Liquidity in collateral token units.""" - liquidityCT: String - """The percentage change.""" - liquidityChange5m: Float - """The percentage change.""" - liquidityChange1h: Float - """The percentage change.""" - liquidityChange4h: Float - """The percentage change.""" - liquidityChange12h: Float - """The percentage change.""" - liquidityChange24h: Float - """The percentage change.""" - liquidityChange1w: Float - """Open interest in USD.""" - openInterestUsd: String - """Open interest in collateral token units.""" - openInterestCT: String - """The percentage change.""" - openInterestChange5m: Float - """The percentage change.""" - openInterestChange1h: Float - """The percentage change.""" - openInterestChange4h: Float - """The percentage change.""" - openInterestChange12h: Float - """The percentage change.""" - openInterestChange24h: Float - """The percentage change.""" - openInterestChange1w: Float - """Volume in USD.""" - volumeUsd5m: String - """Volume in USD.""" - volumeUsd1h: String - """Volume in USD.""" - volumeUsd4h: String - """Volume in USD.""" - volumeUsd12h: String - """Volume in USD.""" - volumeUsd24h: String - """Volume in USD.""" - volumeUsd1w: String - """Volume in USD.""" - volumeUsdAll: String - """Volume in collateral token units.""" - volumeCTAll: String - """The venue volume usd.""" - venueVolumeUsd: String - """The venue volume ct.""" - venueVolumeCT: String - """The percentage change.""" - volumeChange5m: Float - """The percentage change.""" - volumeChange1h: Float - """The percentage change.""" - volumeChange4h: Float - """The percentage change.""" - volumeChange12h: Float - """The percentage change.""" - volumeChange24h: Float - """The percentage change.""" - volumeChange1w: Float - """The trades5m.""" - trades5m: Int - """The trades1h.""" - trades1h: Int - """The trades4h.""" - trades4h: Int - """The trades12h.""" - trades12h: Int - """The trades24h.""" - trades24h: Int - """The trades1w.""" - trades1w: Int - """The percentage change.""" - tradesChange5m: Float - """The percentage change.""" - tradesChange1h: Float - """The percentage change.""" - tradesChange4h: Float - """The percentage change.""" - tradesChange12h: Float - """The percentage change.""" - tradesChange24h: Float - """The percentage change.""" - tradesChange1w: Float - """The unique traders5m.""" - uniqueTraders5m: Int - """The unique traders1h.""" - uniqueTraders1h: Int - """The unique traders4h.""" - uniqueTraders4h: Int - """The unique traders12h.""" - uniqueTraders12h: Int - """The unique traders24h.""" - uniqueTraders24h: Int - """The unique traders1w.""" - uniqueTraders1w: Int - """The percentage change.""" - uniqueTradersChange5m: Float - """The percentage change.""" - uniqueTradersChange1h: Float - """The percentage change.""" - uniqueTradersChange4h: Float - """The percentage change.""" - uniqueTradersChange12h: Float - """The percentage change.""" - uniqueTradersChange24h: Float - """The percentage change.""" - uniqueTradersChange1w: Float - """The event shape.""" - eventShape: PredictionEventShape -} - -"""A top market for a prediction event.""" -type PredictionEventTopMarket { - """The unique identifier of the market.""" - marketId: String! - """The label.""" - label: String! - """The label of the outcome 0.""" - outcome0Label: String! - """The label of the outcome 1.""" - outcome1Label: String! - """The bid CT of the outcome 0.""" - outcome0BidCT: String! - """The bid USD of the outcome 0.""" - outcome0BidUSD: String! - """The ask CT of the outcome 0.""" - outcome0AskCT: String! - """The ask USD of the outcome 0.""" - outcome0AskUSD: String! - """The bid CT of the outcome 1.""" - outcome1BidCT: String! - """The bid USD of the outcome 1.""" - outcome1BidUSD: String! - """The ask CT of the outcome 1.""" - outcome1AskCT: String! - """The ask USD of the outcome 1.""" - outcome1AskUSD: String! - """The volume CT of the market in the last 1 day.""" - volumeCT1d: String! - """The volume USD of the market in the last 1 day.""" - volumeUSD1d: String! - """The volume CT of the market in the last 1 week.""" - volumeCT1w: String! - """The volume USD of the market in the last 1 week.""" - volumeUSD1w: String! - """The volume CT of the market in all time.""" - volumeCTAll: String! - """The volume USD of the market in all time.""" - volumeUSDAll: String! - """thumbUrl of the market.""" - thumbUrl: String - """The role of the market.""" - role: PredictionMarketRole - """The suggested label of the market.""" - suggestedLabel: String - """ISO 3166-1 alpha-2 country code when the row is a country entrant (Eurovision, World Cup, Olympics, etc.). Null otherwise. Mirrors `classification.entrant.countryCode` from the per-market classification metadata, hoisted onto the top-market row so card clients don't have to issue a follow-up query just to render a flag.""" - countryCode: String -} - -"""Response returned by `filterPredictionEvents`.""" -type PredictionEventFilterConnection { - """Total number of matching results.""" - count: Int! - """The current page number.""" - page: Int! - """The list of results.""" - results: [PredictionEventFilterResult!]! -} - -"""Filters for prediction markets.""" -input PredictionMarketFilters { - """The prediction protocol.""" - protocol: [PredictionProtocol!] - """The current status.""" - status: [PredictionEventStatus!] - """Categories associated with this entity. Mutually exclusive with excludeCategories and hasCategories.""" - categories: [String!] - """Exclude markets with these categories. Mutually exclusive with categories and hasCategories.""" - excludeCategories: [String!] - """Filter by whether the market has any categories. Mutually exclusive with categories and excludeCategories.""" - hasCategories: Boolean - """The resolution source.""" - resolutionSource: [String!] - """The unix timestamp.""" - timestamp: NumberFilter - """The timestamp of the last transaction.""" - lastTransactionAt: NumberFilter - """The age.""" - age: NumberFilter - """The timestamp when this entity was created.""" - createdAt: NumberFilter - """The expected lifespan.""" - expectedLifespan: NumberFilter - """The timestamp when this entity opens.""" - opensAt: NumberFilter - """The timestamp when this entity closes.""" - closesAt: NumberFilter - """The expected resolution timestamp.""" - resolvesAt: NumberFilter - """The trending score.""" - trendingScore5m: NumberFilter - """The trending score.""" - trendingScore1h: NumberFilter - """The trending score.""" - trendingScore4h: NumberFilter - """The trending score.""" - trendingScore12h: NumberFilter - """The trending score.""" - trendingScore24h: NumberFilter - """The trending score.""" - trendingScore1w: NumberFilter - """The relevance score.""" - relevanceScore5m: NumberFilter - """The relevance score.""" - relevanceScore1h: NumberFilter - """The relevance score.""" - relevanceScore4h: NumberFilter - """The relevance score.""" - relevanceScore12h: NumberFilter - """The relevance score.""" - relevanceScore24h: NumberFilter - """The relevance score.""" - relevanceScore1w: NumberFilter - """The competitive score.""" - competitiveScore5m: NumberFilter - """The competitive score.""" - competitiveScore1h: NumberFilter - """The competitive score.""" - competitiveScore4h: NumberFilter - """The competitive score.""" - competitiveScore12h: NumberFilter - """The competitive score.""" - competitiveScore24h: NumberFilter - """The competitive score.""" - competitiveScore1w: NumberFilter - """Liquidity in USD.""" - liquidityUsd: NumberFilter - """Liquidity in collateral token units.""" - liquidityCT: NumberFilter - """The percentage change.""" - liquidityChange5m: NumberFilter - """The percentage change.""" - liquidityChange1h: NumberFilter - """The percentage change.""" - liquidityChange4h: NumberFilter - """The percentage change.""" - liquidityChange12h: NumberFilter - """The percentage change.""" - liquidityChange24h: NumberFilter - """The percentage change.""" - liquidityChange1w: NumberFilter - """Open interest in USD.""" - openInterestUsd: NumberFilter - """Open interest in collateral token units.""" - openInterestCT: NumberFilter - """The percentage change.""" - openInterestChange5m: NumberFilter - """The percentage change.""" - openInterestChange1h: NumberFilter - """The percentage change.""" - openInterestChange4h: NumberFilter - """The percentage change.""" - openInterestChange12h: NumberFilter - """The percentage change.""" - openInterestChange24h: NumberFilter - """The percentage change.""" - openInterestChange1w: NumberFilter - """Volume in USD.""" - volumeUsd5m: NumberFilter - """Volume in USD.""" - volumeUsd1h: NumberFilter - """Volume in USD.""" - volumeUsd4h: NumberFilter - """Volume in USD.""" - volumeUsd12h: NumberFilter - """Volume in USD.""" - volumeUsd24h: NumberFilter - """Volume in USD.""" - volumeUsd1w: NumberFilter - """Volume in USD.""" - volumeUsdAll: NumberFilter - """Volume in collateral token units.""" - volumeCTAll: NumberFilter - """The venue volume usd.""" - venueVolumeUsd: NumberFilter - """The venue volume ct.""" - venueVolumeCT: NumberFilter - """The percentage change.""" - volumeChange5m: NumberFilter - """The percentage change.""" - volumeChange1h: NumberFilter - """The percentage change.""" - volumeChange4h: NumberFilter - """The percentage change.""" - volumeChange12h: NumberFilter - """The percentage change.""" - volumeChange24h: NumberFilter - """The percentage change.""" - volumeChange1w: NumberFilter - """The trades5m.""" - trades5m: NumberFilter - """The trades1h.""" - trades1h: NumberFilter - """The trades4h.""" - trades4h: NumberFilter - """The trades12h.""" - trades12h: NumberFilter - """The trades24h.""" - trades24h: NumberFilter - """The trades1w.""" - trades1w: NumberFilter - """The avg trade size usd5m.""" - avgTradeSizeUsd5m: NumberFilter - """The avg trade size usd1h.""" - avgTradeSizeUsd1h: NumberFilter - """The avg trade size usd4h.""" - avgTradeSizeUsd4h: NumberFilter - """The avg trade size usd12h.""" - avgTradeSizeUsd12h: NumberFilter - """The avg trade size usd24h.""" - avgTradeSizeUsd24h: NumberFilter - """The avg trade size usd1w.""" - avgTradeSizeUsd1w: NumberFilter - """The percentage change.""" - tradesChange5m: NumberFilter - """The percentage change.""" - tradesChange1h: NumberFilter - """The percentage change.""" - tradesChange4h: NumberFilter - """The percentage change.""" - tradesChange12h: NumberFilter - """The percentage change.""" - tradesChange24h: NumberFilter - """The percentage change.""" - tradesChange1w: NumberFilter - """The unique traders5m.""" - uniqueTraders5m: NumberFilter - """The unique traders1h.""" - uniqueTraders1h: NumberFilter - """The unique traders4h.""" - uniqueTraders4h: NumberFilter - """The unique traders12h.""" - uniqueTraders12h: NumberFilter - """The unique traders24h.""" - uniqueTraders24h: NumberFilter - """The unique traders1w.""" - uniqueTraders1w: NumberFilter - """The percentage change.""" - uniqueTradersChange5m: NumberFilter - """The percentage change.""" - uniqueTradersChange1h: NumberFilter - """The percentage change.""" - uniqueTradersChange4h: NumberFilter - """The percentage change.""" - uniqueTradersChange12h: NumberFilter - """The percentage change.""" - uniqueTradersChange24h: NumberFilter - """The percentage change.""" - uniqueTradersChange1w: NumberFilter - """The price competitiveness.""" - priceCompetitiveness: NumberFilter - """The volume imbalance24h.""" - volumeImbalance24h: NumberFilter - """The liquidity asymmetry.""" - liquidityAsymmetry: NumberFilter - """The implied probability sum.""" - impliedProbabilitySum: NumberFilter - """The max price range5m.""" - maxPriceRange5m: NumberFilter - """The max price range1h.""" - maxPriceRange1h: NumberFilter - """The max price range4h.""" - maxPriceRange4h: NumberFilter - """The max price range12h.""" - maxPriceRange12h: NumberFilter - """The max price range24h.""" - maxPriceRange24h: NumberFilter - """The max price range1w.""" - maxPriceRange1w: NumberFilter - """Filter on outcome0 properties. All conditions must be met (AND logic).""" - outcome0: PredictionOutcomeFilters - """Filter on outcome1 properties. All conditions must be met (AND logic).""" - outcome1: PredictionOutcomeFilters - """Filter where ANY outcome matches the conditions (OR logic). Useful for finding markets where either outcome meets criteria.""" - outcomeOr: PredictionOutcomeFilters -} - -"""Filters for prediction outcomes within a market.""" -input PredictionOutcomeFilters { - """Best bid price in USD""" - bestBidUsd: NumberFilter - """Best ask price in USD""" - bestAskUsd: NumberFilter - """Spread in USD (difference between best ask and best bid)""" - spreadUsd: NumberFilter - """Last traded price in USD""" - lastPriceUsd: NumberFilter - """Number of trades in the last 5 minutes""" - trades5m: NumberFilter - """Number of trades in the last 1 hour""" - trades1h: NumberFilter - """Number of trades in the last 4 hours""" - trades4h: NumberFilter - """Number of trades in the last 12 hours""" - trades12h: NumberFilter - """Number of trades in the last 24 hours""" - trades24h: NumberFilter - """Number of trades in the last week""" - trades1w: NumberFilter - """Price change percentage in the last 5 minutes""" - priceChange5m: NumberFilter - """Price change percentage in the last 1 hour""" - priceChange1h: NumberFilter - """Price change percentage in the last 4 hours""" - priceChange4h: NumberFilter - """Price change percentage in the last 12 hours""" - priceChange12h: NumberFilter - """Price change percentage in the last 24 hours""" - priceChange24h: NumberFilter - """Price change percentage in the last week""" - priceChange1w: NumberFilter -} - -"""The attribute used to rank prediction markets.""" -enum PredictionMarketRankingAttribute { - timestamp - lastTransactionAt - age - createdAt - expectedLifespan - opensAt - closesAt - resolvesAt - trendingScore5m - trendingScore1h - trendingScore4h - trendingScore12h - trendingScore24h - trendingScore1w - relevanceScore5m - relevanceScore1h - relevanceScore4h - relevanceScore12h - relevanceScore24h - relevanceScore1w - competitiveScore5m - competitiveScore1h - competitiveScore4h - competitiveScore12h - competitiveScore24h - competitiveScore1w - liquidityUsd - liquidityCT - liquidityChange5m - liquidityChange1h - liquidityChange4h - liquidityChange12h - liquidityChange24h - liquidityChange1w - openInterestUsd - openInterestCT - openInterestChange5m - openInterestChange1h - openInterestChange4h - openInterestChange12h - openInterestChange24h - openInterestChange1w - volumeUsd5m - volumeUsd1h - volumeUsd4h - volumeUsd12h - volumeUsd24h - volumeUsd1w - volumeUsdAll - volumeCTAll - venueVolumeUsd - venueVolumeCT - volumeChange5m - volumeChange1h - volumeChange4h - volumeChange12h - volumeChange24h - volumeChange1w - trades5m - trades1h - trades4h - trades12h - trades24h - trades1w - avgTradeSizeUsd5m - avgTradeSizeUsd1h - avgTradeSizeUsd4h - avgTradeSizeUsd12h - avgTradeSizeUsd24h - avgTradeSizeUsd1w - tradesChange5m - tradesChange1h - tradesChange4h - tradesChange12h - tradesChange24h - tradesChange1w - uniqueTraders5m - uniqueTraders1h - uniqueTraders4h - uniqueTraders12h - uniqueTraders24h - uniqueTraders1w - uniqueTradersChange5m - uniqueTradersChange1h - uniqueTradersChange4h - uniqueTradersChange12h - uniqueTradersChange24h - uniqueTradersChange1w - priceCompetitiveness - volumeImbalance24h - liquidityAsymmetry - impliedProbabilitySum - maxPriceRange5m - maxPriceRange1h - maxPriceRange4h - maxPriceRange12h - maxPriceRange24h - maxPriceRange1w - """Score from phrase matching (for search queries)""" - phraseScore -} - -"""The index of an outcome within a prediction market.""" -enum PredictionOutcomeIndex { - outcome0 - outcome1 -} - -"""The attribute used to rank prediction outcomes.""" -enum PredictionOutcomeRankingAttribute { - bestBidUsd - bestAskUsd - spreadUsd - lastPriceUsd - bestBidCT - bestAskCT - spreadCT - lastPriceCT - liquidityUsd - liquidityCT - twoPercentAskDepthUsd - twoPercentBidDepthUsd - twoPercentAskDepthCT - twoPercentBidDepthCT - highPriceUsd5m - highPriceUsd1h - highPriceUsd4h - highPriceUsd12h - highPriceUsd24h - highPriceUsd1w - lowPriceUsd5m - lowPriceUsd1h - lowPriceUsd4h - lowPriceUsd12h - lowPriceUsd24h - lowPriceUsd1w - volumeUsd5m - volumeUsd1h - volumeUsd4h - volumeUsd12h - volumeUsd24h - volumeUsd1w - volumeChange5m - volumeChange1h - volumeChange4h - volumeChange12h - volumeChange24h - volumeChange1w - volumeShares5m - volumeShares1h - volumeShares4h - volumeShares12h - volumeShares24h - volumeShares1w - buyVolumeUsd5m - buyVolumeUsd1h - buyVolumeUsd4h - buyVolumeUsd12h - buyVolumeUsd24h - buyVolumeUsd1w - sellVolumeUsd5m - sellVolumeUsd1h - sellVolumeUsd4h - sellVolumeUsd12h - sellVolumeUsd24h - sellVolumeUsd1w - trades5m - trades1h - trades4h - trades12h - trades24h - trades1w - buys5m - buys1h - buys4h - buys12h - buys24h - buys1w - sells5m - sells1h - sells4h - sells12h - sells24h - sells1w - tradesChange5m - tradesChange1h - tradesChange4h - tradesChange12h - tradesChange24h - tradesChange1w - priceChange5m - priceChange1h - priceChange4h - priceChange12h - priceChange24h - priceChange1w - priceRange5m - priceRange1h - priceRange4h - priceRange12h - priceRange24h - priceRange1w -} - -"""A ranking to apply when sorting prediction markets.""" -input PredictionMarketRanking { - """Market-level attribute to rank by (use this OR outcome + outcomeAttribute)""" - attribute: PredictionMarketRankingAttribute - """Which outcome to rank by (required when using outcomeAttribute)""" - outcome: PredictionOutcomeIndex - """Outcome-level attribute to rank by (requires outcome to be set)""" - outcomeAttribute: PredictionOutcomeRankingAttribute - """The sort direction.""" - direction: RankingDirection -} - -"""A prediction outcome matching a set of filter parameters.""" -type PredictionOutcomeFilterResult { - """The unique identifier.""" - id: String! - """The display label.""" - label: String - """A best-effort display label for the outcome: the outcome `label` when present and meaningful, otherwise the `question`. If the event name appears inside the label it is stripped out.""" - suggestedLabel: String - """The venue-specific outcome ID.""" - venueOutcomeId: String! - """The is winner.""" - isWinner: Boolean - """The token contract address.""" - tokenAddress: String - """The network ID.""" - networkId: Int - """The exchange contract address.""" - exchangeAddress: String - """Tags associated with this entity.""" - tags: [String!] - """The best bid usd.""" - bestBidUsd: String - """The best ask usd.""" - bestAskUsd: String - """The spread usd.""" - spreadUsd: String - """The last price usd.""" - lastPriceUsd: String - """The best bid ct.""" - bestBidCT: String - """The best ask ct.""" - bestAskCT: String - """The spread ct.""" - spreadCT: String - """The last price ct.""" - lastPriceCT: String - """Live top-of-book best bid in USD, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bestBookBidUsd: String - """Live top-of-book best bid in collateral token units, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bestBookBidCT: String - """Live top-of-book best ask in USD, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bestBookAskUsd: String - """Live top-of-book best ask in collateral token units, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bestBookAskCT: String - """Total bid-side notional liquidity in USD across all bid levels in the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bookLiquidityUsd: String - """Total bid-side notional liquidity in collateral token units across all bid levels in the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s. Selecting this caps the filter `limit` at 50.""" - bookLiquidityCT: String - """Liquidity in USD.""" - liquidityUsd: String - """Liquidity in collateral token units.""" - liquidityCT: String - """The two percent ask depth usd.""" - twoPercentAskDepthUsd: String - """The two percent bid depth usd.""" - twoPercentBidDepthUsd: String - """The two percent ask depth ct.""" - twoPercentAskDepthCT: String - """The two percent bid depth ct.""" - twoPercentBidDepthCT: String - """The high price usd5m.""" - highPriceUsd5m: String - """The high price usd1h.""" - highPriceUsd1h: String - """The high price usd4h.""" - highPriceUsd4h: String - """The high price usd12h.""" - highPriceUsd12h: String - """The high price usd24h.""" - highPriceUsd24h: String - """The high price usd1w.""" - highPriceUsd1w: String - """The low price usd5m.""" - lowPriceUsd5m: String - """The low price usd1h.""" - lowPriceUsd1h: String - """The low price usd4h.""" - lowPriceUsd4h: String - """The low price usd12h.""" - lowPriceUsd12h: String - """The low price usd24h.""" - lowPriceUsd24h: String - """The low price usd1w.""" - lowPriceUsd1w: String - """Volume in USD.""" - volumeUsd5m: String - """Volume in USD.""" - volumeUsd1h: String - """Volume in USD.""" - volumeUsd4h: String - """Volume in USD.""" - volumeUsd12h: String - """Volume in USD.""" - volumeUsd24h: String - """Volume in USD.""" - volumeUsd1w: String - """The percentage change.""" - volumeChange5m: Float - """The percentage change.""" - volumeChange1h: Float - """The percentage change.""" - volumeChange4h: Float - """The percentage change.""" - volumeChange12h: Float - """The percentage change.""" - volumeChange24h: Float - """The percentage change.""" - volumeChange1w: Float - """Volume in shares.""" - volumeShares5m: String - """Volume in shares.""" - volumeShares1h: String - """Volume in shares.""" - volumeShares4h: String - """Volume in shares.""" - volumeShares12h: String - """Volume in shares.""" - volumeShares24h: String - """Volume in shares.""" - volumeShares1w: String - """Buy volume.""" - buyVolumeUsd5m: String - """Buy volume.""" - buyVolumeUsd1h: String - """Buy volume.""" - buyVolumeUsd4h: String - """Buy volume.""" - buyVolumeUsd12h: String - """Buy volume.""" - buyVolumeUsd24h: String - """Buy volume.""" - buyVolumeUsd1w: String - """Sell volume.""" - sellVolumeUsd5m: String - """Sell volume.""" - sellVolumeUsd1h: String - """Sell volume.""" - sellVolumeUsd4h: String - """Sell volume.""" - sellVolumeUsd12h: String - """Sell volume.""" - sellVolumeUsd24h: String - """Sell volume.""" - sellVolumeUsd1w: String - """The trades5m.""" - trades5m: Int - """The trades1h.""" - trades1h: Int - """The trades4h.""" - trades4h: Int - """The trades12h.""" - trades12h: Int - """The trades24h.""" - trades24h: Int - """The trades1w.""" - trades1w: Int - """The buys5m.""" - buys5m: Int - """The buys1h.""" - buys1h: Int - """The buys4h.""" - buys4h: Int - """The buys12h.""" - buys12h: Int - """The buys24h.""" - buys24h: Int - """The buys1w.""" - buys1w: Int - """The sells5m.""" - sells5m: Int - """The sells1h.""" - sells1h: Int - """The sells4h.""" - sells4h: Int - """The sells12h.""" - sells12h: Int - """The sells24h.""" - sells24h: Int - """The sells1w.""" - sells1w: Int - """The percentage change.""" - tradesChange5m: Float - """The percentage change.""" - tradesChange1h: Float - """The percentage change.""" - tradesChange4h: Float - """The percentage change.""" - tradesChange12h: Float - """The percentage change.""" - tradesChange24h: Float - """The percentage change.""" - tradesChange1w: Float - """The percentage change.""" - priceChange5m: Float - """The percentage change.""" - priceChange1h: Float - """The percentage change.""" - priceChange4h: Float - """The percentage change.""" - priceChange12h: Float - """The percentage change.""" - priceChange24h: Float - """The percentage change.""" - priceChange1w: Float - """The price range5m.""" - priceRange5m: Float - """The price range1h.""" - priceRange1h: Float - """The price range4h.""" - priceRange4h: Float - """The price range12h.""" - priceRange12h: Float - """The price range24h.""" - priceRange24h: Float - """The price range1w.""" - priceRange1w: Float -} - -"""Metadata for a prediction market returned in search results.""" -type SearchPredictionMarket { - """The unique identifier.""" - id: String! - """The ID of the prediction event.""" - eventId: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The venue-specific market ID.""" - venueMarketId: String! - """The venue-specific market slug.""" - venueMarketSlug: String - """The exchange contract address.""" - exchangeAddress: String - """The network ID.""" - networkId: Int - """The venue-specific event ID.""" - venueEventId: String - """The display label.""" - label: String - """A best-effort display label for the market: the market `label` when present and meaningful, otherwise the `question`. If the event name appears inside the label it is stripped out.""" - suggestedLabel: String - """The question or title.""" - question: String - """The collateral backing this market.""" - collateral: String! - """The creation timestamp.""" - createdAt: Int! - """The timestamp when this entity opens.""" - opensAt: Int - """The timestamp when this entity closes.""" - closesAt: Int - """The expected resolution timestamp.""" - resolvesAt: Int - """The actual resolution timestamp.""" - resolvedAt: Int - """The current status.""" - status: PredictionEventStatus! - """Tags associated with this entity.""" - tags: [String!] - """URL of the thumbnail image.""" - imageThumbUrl: String -} - -"""Capped event-shape taxonomy. One per event.""" -enum PredictionEventShape { - """Single team-vs-team match (e.g. "Lakers vs Celtics").""" - SPORTS_MATCH - """Best-of-N series within a tournament (e.g. NBA Finals series, MLB postseason series).""" - SPORTS_SERIES - """Season/tournament-level championship (e.g. "Pro Basketball Champion?", Super Bowl winner).""" - SPORTS_CHAMPIONSHIP - """Esports match (e.g. "Dota 2: Aurora vs Heroic", "CS2: FaZe vs Navi"). Similar market roles to traditional sports (moneyline, totals, props) but distinct event category.""" - ESPORTS_MATCH - """Awards show / cultural competition outright field — typically one Yes/No market per nominee/entrant (e.g. "Eurovision Winner 2026", Oscars Best Picture, Grammy of the Year).""" - AWARDS_SHOW - """Election / nomination / primary outright field — typically one Yes/No market per candidate (e.g. "Democratic Presidential Nominee 2028").""" - ELECTION - """Numeric threshold ladder for a price/value (e.g. "BTC > $X").""" - PRICE_THRESHOLD - """Date-bucket ladder (e.g. "Before Jan 21, 2029").""" - DATE - """FOMC / central-bank rate-decision event.""" - FED_DECISION - """Single binary yes/no event.""" - BINARY - """Weather or climate measure ladder (e.g. daily high temperature in °C, one Yes/No market per bucket or tail).""" - WEATHER - """Multi-select / pick-N field where the entrant set is a list of distinct items (policy items, demands, topics) rather than candidates, dates, or numeric buckets (e.g. "What Iranian demands will Trump agree to?", "What will the bill include?").""" - MULTI_SELECT - """Fallback.""" - OTHER -} - -"""Capped per-market role taxonomy. One per market within an event.""" -enum PredictionMarketRole { - """Single-market outright winner (e.g. Polymarket two-outcome moneyline).""" - MONEYLINE - """One side of a split head-to-head moneyline (typically 2-3 markets per event: per-team Yes/No for a single game/half/quarter/period, plus optional Tie). Group all markets in an event with this role to reconstruct the logical moneyline.""" - MONEYLINE_OUTCOME - """One entrant in a large-field tournament/championship outright (e.g. Kalshi "NBA Champion?" with one Yes/No market per team in the league). Distinct from MONEYLINE_OUTCOME by field size and event shape.""" - ENTRANT - """Point spread / handicap.""" - SPREAD - """Over/under total.""" - TOTAL - """Player or team prop.""" - PROP - """One bucket of a price-threshold ladder (e.g. "BTC > $80k").""" - THRESHOLD_BUCKET - """One bucket of a date ladder (e.g. "Before 2027").""" - DATE_BUCKET - """Exotic market (BTTS, correct score, method of victory, etc.).""" - EXOTIC - """Fallback.""" - OTHER -} - -"""Structured per-market classification metadata. Replaces the legacy flat fields (`marketSubtype`, `marketRole`, `displayOrder`, `suggestedOrder`) with discriminated, typed sub-objects so clients don't have to re-parse subtype slugs.""" -type PredictionMarketClassification { - """Per-market role within the event (same value as the legacy `marketRole`).""" - role: PredictionMarketRole! - """Position of this market within the event's display list (lower = show first). Folds in ladder ordering for `THRESHOLD_BUCKET` / `DATE_BUCKET` events; equivalent to `suggestedOrder ?? displayOrder` on the legacy fields.""" - sortKey: Int - """Sub-event period (set, half, game, etc.) and/or stat (points, rebounds, ...). Always present; `type = NONE` for non-sports markets and whole-match sports markets. The `groupingKey` field encodes the documented "stat wins over period" precedence so clients don't have to.""" - segment: PredictionMarketSegment! - """Populated when `role = ENTRANT`. Identifies the kind of entrant (person, team, country, ...) and provides type-specific hints (e.g. ISO 3166-1 alpha-2 country code).""" - entrant: PredictionMarketEntrant - """Populated when `role = THRESHOLD_BUCKET`. Carries the parsed numeric rung value, comparison operator, and metric kind (price, temperature, tweets, ...). Saves clients from re-parsing the label.""" - thresholdBucket: PredictionMarketThresholdBucket - """Populated when `role = DATE_BUCKET`. Carries the parsed timestamp(s) and operator (BEFORE / AFTER / ON / BETWEEN).""" - dateBucket: PredictionMarketDateBucket - """Original subtype slug emitted by the classifier (e.g. "first_half_spread", "player_points"). Provided so clients can forward-ship support for new subtypes before this schema gains structured fields for them.""" - rawSubtype: String -} - -"""Sports sub-event segment (period and/or stat).""" -type PredictionMarketSegment { - """Which dimension dominates: STAT (a stat is present, regardless of period), PERIOD (only a period is present), or NONE (neither — full-match market).""" - type: PredictionMarketSegmentType! - """Period token if detected: e.g. "set_1", "1h", "game_2", "map_3", "period_2", "ot". Snake_case slug. Null when the market covers the full match.""" - period: String - """Stat dimension if a stat keyword was detected (points, rebounds, assists, ...). Null otherwise.""" - stat: PredictionMarketStatType - """Convenience grouping key. Equals `stat ?? period ?? "match"`. Use this when partitioning markets within an event into sub-event groups: stat takes precedence over period (a "1H Player Points" market groups with other points markets, not other 1H markets).""" - groupingKey: String! - """Numeric segment value when the period/stat slug carries an ordinal or numeric component (for example set/game/map/round number). Null when no numeric segment value is available.""" - numberValue: Float -} - -"""Discriminator for `PredictionMarketSegment.type`.""" -enum PredictionMarketSegmentType { - """A stat keyword was detected — group by stat regardless of period.""" - STAT - """Only a period (set/half/game/...) was detected.""" - PERIOD - """Neither stat nor period — full-match market.""" - NONE -} - -"""Closed list of stat dimensions the classifier recognises.""" -enum PredictionMarketStatType { - POINTS - REBOUNDS - ASSISTS - THREES - STEALS - BLOCKS - TURNOVERS - FOULS - DOUBLE_DOUBLE - TRIPLE_DOUBLE - FIRST_INNING_RUNS -} - -"""Entrant metadata for ENTRANT-role markets.""" -type PredictionMarketEntrant { - """Kind of entity this entrant represents.""" - kind: PredictionMarketEntrantKind! - """Cleaned display name for the entrant (mirrors the existing `suggestedLabel` field).""" - displayName: String! - """Per-market image URL when available (mirrors the existing per-market image).""" - imageUrl: String - """ISO 3166-1 alpha-2 country code (e.g. "SE"). Populated when `kind = COUNTRY` and the label resolves to a known country.""" - countryCode: String -} - -"""Closed list of entrant kinds.""" -enum PredictionMarketEntrantKind { - """Real person — politician, executive, public figure (not a sports player).""" - PERSON - """Sports player or driver.""" - PLAYER - """Sports team or franchise.""" - TEAM - """Country (Eurovision, Olympics outright, etc.).""" - COUNTRY - """Company / corporation / brand.""" - COMPANY - """Multi-select / pick-N topic item (policy item, demand, agenda topic).""" - TOPIC - """TV show.""" - TV_SHOW - """Movie.""" - MOVIE - """Song.""" - SONG - """Album.""" - ALBUM - """Fallback.""" - OTHER -} - -"""Numeric threshold-bucket metadata for THRESHOLD_BUCKET-role markets.""" -type PredictionMarketThresholdBucket { - """What the rung is measuring (price, stock price, temperature in °C, social-media count, ...).""" - metric: PredictionMarketLadderMetric! - """How the rung relates to its bound(s).""" - operator: PredictionMarketLadderOperator! - """Single comparison value for ABOVE / BELOW / EXACTLY (e.g. 80000 for "BTC > $80k").""" - numericValue: Float - """Lower bound for BETWEEN-style range buckets (e.g. "$80k-$90k" → 80000).""" - lowerBound: Float - """Upper bound for BETWEEN-style range buckets (e.g. "$80k-$90k" → 90000).""" - upperBound: Float -} - -"""Closed list of metrics for `PredictionMarketThresholdBucket.metric`.""" -enum PredictionMarketLadderMetric { - """Generic asset price (crypto, commodities-fallback).""" - PRICE - """Equity stock price.""" - STOCK_PRICE - """Fully-diluted valuation / market cap threshold.""" - FDV - """Commodity price (oil, gas, metals, etc.).""" - COMMODITY - """Daily high/low temperature in °C.""" - TEMPERATURE - """Federal Reserve rate change in basis points.""" - RATE_CHANGE_BPS - """Rotten Tomatoes Tomatometer score.""" - ROTTEN_TOMATOES - """Movie box-office opening-weekend gross.""" - BOX_OFFICE - """Tweet count.""" - TWEETS - """Follower count.""" - FOLLOWERS - """Subscriber count.""" - SUBSCRIBERS - """View / stream count.""" - VIEWS - """Like count.""" - LIKES - """Post count.""" - POSTS - """Fallback.""" - OTHER -} - -"""Comparison operator for a ladder rung.""" -enum PredictionMarketLadderOperator { - """Strictly greater than `numericValue` ("≥" is normalised to ABOVE).""" - ABOVE - """Strictly less than `numericValue` ("≤" is normalised to BELOW).""" - BELOW - """Equal to `numericValue` (single-strike or exact-match bucket).""" - EXACTLY - """Inclusive range between `lowerBound` and `upperBound`.""" - BETWEEN -} - -"""Date-bucket metadata for DATE_BUCKET-role markets.""" -type PredictionMarketDateBucket { - """How the rung relates to its date bound(s).""" - operator: PredictionMarketDateOperator! - """Single unix timestamp (seconds) for BEFORE / AFTER / ON.""" - unixTimestamp: Int - """Lower bound timestamp (seconds) for BETWEEN buckets.""" - lowerTimestamp: Int - """Upper bound timestamp (seconds) for BETWEEN buckets.""" - upperTimestamp: Int -} - -"""Comparison operator for a date rung.""" -enum PredictionMarketDateOperator { - BEFORE - AFTER - ON - BETWEEN -} - -"""Per-domain enrichment attached to a prediction event. Discriminated by `metadataType`; the corresponding sub-block (e.g. `sports`) is populated. Null when no domain-specific signal can be extracted.""" -type PredictionEventEnrichedMetadata { - """Discriminator naming which sub-block carries data.""" - metadataType: PredictionMetadataType! - """Populated when `metadataType = SPORTS`.""" - sports: SportsEventEnrichedMetadata -} - -"""Per-domain enrichment attached to a prediction market. Discriminated by `metadataType`; the corresponding sub-block (e.g. `sports`) is populated.""" -type PredictionMarketEnrichedMetadata { - """Discriminator naming which sub-block carries data.""" - metadataType: PredictionMetadataType! - """Populated when `metadataType = SPORTS`.""" - sports: SportsMarketEnrichedMetadata -} - -"""Discriminator for `enrichedMetadata`. New values added as we ingest new domains.""" -enum PredictionMetadataType { - """Sports games (league, teams, start times).""" - SPORTS -} - -"""Sports-domain enrichment for an event (game).""" -type SportsEventEnrichedMetadata { - """Soft-normalised league/sport identifier (e.g. NBA, NFL, EPL). Free string to tolerate new venues; well-known values match the canonical set.""" - league: String - """Teams participating in the game, when known. Null when the venue does not expose teams.""" - teams: [SportsTeam!] - """Game-start date in UTC ("YYYY-MM-DD"). Derived from `gameStartTime` when present.""" - gameStartDate: String - """Game-start clock value as canonical UTC ISO-8601.""" - gameStartTime: String - """Game-start as Unix seconds (UTC).""" - gameStartTimeSeconds: Int - """Timezone discriminator for `gameStartTime` / `gameStartDate`. Always UTC for any record produced after the ET→UTC normalisation rollout.""" - gameStartTimezone: SportsTimezone - """Decomposed venue ticker (parsed components from the venue's native event identifier). Useful for cross-venue matching when canonical league/teams fields don't disambiguate.""" - decomposedVenueTicker: DecomposedVenueTicker -} - -"""Sports-domain enrichment for a market within an event.""" -type SportsMarketEnrichedMetadata { - """Market template slug (e.g. "moneyline", "spreads", "totals", "ufc_method_of_victory"). Free string — list grows as venues add templates.""" - sportsMarketType: String - """Soft-normalised league identifier (mirrors the parent event).""" - league: String - """Both teams of the parent game, copied from the event. Listed on every market of the game (moneyline, totals, spreads alike), so it does not say which team an outcome backs: use `outcomeTeams` or `selection`.""" - teams: [SportsTeam!] - """Which team each outcome backs, for markets whose outcomes are the teams themselves (a two-way moneyline such as "Blackhawks" / "Lightning", a spread). One entry per outcome, in outcome order. Taken from the venue's own team records, not from label similarity. Null when the outcomes are not teams (Yes/No, Over/Under) or the venue does not identify them.""" - outcomeTeams: [SportsOutcomeTeam!] - """What the Yes outcome is about, for Yes/No markets that each cover one result of a game (Polymarket soccer "Will Nottingham Forest FC win?" / "Draw", Kalshi `-NFO` / `-TIE`). It names the team (or draw) the market is about; what Yes means depends on `sportsMarketType`: on a moneyline that team wins or the game is drawn, on a Kalshi spread or team total it is that team's line, on a Kalshi first-team-to-score market that team scores first. Null when the market is not about one team or a draw.""" - selection: SportsMarketSelection - """Game-start date in UTC ("YYYY-MM-DD"). Derived from `gameStartTime` when present.""" - gameStartDate: String - """Game-start clock value as canonical UTC ISO-8601.""" - gameStartTime: String - """Game-start as Unix seconds (UTC).""" - gameStartTimeSeconds: Int - """Timezone discriminator for `gameStartTime` / `gameStartDate`. Always UTC for any record produced after the ET→UTC normalisation rollout.""" - gameStartTimezone: SportsTimezone -} - -"""The team one outcome of a sports market backs.""" -type SportsOutcomeTeam { - """Position of the outcome in the market's `outcomeIds` and `outcomeLabels`.""" - outcomeIndex: Int! - """Codex outcome ID (the market's `outcomeIds[outcomeIndex]`). Null when the market has no outcome ID at that position.""" - outcomeId: String - """Abbreviation of the team; equals `abbreviation` of one entry in `teams`.""" - teamAbbreviation: String! - """Provider-side identifier of the team; equals that entry's `providerId`.""" - teamProviderId: Int - """Whether the team is the home team. Null when the venue does not say.""" - isHome: Boolean -} - -"""What a single-result Yes/No sports market covers.""" -enum SportsSelectionKind { - """Yes is about one team; `teamAbbreviation` names it.""" - TEAM - """Yes pays on a draw / tie.""" - DRAW -} - -"""The result a single-result Yes/No sports market covers.""" -type SportsMarketSelection { - """Whether Yes is about a team or a draw.""" - kind: SportsSelectionKind! - """Abbreviation of the team when `kind = TEAM`; equals `abbreviation` of one entry in `teams`. Null for a draw.""" - teamAbbreviation: String - """Provider-side identifier of that team, when the venue has one.""" - teamProviderId: Int - """Whether that team is the home team. Null for a draw or when the venue does not say.""" - isHome: Boolean -} - -"""Cross-venue sports team identifier. Only `abbreviation` is required; other fields populated when the venue exposes them. Match teams across venues using `abbreviation ∪ altAbbreviations`.""" -type SportsTeam { - """Lowercased venue-canonical abbreviation.""" - abbreviation: String! - """Known alternate forms for the same team (rebrands, relocations, 2-vs-3-letter conventions). Excludes `abbreviation`.""" - altAbbreviations: [String!] - """Display name.""" - name: String - """Soft-normalised league for this team.""" - league: String - """Logo URL.""" - logo: String - """Display alias.""" - alias: String - """Brand colour.""" - color: String - """Provider-side identifier (e.g. Polymarket gamma id).""" - providerId: Int - """Whether this team is the home team in the event. From the venue's own home/away field on Polymarket and from the ticker's team order on Kalshi, set only where the order is known (home first for soccer; away first for basketball, hockey, baseball and the NFL). Null when the venue does not say, and on Kalshi for other competitions (CFL, college football, rugby, tennis, esports, ...) or when the sport could not be read.""" - isHome: Boolean -} - -"""How to interpret companion date/time fields.""" -enum SportsTimezone { - """UTC. `gameStartTime` is canonical ISO-8601; `gameStartTimeSeconds` populated.""" - UTC -} - -"""Decomposed components extracted from a venue's native event identifier. The parent event's `protocol` field is the source of truth for which sub-block is populated.""" -type DecomposedVenueTicker { - """Populated for Kalshi events whose ticker matches the sports template.""" - kalshiSports: KalshiSportsTickerComponents -} - -"""Structural decomposition of a Kalshi sports event_ticker (e.g. "KXMLBGAME-26MAY091610WSHMIA"). The ticker's ET date/time segments are not exposed here — they are converted to UTC and surfaced on the parent event's `gameStartTime` fields.""" -type KalshiSportsTickerComponents { - """Original ticker string.""" - rawTicker: String! - """Series prefix (e.g. "KXMLBGAME").""" - seriesPrefix: String! - """Soft-normalised series sport.""" - seriesSport: String - """Raw uppercase team-tail captured from the ticker (e.g. "1WINTUNDRA"). Present when the parser matched the structural shape.""" - teamTailRaw: String - """Populated only when the parser can confidently split the team tail.""" - homeAbbreviation: String - """Populated only when the parser can confidently split the team tail.""" - awayAbbreviation: String -} - -"""A prediction market matching a set of filter parameters.""" -type PredictionMarketFilterResult { - """The unique identifier.""" - id: String! - """The unix timestamp.""" - timestamp: Int! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """The age.""" - age: Int - """The expected lifespan.""" - expectedLifespan: Int - """The parent event label.""" - eventLabel: String - """Structured classification metadata from the search index. Discriminated by `classification.role`; carries `segment`, `entrant`, `thresholdBucket`, and `dateBucket` sub-blocks.""" - classification: PredictionMarketClassification - """Simplified market data from search index. Use predictionMarket for full market details.""" - market: SearchPredictionMarket! - """Full prediction market loaded from database. May be null if market no longer exists.""" - predictionMarket: PredictionMarket - """The prediction protocol.""" - protocol: PredictionProtocol! - """The current status.""" - status: PredictionEventStatus! - """The timestamp when this entity opens.""" - opensAt: Int! - """The timestamp when this entity closes.""" - closesAt: Int! - """The expected resolution timestamp.""" - resolvesAt: Int! - """Categories associated with this entity.""" - categories: [String!]! - """The resolution source.""" - resolutionSource: String - """Outcome 0 data.""" - outcome0: PredictionOutcomeFilterResult! - """Outcome 1 data.""" - outcome1: PredictionOutcomeFilterResult! - """The ID of the winning outcome.""" - winningOutcomeId: String - """The trending score.""" - trendingScore5m: Float - """The trending score.""" - trendingScore1h: Float - """The trending score.""" - trendingScore4h: Float - """The trending score.""" - trendingScore12h: Float - """The trending score.""" - trendingScore24h: Float - """The trending score.""" - trendingScore1w: Float - """The relevance score.""" - relevanceScore5m: Float - """The relevance score.""" - relevanceScore1h: Float - """The relevance score.""" - relevanceScore4h: Float - """The relevance score.""" - relevanceScore12h: Float - """The relevance score.""" - relevanceScore24h: Float - """The relevance score.""" - relevanceScore1w: Float - """The competitive score.""" - competitiveScore5m: Float - """The competitive score.""" - competitiveScore1h: Float - """The competitive score.""" - competitiveScore4h: Float - """The competitive score.""" - competitiveScore12h: Float - """The competitive score.""" - competitiveScore24h: Float - """The competitive score.""" - competitiveScore1w: Float - """Liquidity in USD.""" - liquidityUsd: String - """Liquidity in collateral token units.""" - liquidityCT: String - """The percentage change.""" - liquidityChange5m: Float - """The percentage change.""" - liquidityChange1h: Float - """The percentage change.""" - liquidityChange4h: Float - """The percentage change.""" - liquidityChange12h: Float - """The percentage change.""" - liquidityChange24h: Float - """The percentage change.""" - liquidityChange1w: Float - """Open interest in USD.""" - openInterestUsd: String - """Open interest in collateral token units.""" - openInterestCT: String - """The percentage change.""" - openInterestChange5m: Float - """The percentage change.""" - openInterestChange1h: Float - """The percentage change.""" - openInterestChange4h: Float - """The percentage change.""" - openInterestChange12h: Float - """The percentage change.""" - openInterestChange24h: Float - """The percentage change.""" - openInterestChange1w: Float - """Volume in USD.""" - volumeUsd5m: String - """Volume in USD.""" - volumeUsd1h: String - """Volume in USD.""" - volumeUsd4h: String - """Volume in USD.""" - volumeUsd12h: String - """Volume in USD.""" - volumeUsd24h: String - """Volume in USD.""" - volumeUsd1w: String - """Volume in USD.""" - volumeUsdAll: String - """Volume in collateral token units.""" - volumeCTAll: String - """The venue volume usd.""" - venueVolumeUsd: String - """The venue volume ct.""" - venueVolumeCT: String - """The percentage change.""" - volumeChange5m: Float - """The percentage change.""" - volumeChange1h: Float - """The percentage change.""" - volumeChange4h: Float - """The percentage change.""" - volumeChange12h: Float - """The percentage change.""" - volumeChange24h: Float - """The percentage change.""" - volumeChange1w: Float - """The trades5m.""" - trades5m: Int - """The trades1h.""" - trades1h: Int - """The trades4h.""" - trades4h: Int - """The trades12h.""" - trades12h: Int - """The trades24h.""" - trades24h: Int - """The trades1w.""" - trades1w: Int - """The avg trade size usd5m.""" - avgTradeSizeUsd5m: String - """The avg trade size usd1h.""" - avgTradeSizeUsd1h: String - """The avg trade size usd4h.""" - avgTradeSizeUsd4h: String - """The avg trade size usd12h.""" - avgTradeSizeUsd12h: String - """The avg trade size usd24h.""" - avgTradeSizeUsd24h: String - """The avg trade size usd1w.""" - avgTradeSizeUsd1w: String - """The percentage change.""" - tradesChange5m: Float - """The percentage change.""" - tradesChange1h: Float - """The percentage change.""" - tradesChange4h: Float - """The percentage change.""" - tradesChange12h: Float - """The percentage change.""" - tradesChange24h: Float - """The percentage change.""" - tradesChange1w: Float - """The unique traders5m.""" - uniqueTraders5m: Int - """The unique traders1h.""" - uniqueTraders1h: Int - """The unique traders4h.""" - uniqueTraders4h: Int - """The unique traders12h.""" - uniqueTraders12h: Int - """The unique traders24h.""" - uniqueTraders24h: Int - """The unique traders1w.""" - uniqueTraders1w: Int - """The percentage change.""" - uniqueTradersChange5m: Float - """The percentage change.""" - uniqueTradersChange1h: Float - """The percentage change.""" - uniqueTradersChange4h: Float - """The percentage change.""" - uniqueTradersChange12h: Float - """The percentage change.""" - uniqueTradersChange24h: Float - """The percentage change.""" - uniqueTradersChange1w: Float - """The price competitiveness.""" - priceCompetitiveness: Float - """The volume imbalance24h.""" - volumeImbalance24h: Float - """The liquidity asymmetry.""" - liquidityAsymmetry: Float - """The implied probability sum.""" - impliedProbabilitySum: Float - """The max price range5m.""" - maxPriceRange5m: Float - """The max price range1h.""" - maxPriceRange1h: Float - """The max price range4h.""" - maxPriceRange4h: Float - """The max price range12h.""" - maxPriceRange12h: Float - """The max price range24h.""" - maxPriceRange24h: Float - """The max price range1w.""" - maxPriceRange1w: Float -} - -"""Response returned by `filterPredictionMarkets`.""" -type PredictionMarketFilterConnection { - """Total number of matching results.""" - count: Int! - """The current page number.""" - page: Int! - """The list of results.""" - results: [PredictionMarketFilterResult!]! -} - -"""Filters for trader-market records.""" -input PredictionTraderMarketFilters { - """Filter by prediction protocol""" - protocol: [PredictionProtocol!] - """Filter by market status""" - status: [PredictionEventStatus!] - """Filter by labels applied to the trader. Automated accounts are labelled `market-maker` and `high-frequency-bot`; use `excludeTraderLabels` to leave them out of a leaderboard.""" - traderLabels: [String!] - """Exclude traders carrying any of these labels. The usual case is dropping automated accounts from a "top traders" query.""" - excludeTraderLabels: [String!] - """Filter by whether trader has an open position""" - hasOpenPosition: Boolean - """Filter by outcome 0 PnL status""" - outcome0PnlStatus: [PredictionTraderMarketPnlStatus!] - """Filter by outcome 1 PnL status""" - outcome1PnlStatus: [PredictionTraderMarketPnlStatus!] - """The unix timestamp.""" - timestamp: NumberFilter - """The timestamp of the first trade.""" - firstTradeTimestamp: NumberFilter - """The timestamp of the last trade.""" - lastTradeTimestamp: NumberFilter - """The total realized pnl usd.""" - totalRealizedPnlUsd: NumberFilter - """The total realized pnl ct.""" - totalRealizedPnlCT: NumberFilter - """The total volume usd.""" - totalVolumeUsd: NumberFilter - """The total volume ct.""" - totalVolumeCT: NumberFilter - """The total volume shares.""" - totalVolumeShares: NumberFilter - """The total buys.""" - totalBuys: NumberFilter - """The total sells.""" - totalSells: NumberFilter - """The total trades.""" - totalTrades: NumberFilter - """The total cost basis usd.""" - totalCostBasisUsd: NumberFilter - """The total cost basis ct.""" - totalCostBasisCT: NumberFilter - """The total shares held.""" - totalSharesHeld: NumberFilter - """The pnl per volume market.""" - pnlPerVolumeMarket: NumberFilter - """The profit per trade usd.""" - profitPerTradeUsd: NumberFilter - """Outcome 0 realized pnl usd.""" - outcome0RealizedPnlUsd: NumberFilter - """Outcome 0 buys.""" - outcome0Buys: NumberFilter - """Outcome 0 sells.""" - outcome0Sells: NumberFilter - """Outcome 0 shares held.""" - outcome0SharesHeld: NumberFilter - """Outcome 0 cost basis usd.""" - outcome0CostBasisUsd: NumberFilter - """Outcome 1 realized pnl usd.""" - outcome1RealizedPnlUsd: NumberFilter - """Outcome 1 buys.""" - outcome1Buys: NumberFilter - """Outcome 1 sells.""" - outcome1Sells: NumberFilter - """Outcome 1 shares held.""" - outcome1SharesHeld: NumberFilter - """Outcome 1 cost basis usd.""" - outcome1CostBasisUsd: NumberFilter -} - -"""The attribute used to rank trader-market records.""" -enum PredictionTraderMarketRankingAttribute { - timestamp - firstTradeTimestamp - lastTradeTimestamp - totalRealizedPnlUsd - totalRealizedPnlCT - totalVolumeUsd - totalVolumeCT - totalVolumeShares - totalBuys - totalSells - totalTrades - totalCostBasisUsd - totalCostBasisCT - totalSharesHeld - pnlPerVolumeMarket - profitPerTradeUsd - outcome0RealizedPnlUsd - outcome0Buys - outcome0Sells - outcome0SharesHeld - outcome0CostBasisUsd - outcome1RealizedPnlUsd - outcome1Buys - outcome1Sells - outcome1SharesHeld - outcome1CostBasisUsd -} - -"""A ranking to apply when sorting trader-market records.""" -input PredictionTraderMarketRanking { - """The attribute to rank by.""" - attribute: PredictionTraderMarketRankingAttribute! - """The sort direction.""" - direction: RankingDirection -} - -"""Trader metadata within a trader-market filter result.""" -type FilterTrader { - """The unique identifier.""" - id: String! - """The venue trader id.""" - venueTraderId: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The trader alias.""" - alias: String - """The primary address.""" - primaryAddress: String - """The linked addresses.""" - linkedAddresses: [String!] - """The profile image url.""" - profileImageUrl: String - """The profile url.""" - profileUrl: String - """Labels applied to this entity.""" - labels: [String!] -} - -"""Market metadata within a trader-market filter result.""" -type FilterTraderMarket { - """The unique identifier.""" - id: String! - """The ID of the prediction event.""" - eventId: String! - """The prediction protocol.""" - protocol: PredictionProtocol! - """The venue-specific market ID.""" - venueMarketId: String! - """The display label.""" - label: String - """The question or title.""" - question: String - """The parent event label.""" - eventLabel: String - """URL of the thumbnail image.""" - imageThumbUrl: String - """Outcome 0 label.""" - outcome0Label: String - """Outcome 1 label.""" - outcome1Label: String - """The current status.""" - status: PredictionEventStatus! - """The timestamp when this entity closes.""" - closesAt: Int! - """The actual resolution timestamp.""" - resolvedAt: Int -} - -"""Per-outcome stats within a trader-market filter result.""" -type PredictionTraderOutcomeFilterResult { - """The ID of the prediction outcome.""" - outcomeId: String! - """The is winning outcome.""" - isWinningOutcome: Boolean! - """The shares held. This number may not be the same as the actual shares held if the trader has not actually redeemed the shares, but we've already calculated the pnl.""" - sharesHeld: String! - """The actual shares held. If the trader has not actually redeemed the shares, but we've already calculated the pnl, this will still track their actual shares held.""" - actualSharesHeld: String! - """The avg entry price usd.""" - avgEntryPriceUsd: String! - """The avg entry price ct.""" - avgEntryPriceCT: String! - """The cost basis usd.""" - costBasisUsd: String! - """The cost basis ct.""" - costBasisCT: String! - """The number of buys.""" - buys: Int! - """The number of sells.""" - sells: Int! - """Buy volume in USD.""" - buyVolumeUsd: String! - """Sell volume in USD.""" - sellVolumeUsd: String! - """Buy volume in collateral token units.""" - buyVolumeCT: String! - """Sell volume in collateral token units.""" - sellVolumeCT: String! - """Buy volume in shares.""" - buyVolumeShares: String! - """Sell volume in shares.""" - sellVolumeShares: String! - """The realized pnl usd.""" - realizedPnlUsd: String! - """The realized pnl ct.""" - realizedPnlCT: String! - """The current outcome price in USD. Null when latest price data is unavailable.""" - currentPriceUsd: String - """The current outcome price in collateral token units. Null when latest price data is unavailable.""" - currentPriceCT: String - """The current position value in USD. Returns 0 for closed/no-share positions; null when latest price data is unavailable for an open position.""" - currentPositionValueUsd: String - """The current position value in collateral token units. Returns 0 for closed/no-share positions; null when latest price data is unavailable for an open position.""" - currentPositionValueCT: String - """The unrealized pnl in USD. Returns 0 for closed/no-share positions; null when latest price data is unavailable for an open position.""" - unrealizedPnlUsd: String - """The unrealized pnl in collateral token units. Returns 0 for closed/no-share positions; null when latest price data is unavailable for an open position.""" - unrealizedPnlCT: String - """The pnl status.""" - pnlStatus: PredictionTraderMarketPnlStatus! - """The timestamp of the first trade.""" - firstTradeTimestamp: Int! - """The timestamp of the last trade.""" - lastTradeTimestamp: Int! -} - -"""A trader-market record matching a set of filter parameters.""" -type PredictionTraderMarketFilterResult { - """The unique identifier.""" - id: String! - """The unix timestamp.""" - timestamp: Int! - """The ID of the prediction trader.""" - traderId: String! - """The ID of the prediction market.""" - marketId: String! - """The ID of the prediction event.""" - eventId: String! - """Minimal trader info embedded in the result""" - trader: FilterTrader! - """Minimal market info embedded in the result""" - market: FilterTraderMarket! - """Full trader entity (loaded via DataLoader)""" - predictionTrader: PredictionTrader - """Full market entity (loaded via DataLoader)""" - predictionMarket: PredictionMarket - """Whether the trader has an open position. Means they have actual shares held in the market (either outcome).""" - hasOpenPosition: Boolean! - """The ID of the winning outcome.""" - winningOutcomeId: String - """The total realized pnl usd.""" - totalRealizedPnlUsd: String! - """The total realized pnl ct.""" - totalRealizedPnlCT: String! - """The total volume usd.""" - totalVolumeUsd: String! - """The total volume ct.""" - totalVolumeCT: String! - """The total volume shares.""" - totalVolumeShares: String! - """The total buys.""" - totalBuys: Int! - """The total sells.""" - totalSells: Int! - """The total trades.""" - totalTrades: Int! - """The total cost basis usd.""" - totalCostBasisUsd: String! - """The total cost basis ct.""" - totalCostBasisCT: String! - """The total shares held.""" - totalSharesHeld: String! - """The total current position value in USD. Returns 0 when there are no open held positions; null when any open held position is missing latest price data.""" - totalCurrentPositionValueUsd: String - """The total current position value in collateral token units. Returns 0 when there are no open held positions; null when any open held position is missing latest price data.""" - totalCurrentPositionValueCT: String - """The total unrealized pnl in USD. Returns 0 when there are no open held positions; null when any open held position is missing latest price data.""" - totalUnrealizedPnlUsd: String - """The total unrealized pnl in collateral token units. Returns 0 when there are no open held positions; null when any open held position is missing latest price data.""" - totalUnrealizedPnlCT: String - """The pnl per volume market.""" - pnlPerVolumeMarket: String! - """The profit per trade usd.""" - profitPerTradeUsd: String! - """The timestamp of the first trade.""" - firstTradeTimestamp: Int! - """The timestamp of the last trade.""" - lastTradeTimestamp: Int! - """Outcome 0 data.""" - outcome0: PredictionTraderOutcomeFilterResult! - """Outcome 1 data.""" - outcome1: PredictionTraderOutcomeFilterResult! -} - -"""Response returned by `filterPredictionTraderMarkets`.""" -type PredictionTraderMarketFilterConnection { - """Total number of matching results.""" - count: Int! - """The current page number.""" - page: Int! - """The list of results.""" - results: [PredictionTraderMarketFilterResult!]! -} - -"""Filters for prediction traders.""" -input PredictionTraderFilters { - """Filter by protocol (e.g., POLYMARKET, KALSHI)""" - protocol: [PredictionProtocol!] - """Keep traders carrying any of these labels.""" - labels: [String!] - """Exclude traders carrying any of these labels. Automated accounts are labelled `market-maker` and `high-frequency-bot`; exclude them to leave them out of a leaderboard. Applied before ranking, `limit` and `offset`.""" - excludeLabels: [String!] - """Filter by timestamp""" - timestamp: NumberFilter - """Filter by first trade timestamp""" - firstTradeTimestamp: NumberFilter - """Filter by last trade timestamp""" - lastTradeTimestamp: NumberFilter - """Filter by all-time total volume USD""" - totalVolumeUsdAll: NumberFilter - """Filter by all-time total volume CT""" - totalVolumeCTAll: NumberFilter - """Filter by all-time total profit USD""" - totalProfitUsdAll: NumberFilter - """Filter by all-time total profit CT""" - totalProfitCTAll: NumberFilter - """Filter by all-time total trades""" - totalTradesAll: NumberFilter - """Filter by active markets count""" - activeMarketsCount: NumberFilter - """Filter by all-time PnL per volume""" - pnlPerVolumeAll: NumberFilter - """Filter by profit per trade USD all-time""" - profitPerTradeUsdAll: NumberFilter - """Filter by volume per trade USD all-time""" - volumePerTradeUsdAll: NumberFilter - """Filter by biggest win USD""" - biggestWinUsd: NumberFilter - """Filter by biggest win CT""" - biggestWinCT: NumberFilter - """Filter by biggest loss USD""" - biggestLossUsd: NumberFilter - """Filter by biggest loss CT""" - biggestLossCT: NumberFilter - """Filter by volume USD 12h""" - volumeUsd12h: NumberFilter - """Filter by volume USD 24h""" - volumeUsd24h: NumberFilter - """Filter by volume USD 1w""" - volumeUsd1w: NumberFilter - """Filter by volume USD 1m""" - volumeUsd1m: NumberFilter - """Filter by volume change 12h""" - volumeChange12h: NumberFilter - """Filter by volume change 24h""" - volumeChange24h: NumberFilter - """Filter by volume change 1w""" - volumeChange1w: NumberFilter - """Filter by volume change 1m""" - volumeChange1m: NumberFilter - """Filter by realized PnL USD 12h""" - realizedPnlUsd12h: NumberFilter - """Filter by realized PnL USD 24h""" - realizedPnlUsd24h: NumberFilter - """Filter by realized PnL USD 1w""" - realizedPnlUsd1w: NumberFilter - """Filter by realized PnL USD 1m""" - realizedPnlUsd1m: NumberFilter - """Filter by realized profit percentage 12h""" - realizedProfitPercentage12h: NumberFilter - """Filter by realized profit percentage 24h""" - realizedProfitPercentage24h: NumberFilter - """Filter by realized profit percentage 1w""" - realizedProfitPercentage1w: NumberFilter - """Filter by realized profit percentage 1m""" - realizedProfitPercentage1m: NumberFilter - """Filter by realized PnL change 12h""" - realizedPnlChange12h: NumberFilter - """Filter by realized PnL change 24h""" - realizedPnlChange24h: NumberFilter - """Filter by realized PnL change 1w""" - realizedPnlChange1w: NumberFilter - """Filter by realized PnL change 1m""" - realizedPnlChange1m: NumberFilter - """Filter by trades 12h""" - trades12h: NumberFilter - """Filter by trades 24h""" - trades24h: NumberFilter - """Filter by trades 1w""" - trades1w: NumberFilter - """Filter by trades 1m""" - trades1m: NumberFilter - """Filter by unique markets 12h""" - uniqueMarkets12h: NumberFilter - """Filter by unique markets 24h""" - uniqueMarkets24h: NumberFilter - """Filter by unique markets 1w""" - uniqueMarkets1w: NumberFilter - """Filter by unique markets 1m""" - uniqueMarkets1m: NumberFilter - """Filter by wins 12h""" - wins12h: NumberFilter - """Filter by wins 24h""" - wins24h: NumberFilter - """Filter by wins 1w""" - wins1w: NumberFilter - """Filter by wins 1m""" - wins1m: NumberFilter - """Filter by losses 12h""" - losses12h: NumberFilter - """Filter by losses 24h""" - losses24h: NumberFilter - """Filter by losses 1w""" - losses1w: NumberFilter - """Filter by losses 1m""" - losses1m: NumberFilter - """Filter by win rate 12h""" - winRate12h: NumberFilter - """Filter by win rate 24h""" - winRate24h: NumberFilter - """Filter by win rate 1w""" - winRate1w: NumberFilter - """Filter by win rate 1m""" - winRate1m: NumberFilter - """Filter by average profit USD per trade 12h""" - averageProfitUsdPerTrade12h: NumberFilter - """Filter by average profit USD per trade 24h""" - averageProfitUsdPerTrade24h: NumberFilter - """Filter by average profit USD per trade 1w""" - averageProfitUsdPerTrade1w: NumberFilter - """Filter by average profit USD per trade 1m""" - averageProfitUsdPerTrade1m: NumberFilter - """Filter by average swap amount USD 12h""" - averageSwapAmountUsd12h: NumberFilter - """Filter by average swap amount USD 24h""" - averageSwapAmountUsd24h: NumberFilter - """Filter by average swap amount USD 1w""" - averageSwapAmountUsd1w: NumberFilter - """Filter by average swap amount USD 1m""" - averageSwapAmountUsd1m: NumberFilter - """Filter by held token acquisition cost USD""" - heldTokenAcquisitionCostUsd: NumberFilter - """Filter by held token acquisition cost CT""" - heldTokenAcquisitionCostCT: NumberFilter -} - -"""The attribute used to rank prediction traders.""" -enum PredictionTraderRankingAttribute { - TIMESTAMP - FIRST_TRADE_TIMESTAMP - LAST_TRADE_TIMESTAMP - TOTAL_VOLUME_USD_ALL - TOTAL_VOLUME_CT_ALL - TOTAL_PROFIT_USD_ALL - TOTAL_PROFIT_CT_ALL - TOTAL_TRADES_ALL - ACTIVE_MARKETS_COUNT - PNL_PER_VOLUME_ALL - PROFIT_PER_TRADE_USD_ALL - VOLUME_PER_TRADE_USD_ALL - BIGGEST_WIN_USD - BIGGEST_WIN_CT - BIGGEST_LOSS_USD - BIGGEST_LOSS_CT - VOLUME_USD_12H - VOLUME_USD_24H - VOLUME_USD_1W - VOLUME_USD_1M - VOLUME_CHANGE_12H - VOLUME_CHANGE_24H - VOLUME_CHANGE_1W - VOLUME_CHANGE_1M - REALIZED_PNL_USD_12H - REALIZED_PNL_USD_24H - REALIZED_PNL_USD_1W - REALIZED_PNL_USD_1M - REALIZED_PROFIT_PERCENTAGE_12H - REALIZED_PROFIT_PERCENTAGE_24H - REALIZED_PROFIT_PERCENTAGE_1W - REALIZED_PROFIT_PERCENTAGE_1M - REALIZED_PNL_CHANGE_12H - REALIZED_PNL_CHANGE_24H - REALIZED_PNL_CHANGE_1W - REALIZED_PNL_CHANGE_1M - TRADES_12H - TRADES_24H - TRADES_1W - TRADES_1M - UNIQUE_MARKETS_12H - UNIQUE_MARKETS_24H - UNIQUE_MARKETS_1W - UNIQUE_MARKETS_1M - WINS_12H - WINS_24H - WINS_1W - WINS_1M - LOSSES_12H - LOSSES_24H - LOSSES_1W - LOSSES_1M - WIN_RATE_12H - WIN_RATE_24H - WIN_RATE_1W - WIN_RATE_1M - AVERAGE_PROFIT_USD_PER_TRADE_12H - AVERAGE_PROFIT_USD_PER_TRADE_24H - AVERAGE_PROFIT_USD_PER_TRADE_1W - AVERAGE_PROFIT_USD_PER_TRADE_1M - AVERAGE_SWAP_AMOUNT_USD_12H - AVERAGE_SWAP_AMOUNT_USD_24H - AVERAGE_SWAP_AMOUNT_USD_1W - AVERAGE_SWAP_AMOUNT_USD_1M - HELD_TOKEN_ACQUISITION_COST_USD - HELD_TOKEN_ACQUISITION_COST_CT -} - -"""A ranking to apply when sorting prediction traders.""" -input PredictionTraderRanking { - """The attribute to rank by.""" - attribute: PredictionTraderRankingAttribute! - """The sort direction.""" - direction: RankingDirection -} - -"""A prediction trader matching a set of filter parameters.""" -type PredictionTraderFilterResult { - """The unique identifier.""" - id: String! - """The unix timestamp.""" - timestamp: Int! - """Minimal trader info embedded in the result""" - trader: FilterTrader! - """Full trader entity (loaded via DataLoader)""" - predictionTrader: PredictionTrader - """First trade timestamp""" - firstTradeTimestamp: Int! - """Last trade timestamp""" - lastTradeTimestamp: Int! - """All-time total volume USD""" - totalVolumeUsdAll: String! - """All-time total volume CT""" - totalVolumeCTAll: String! - """All-time total profit USD""" - totalProfitUsdAll: String! - """All-time total profit CT""" - totalProfitCTAll: String! - """All-time total trades""" - totalTradesAll: Int! - """Active markets count""" - activeMarketsCount: Int! - """All-time PnL per volume""" - pnlPerVolumeAll: Float! - """Profit per trade USD all-time""" - profitPerTradeUsdAll: String! - """Volume per trade USD all-time""" - volumePerTradeUsdAll: String! - """Biggest win USD""" - biggestWinUsd: String! - """Biggest win CT""" - biggestWinCT: String! - """Biggest loss USD""" - biggestLossUsd: String! - """Biggest loss CT""" - biggestLossCT: String! - """Volume USD 12h""" - volumeUsd12h: String! - """Volume USD 24h""" - volumeUsd24h: String! - """Volume USD 1w""" - volumeUsd1w: String! - """Volume USD 1m""" - volumeUsd1m: String! - """Volume CT 12h""" - volumeCT12h: String! - """Volume CT 24h""" - volumeCT24h: String! - """Volume CT 1w""" - volumeCT1w: String! - """Volume CT 1m""" - volumeCT1m: String! - """Buy volume USD 12h""" - buyVolumeUsd12h: String! - """Buy volume USD 24h""" - buyVolumeUsd24h: String! - """Buy volume USD 1w""" - buyVolumeUsd1w: String! - """Buy volume USD 1m""" - buyVolumeUsd1m: String! - """Sell volume USD 12h""" - sellVolumeUsd12h: String! - """Sell volume USD 24h""" - sellVolumeUsd24h: String! - """Sell volume USD 1w""" - sellVolumeUsd1w: String! - """Sell volume USD 1m""" - sellVolumeUsd1m: String! - """Volume change 12h""" - volumeChange12h: Float! - """Volume change 24h""" - volumeChange24h: Float! - """Volume change 1w""" - volumeChange1w: Float! - """Volume change 1m""" - volumeChange1m: Float! - """Realized PnL USD 12h""" - realizedPnlUsd12h: String! - """Realized PnL USD 24h""" - realizedPnlUsd24h: String! - """Realized PnL USD 1w""" - realizedPnlUsd1w: String! - """Realized PnL USD 1m""" - realizedPnlUsd1m: String! - """Realized PnL CT 12h""" - realizedPnlCT12h: String! - """Realized PnL CT 24h""" - realizedPnlCT24h: String! - """Realized PnL CT 1w""" - realizedPnlCT1w: String! - """Realized PnL CT 1m""" - realizedPnlCT1m: String! - """Realized profit percentage 12h""" - realizedProfitPercentage12h: Float! - """Realized profit percentage 24h""" - realizedProfitPercentage24h: Float! - """Realized profit percentage 1w""" - realizedProfitPercentage1w: Float! - """Realized profit percentage 1m""" - realizedProfitPercentage1m: Float! - """Realized PnL change 12h""" - realizedPnlChange12h: Float! - """Realized PnL change 24h""" - realizedPnlChange24h: Float! - """Realized PnL change 1w""" - realizedPnlChange1w: Float! - """Realized PnL change 1m""" - realizedPnlChange1m: Float! - """Trades 12h""" - trades12h: Int! - """Trades 24h""" - trades24h: Int! - """Trades 1w""" - trades1w: Int! - """Trades 1m""" - trades1m: Int! - """Buys 12h""" - buys12h: Int! - """Buys 24h""" - buys24h: Int! - """Buys 1w""" - buys1w: Int! - """Buys 1m""" - buys1m: Int! - """Sells 12h""" - sells12h: Int! - """Sells 24h""" - sells24h: Int! - """Sells 1w""" - sells1w: Int! - """Sells 1m""" - sells1m: Int! - """Unique markets 12h""" - uniqueMarkets12h: Int! - """Unique markets 24h""" - uniqueMarkets24h: Int! - """Unique markets 1w""" - uniqueMarkets1w: Int! - """Unique markets 1m""" - uniqueMarkets1m: Int! - """Wins 12h""" - wins12h: Int! - """Wins 24h""" - wins24h: Int! - """Wins 1w""" - wins1w: Int! - """Wins 1m""" - wins1m: Int! - """Losses 12h""" - losses12h: Int! - """Losses 24h""" - losses24h: Int! - """Losses 1w""" - losses1w: Int! - """Losses 1m""" - losses1m: Int! - """Win rate 12h (0-1)""" - winRate12h: Float! - """Win rate 24h (0-1)""" - winRate24h: Float! - """Win rate 1w (0-1)""" - winRate1w: Float! - """Win rate 1m (0-1)""" - winRate1m: Float! - """Average profit USD per trade 12h""" - averageProfitUsdPerTrade12h: String! - """Average profit USD per trade 24h""" - averageProfitUsdPerTrade24h: String! - """Average profit USD per trade 1w""" - averageProfitUsdPerTrade1w: String! - """Average profit USD per trade 1m""" - averageProfitUsdPerTrade1m: String! - """Average swap amount USD 12h""" - averageSwapAmountUsd12h: String! - """Average swap amount USD 24h""" - averageSwapAmountUsd24h: String! - """Average swap amount USD 1w""" - averageSwapAmountUsd1w: String! - """Average swap amount USD 1m""" - averageSwapAmountUsd1m: String! - """Held token acquisition cost USD""" - heldTokenAcquisitionCostUsd: String! - """Held token acquisition cost CT""" - heldTokenAcquisitionCostCT: String! -} - -"""Response returned by `filterPredictionTraders`.""" -type PredictionTraderFilterConnection { - """Total number of matching results.""" - count: Int! - """The current page number.""" - page: Int! - """The list of results.""" - results: [PredictionTraderFilterResult!]! -} - -"""Input for `onPredictionTradesCreated`.""" -input OnPredictionTradesCreatedInput { - """The ID of the prediction market.""" - marketId: String - """The ID of the prediction event.""" - eventId: String - """The ID of the prediction trader.""" - traderId: String -} - -"""Payload for `onPredictionTradesCreated`.""" -type AddPredictionTradeOutput { - """The ID of the prediction market.""" - marketId: String! - """The ID of the prediction event.""" - eventId: String! - """The number of trades.""" - trades: [PredictionTrade]! -} - -"""Payload for `onDetailedPredictionMarketStatsUpdated`.""" -type DetailedSubscriptionPredictionMarketStats { - """The ID of the prediction market.""" - marketId: String! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Lifecycle metadata.""" - lifecycle: PredictionLifecycleStats! - """Stats for the 5-minute window.""" - statsMin5: EnhancedWindowedPredictionMarketStats - """Stats for the 1-hour window.""" - statsHour1: EnhancedWindowedPredictionMarketStats - """Stats for the 4-hour window.""" - statsHour4: EnhancedWindowedPredictionMarketStats - """Stats for the 12-hour window.""" - statsHour12: EnhancedWindowedPredictionMarketStats - """Stats for the 1-day window.""" - statsDay1: EnhancedWindowedPredictionMarketStats - """Stats for the 1-week window.""" - statsWeek1: EnhancedWindowedPredictionMarketStats - """Trending scores across time windows.""" - trendingScores: DetailedPredictionStatsScores! - """Relevance scores across time windows.""" - relevanceScores: DetailedPredictionStatsScores! - """Competitive scores across time windows.""" - competitiveScores: DetailedPredictionStatsScores! - """All-time aggregate stats.""" - allTimeStats: PredictionMarketAllTimeStats! -} - -"""Payload for `onDetailedPredictionEventStatsUpdated`.""" -type DetailedSubscriptionPredictionEventStats { - """The ID of the prediction event.""" - eventId: String! - """The timestamp of the last transaction.""" - lastTransactionAt: Int! - """Lifecycle metadata.""" - lifecycle: PredictionLifecycleStats! - """Stats for the 5-minute window.""" - statsMin5: EnhancedWindowedPredictionEventStats - """Stats for the 1-hour window.""" - statsHour1: EnhancedWindowedPredictionEventStats - """Stats for the 4-hour window.""" - statsHour4: EnhancedWindowedPredictionEventStats - """Stats for the 12-hour window.""" - statsHour12: EnhancedWindowedPredictionEventStats - """Stats for the 1-day window.""" - statsDay1: EnhancedWindowedPredictionEventStats - """Stats for the 1-week window.""" - statsWeek1: EnhancedWindowedPredictionEventStats - """Trending scores across time windows.""" - trendingScores: DetailedPredictionStatsScores! - """Relevance scores across time windows.""" - relevanceScores: DetailedPredictionStatsScores! - """All-time aggregate stats.""" - allTimeStats: PredictionEventAllTimeStats! -} - -"""Payload for `onPredictionMarketBarsUpdated`.""" -type OnPredictionMarketBarsUpdatedResponse { - """The ID of the prediction market.""" - marketId: String! - """The bar data.""" - bars: PredictionMarketResolutionBarData! -} - -"""Payload for `onPredictionEventBarsUpdated`.""" -type OnPredictionEventBarsUpdatedResponse { - """The ID of the prediction event.""" - eventId: String! - """The bar data.""" - bars: PredictionEventResolutionBarData! -} - -"""Multi-resolution bar data for a prediction market.""" -type PredictionMarketResolutionBarData { - """Data for the 1-minute resolution.""" - min1: PredictionMarketBar - """Data for the 5-minute resolution.""" - min5: PredictionMarketBar - """Data for the 15-minute resolution.""" - min15: PredictionMarketBar - """Data for the 30-minute resolution.""" - min30: PredictionMarketBar - """Data for the 1-hour resolution.""" - hour1: PredictionMarketBar - """Data for the 4-hour resolution.""" - hour4: PredictionMarketBar - """Data for the 12-hour resolution.""" - hour12: PredictionMarketBar - """Data for the 1-day resolution.""" - day1: PredictionMarketBar - """Data for the 1-week resolution.""" - week1: PredictionMarketBar -} - -"""Multi-resolution bar data for a prediction event.""" -type PredictionEventResolutionBarData { - """Data for the 1-minute resolution.""" - min1: PredictionEventBar - """Data for the 5-minute resolution.""" - min5: PredictionEventBar - """Data for the 15-minute resolution.""" - min15: PredictionEventBar - """Data for the 30-minute resolution.""" - min30: PredictionEventBar - """Data for the 1-hour resolution.""" - hour1: PredictionEventBar - """Data for the 4-hour resolution.""" - hour4: PredictionEventBar - """Data for the 12-hour resolution.""" - hour12: PredictionEventBar - """Data for the 1-day resolution.""" - day1: PredictionEventBar - """Data for the 1-week resolution.""" - week1: PredictionEventBar -} - -"""Input for fetching prediction market price data.""" -input PredictionMarketPriceInput { - """The ID of the prediction market.""" - marketId: String! - """The timestamp (unix seconds). If not provided, the latest price will be returned.""" - timestamp: Int -} - -"""Price data for a prediction market.""" -type PredictionMarketPrice { - """The ID of the prediction market.""" - marketId: String! - """The timestamp of the price data.""" - timestamp: Int! - """The prices for the outcomes.""" - outcomes: [PredictionMarketOutcomePrice!]! -} - -"""Price data for a single outcome within a prediction market.""" -type PredictionMarketOutcomePrice { - """The ID of the outcome.""" - outcomeId: String! - """The last trade price in USD.""" - lastTradePriceUsd: String - """The last trade price in collateral token units.""" - lastTradePriceCT: String - """The best bid in USD.""" - bestBidUsd: String - """The best bid in collateral token units.""" - bestBidCT: String - """The best ask in USD.""" - bestAskUsd: String - """The best ask in collateral token units.""" - bestAskCT: String - """The spread in USD.""" - spreadUsd: String - """The spread in collateral token units.""" - spreadCT: String - """Live top-of-book best bid in USD, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bestBookBidUsd: String - """Live top-of-book best bid in collateral token units, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bestBookBidCT: String - """Live top-of-book best ask in USD, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bestBookAskUsd: String - """Live top-of-book best ask in collateral token units, sourced from the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bestBookAskCT: String - """Total bid-side notional liquidity in USD across all bid levels in the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bookLiquidityUsd: String - """Total bid-side notional liquidity in collateral token units across all bid levels in the venue's CLOB. Polymarket and Kalshi; null for other venues. Fetched on-demand only when selected. Cached for up to 10s.""" - bookLiquidityCT: String - """The timestamp of the price data.""" - timestamp: Int! -} - -"""A single price level within a prediction outcome's order book. Polymarket and Kalshi.""" -type PredictionOrderBookLevel { - """The price in collateral token units.""" - price: Float! - """The size at this price level, in shares.""" - size: Float! -} - -"""A live order book snapshot for a single prediction outcome, sourced from the venue's CLOB. Polymarket and Kalshi; outcomes from other venues return no book. Cached for up to 10s.""" -type PredictionOutcomeOrderBook { - """The composite outcome ID.""" - outcomeId: String! - """The protocol that provides this market.""" - protocol: PredictionProtocol! - """The venue-specific outcome / asset / token ID used by the venue's CLOB.""" - venueOutcomeId: String! - """Bids ordered such that the last element is the best (highest) bid. Empty when no book is available.""" - bids: [PredictionOrderBookLevel!]! - """Asks ordered such that the last element is the best (lowest) ask. Empty when no book is available.""" - asks: [PredictionOrderBookLevel!]! - """Venue-reported timestamp for the snapshot, in unix seconds. 0 when no book is available.""" - timestamp: Int! - """Total bid-side notional liquidity in USD across all bid levels in the venue's CLOB. Null when no book is available.""" - bookLiquidityUsd: String - """Total bid-side notional liquidity in collateral token units across all bid levels in the venue's CLOB. Null when no book is available.""" - bookLiquidityCT: String -} - -"""Response returned by `eventScopedFilterPredictionMarkets`. All markets belong to the same event, so `eventShape` and `eventId` are surfaced once at the connection level rather than repeated on every row.""" -type EventScopedPredictionMarketFilterConnection { - """Total number of matching results.""" - count: Int! - """The current page number.""" - page: Int! - """Event-level shape (one per event; identical for all markets in a single-event query).""" - eventShape: PredictionEventShape! - """The ID of the prediction event.""" - eventId: String! - """The list of results.""" - results: [EventScopedPredictionMarketFilterResult!]! -} - -"""A prediction market scoped to a single event, paired with its structured classification metadata.""" -type EventScopedPredictionMarketFilterResult { - """The prediction market filter result.""" - marketResult: PredictionMarketFilterResult! - """Structured classification metadata. Discriminated by `classification.role`; carries `segment` (period/stat), `entrant` (with country code / image), `thresholdBucket` (parsed numeric rung + operator), and `dateBucket` (unix timestamp + operator) sub-blocks. See `MarketClassifier/CLASSIFICATION.md` for the consumer guide.""" - classification: PredictionMarketClassification! -} - -"""Deprecated. Sort order for markets within a prediction event. This no longer affects market ordering.""" -enum PredictionEventMarketSort { - """Deprecated. No longer affects market ordering.""" - SMART @deprecated(reason: "No longer affects market ordering.") - """Deprecated. No longer affects market ordering.""" - NONE @deprecated(reason: "No longer affects market ordering.") -} - -"""The quote token within the pair.""" -enum QuoteToken { - token0 - token1 -} - -enum NetworkConfigType { - SOLANA - EVM - SUI - APTOS - STARKNET -} - -type ExplorerConfig { - checksummed: Boolean! - icon: String! - name: String! - url: String! -} - -"""The native currency of an EVM network: the precision of native balances and gas, and, where the chain exposes the same funds through an ERC-20 interface, that alias contract and the system contract that emits its transfer logs. Absent for networks whose native asset has no such alias.""" -type NativeCurrency { - """Decimals of native balances and gas amounts.""" - decimals: Int! - """ERC-20 contract that is another interface to the same native funds, not a wrapper.""" - erc20AliasAddress: String - """System contract that emits the canonical transfer logs for native movements.""" - transferEventEmitter: String -} - -interface NetworkConfigBase { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - wrappedBaseTokenSymbol: String! - stableCoinAddresses: [String!] -} - -union NetworkConfig = EvmNetworkConfig | SolanaNetworkConfig | SuiNetworkConfig | AptosNetworkConfig | StarknetNetworkConfig - -"""The type of webhook.""" -enum WebhookType { - PRICE_EVENT - TOKEN_PAIR_EVENT - RAW_TRANSACTION - MARKET_CAP_EVENT - TOKEN_PRICE_EVENT - TOKEN_TRANSFER_EVENT - PREDICTION_TRADE - PREDICTION_MARKET_METRICS_EVENT - TOKEN_LAUNCH_EVENT -} - -"""Input for deleting webhooks.""" -input DeleteWebhooksInput { - """A list of webhook IDs to delete.""" - webhookIds: [String!]! -} - -"""Result returned by `deleteWebhooks`.""" -type DeleteWebhooksOutput { - """The list of webhook IDs that were deleted.""" - deletedIds: [String] -} - -"""Input for creating webhooks.""" -input CreateWebhooksInput { - """Input for creating price webhooks.""" - priceWebhooksInput: CreatePriceWebhooksInput @deprecated(reason: "Use tokenPriceEventWebhooksInput instead.") - """Input for creating token pair event webhooks.""" - tokenPairEventWebhooksInput: CreateTokenPairEventWebhooksInput - """Input for creating raw transaction webhooks.""" - rawTransactionWebhooksInput: CreateRawTransactionWebhooksInput - """Input for creating market cap webhooks.""" - marketCapWebhooksInput: CreateMarketCapWebhooksInput - """Input for creating token price event webhooks.""" - tokenPriceEventWebhooksInput: CreateTokenPriceEventWebhooksInput - """Input for creating token transfer event webhooks.""" - tokenTransferEventWebhooksInput: CreateTokenTransferEventWebhooksInput - """Input for creating prediction trade webhooks.""" - predictionTradeWebhooksInput: CreatePredictionTradeWebhooksInput - """Input for creating prediction market metrics event webhooks.""" - predictionMarketMetricsEventWebhooksInput: CreatePredictionMarketMetricsEventWebhooksInput - """Input for creating token launch event webhooks.""" - tokenLaunchEventWebhooksInput: CreateTokenLaunchEventWebhooksInput -} - -"""A bucket identifier for grouping and querying webhooks. Provide both fields together so bucket-based queries work correctly.""" -input BucketKeyInput { - """The bucket ID for the webhook.""" - bucketId: String! - """The bucket sort key for the webhook.""" - bucketSortKey: String! -} - -"""Input for creating price webhooks.""" -input CreatePriceWebhooksInput { - """A list of price webhooks to create.""" - webhooks: [CreatePriceWebhookArgs!]! -} - -"""Input for creating a price webhook.""" -input CreatePriceWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """A webhook group ID (max 64 characters). Can be used to group webhooks so that their messages are kept in order as a group rather than by individual webhook.""" - groupId: String @deprecated(reason: "GroupId is deprecated and will be removed in the future. Messages will be grouped by webhookId") - """The conditions which must be met in order for the webhook to send a message.""" - conditions: PriceEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input for creating market cap webhooks.""" -input CreateMarketCapWebhooksInput { - """A list of market cap webhooks to create.""" - webhooks: [CreateMarketCapWebhookArgs!]! -} - -"""Input for creating a market cap webhook.""" -input CreateMarketCapWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """A webhook group ID (max 64 characters). Can be used to group webhooks so that their messages are kept in order as a group rather than by individual webhook.""" - groupId: String @deprecated(reason: "GroupId is deprecated and will be removed in the future. Messages will be grouped by webhookId") - """The conditions which must be met in order for the webhook to send a message.""" - conditions: MarketCapEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Config input for retrying failed webhook messages.""" -input RetrySettingsInput { - """The maximum time in seconds that the webhook will retry sending a message""" - maxTimeElapsed: Int - """The minimum time in seconds that the webhook will wait before retrying a failed message""" - minRetryDelay: Int - """The maximum time in seconds that the webhook will wait before retrying a failed message""" - maxRetryDelay: Int - """The maximum number of times the webhook will retry sending a message""" - maxRetries: Int -} - -"""Input conditions for a price event webhook.""" -input PriceEventWebhookConditionInput { - """The contract address of the token to listen for.""" - tokenAddress: StringEqualsConditionInput! - """The network ID to listen on.""" - networkId: IntEqualsConditionInput! - """The price conditions to listen for.""" - priceUsd: ComparisonOperatorInput! - """The contract address of the pair to listen for.""" - pairAddress: StringEqualsConditionInput - """The volume conditions to listen for.""" - volumeUsd: ComparisonOperatorInput - """The liquidity conditions to listen for.""" - liquidityUsd: ComparisonOperatorInput -} - -"""Input conditions for a market cap event webhook.""" -input MarketCapEventWebhookConditionInput { - """The contract address of the token to listen for.""" - tokenAddress: StringEqualsConditionInput! - """The network ID to listen on.""" - networkId: IntEqualsConditionInput! - """The price conditions to listen for.""" - fdvMarketCapUsd: ComparisonOperatorInput - """The circulating market cap conditions to listen for.""" - circulatingMarketCapUsd: ComparisonOperatorInput - """No longer supported: market cap webhooks evaluate the token's price, the one the API reports. Creating a webhook with this field fails.""" - pairAddress: StringEqualsConditionInput @deprecated(reason: "Market cap webhooks evaluate the token's price; setting this field is rejected.") - """The token 24h volume conditions to listen for.""" - volumeUsd: ComparisonOperatorInput - """The token liquidity conditions to listen for.""" - liquidityUsd: ComparisonOperatorInput -} - -"""Input for creating token price event webhooks.""" -input CreateTokenPriceEventWebhooksInput { - """A list of token price event webhooks to create.""" - webhooks: [CreateTokenPriceEventWebhookArgs!]! -} - -"""Input for creating a token price event webhook.""" -input CreateTokenPriceEventWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The conditions which must be met in order for the webhook to send a message.""" - conditions: TokenPriceEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input conditions for a token price event webhook.""" -input TokenPriceEventWebhookConditionInput { - """The contract address of the token to listen for.""" - address: StringEqualsConditionInput! - """The network ID to listen on.""" - networkId: IntEqualsConditionInput! - """The price conditions to listen for.""" - priceUsd: ComparisonOperatorInput! -} - -"""Input for creating token transfer event webhooks.""" -input CreateTokenTransferEventWebhooksInput { - """A list of token transfer event webhooks to create.""" - webhooks: [CreateTokenTransferEventWebhookArgs!]! -} - -"""Input for creating a token transfer event webhook.""" -input CreateTokenTransferEventWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The conditions which must be met in order for the webhook to send a message.""" - conditions: TokenTransferEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhofoks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input conditions for a token transfer event webhook.""" -input TokenTransferEventWebhookConditionInput { - """The contract address of the token to listen for.""" - tokenAddress: StringEqualsConditionInput - """The list of network IDs to listen on.""" - networkId: OneOfNumberConditionInput - """The wallet address to listen for transfers from or to.""" - address: StringEqualsConditionInput - """The direction of the transfer (TO, FROM). Defaults to [TO, FROM] if not specified.""" - direction: OneOfTokenTransferDirectionConditionInput -} - -"""Input for token transfer direction list condition.""" -input OneOfTokenTransferDirectionConditionInput { - """The list of transfer directions to listen for.""" - oneOf: [TokenTransferDirection!]! -} - -"""Input for a string list condition.""" -input OneOfStringConditionInput { - """The list of strings to match.""" - oneOf: [String!]! -} - -"""Input for creating token launch event webhooks.""" -input CreateTokenLaunchEventWebhooksInput { - """A list of token launch event webhooks to create.""" - webhooks: [CreateTokenLaunchEventWebhookArgs!]! -} - -"""Input for creating a token launch event webhook.""" -input CreateTokenLaunchEventWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The conditions which must be met in order for the webhook to send a message.""" - conditions: TokenLaunchEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks.""" - bucketKey: BucketKeyInput - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input conditions for a token launch event webhook. Exactly one of `creatorAddress` or `launchpadName` is required — the webhook is indexed by whichever you provide.""" -input TokenLaunchEventWebhookConditionInput { - """The wallet address of the token creator to listen for. Provide this or `launchpadName`.""" - creatorAddress: StringEqualsConditionInput - """The launchpad to listen for, e.g. `Pump.fun`. Must contain exactly one supported launchpad name; matching is case-insensitive and unknown names are rejected. Provide this or `creatorAddress`.""" - launchpadName: OneOfStringConditionInput - """The list of network IDs to listen on. Narrows the match; cannot be used on its own.""" - networkId: OneOfNumberConditionInput - """The contract address of the launched token. Narrows the match; cannot be used on its own.""" - tokenAddress: StringEqualsConditionInput -} - -"""Input for creating prediction trade webhooks.""" -input CreatePredictionTradeWebhooksInput { - """A list of prediction trade webhooks to create.""" - webhooks: [CreatePredictionTradeWebhookArgs!]! -} - -"""Input for creating a prediction trade webhook.""" -input CreatePredictionTradeWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The conditions which must be met in order for the webhook to send a message.""" - conditions: PredictionTradeWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput -} - -"""Input conditions for a prediction trade webhook.""" -input PredictionTradeWebhookConditionInput { - """The trader ID to listen for.""" - traderId: StringEqualsConditionInput - """The market ID to listen for.""" - marketId: StringEqualsConditionInput - """The event ID to listen for.""" - eventId: StringEqualsConditionInput - """The trade event types to listen for.""" - eventType: PredictionTradeEventTypeConditionInput - """The trade value in USD condition.""" - tradeValueUsd: ComparisonOperatorInput - """The amount of tokens/shares traded condition.""" - amountToken: ComparisonOperatorInput -} - -"""Per-window stat thresholds for a PredictionMarketMetricsEvent webhook outcome. All present fields are ANDed.""" -input WindowedPredictionMarketMetricsEventOutcomeConditionInput { - price: ComparisonOperatorInput - priceChange: ComparisonOperatorInput - volumeUsd: ComparisonOperatorInput - volumeChange: ComparisonOperatorInput - trades: ComparisonOperatorInput - tradesChange: ComparisonOperatorInput -} - -"""Per-window market-level stat thresholds. All present fields ANDed.""" -input WindowedPredictionMarketMetricsEventMarketConditionInput { - volumeUsd: ComparisonOperatorInput - trades: ComparisonOperatorInput - volumeChange: ComparisonOperatorInput - tradesChange: ComparisonOperatorInput -} - -"""Per-window market-level conditions across all 6 windows.""" -input PredictionMarketMetricsEventMarketConditionInput { - min5: WindowedPredictionMarketMetricsEventMarketConditionInput - hour1: WindowedPredictionMarketMetricsEventMarketConditionInput - hour4: WindowedPredictionMarketMetricsEventMarketConditionInput - hour12: WindowedPredictionMarketMetricsEventMarketConditionInput - day1: WindowedPredictionMarketMetricsEventMarketConditionInput - week1: WindowedPredictionMarketMetricsEventMarketConditionInput -} - -"""Input conditions for a PredictionMarketMetricsEvent webhook.""" -input PredictionMarketMetricsEventWebhookConditionInput { - """The market ID to listen for.""" - marketId: StringEqualsConditionInput! - """Conditions evaluated against market-level aggregate stats. ANDed with other clauses when also present.""" - market: PredictionMarketMetricsEventMarketConditionInput - """Conditions evaluated against outcome 0's stats. ANDed with outcome1 and anyOutcome when also present.""" - outcome0: PredictionMarketMetricsEventOutcomeConditionInput - """Conditions evaluated against outcome 1's stats. ANDed with outcome0 and anyOutcome when also present.""" - outcome1: PredictionMarketMetricsEventOutcomeConditionInput - """Conditions evaluated against both outcomes; matches if at least one outcome satisfies. ANDed with outcome0 and outcome1 when also present.""" - anyOutcome: PredictionMarketMetricsEventOutcomeConditionInput -} - -"""Per-outcome conditions for a PredictionMarketMetricsEvent webhook.""" -input PredictionMarketMetricsEventOutcomeConditionInput { - """Conditions for the 5-minute window.""" - min5: WindowedPredictionMarketMetricsEventOutcomeConditionInput - """Conditions for the 1-hour window.""" - hour1: WindowedPredictionMarketMetricsEventOutcomeConditionInput - """Conditions for the 4-hour window.""" - hour4: WindowedPredictionMarketMetricsEventOutcomeConditionInput - """Conditions for the 12-hour window.""" - hour12: WindowedPredictionMarketMetricsEventOutcomeConditionInput - """Conditions for the 1-day window.""" - day1: WindowedPredictionMarketMetricsEventOutcomeConditionInput - """Conditions for the 1-week window.""" - week1: WindowedPredictionMarketMetricsEventOutcomeConditionInput -} - -"""Input for creating a prediction market metrics event webhook.""" -input CreatePredictionMarketMetricsEventWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The conditions which must be met in order for the webhook to send a message.""" - conditions: PredictionMarketMetricsEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input for creating prediction market metrics event webhooks.""" -input CreatePredictionMarketMetricsEventWebhooksInput { - """A list of prediction market metrics event webhooks to create.""" - webhooks: [CreatePredictionMarketMetricsEventWebhookArgs!]! -} - -"""Input for prediction trade event type condition.""" -input PredictionTradeEventTypeConditionInput { - """The list of prediction trade event types to match.""" - oneOf: [PredictionTradeEventType!]! -} - -"""Prediction trade event types.""" -enum PredictionTradeEventType { - TRADE - BUY - SELL - BUY_COUNTERPARTY - SELL_COUNTERPARTY - PAYOUT_REDEMPTION @deprecated(reason: "PAYOUT_REDEMPTION is deprecated and will be removed in the future. Use POSITION_REDEEMED instead.") - POSITION_REDEEMED -} - -"""Input for creating token pair event webhooks.""" -input CreateTokenPairEventWebhooksInput { - """A list of token pair event webhooks to create.""" - webhooks: [CreateTokenPairEventWebhookArgs!]! -} - -"""Input for creating a token pair event webhook.""" -input CreateTokenPairEventWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """A webhook group ID (max 64 characters). Can be used to group webhooks so that their messages are kept in order as a group rather than by individual webhook.""" - groupId: String @deprecated(reason: "GroupId is deprecated and will be removed in the future. Messages will be grouped by webhookId") - """The conditions which must be met in order for the webhook to send a message.""" - conditions: TokenPairEventWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input conditions for a token pair event webhook.""" -input TokenPairEventWebhookConditionInput { - """A list of network IDs to listen on.""" - networkId: OneOfNumberConditionInput - """The maker wallet address to listen for.""" - maker: StringEqualsConditionInput - """The pair contract address to listen for.""" - pairAddress: StringEqualsConditionInput - """The exchange contract address to listen for.""" - exchangeAddress: StringEqualsConditionInput - """The token contract address to listen for.""" - tokenAddress: StringEqualsConditionInput - """The swap values to listen for.""" - swapValue: ComparisonOperatorInput - """The token event type to listen for.""" - eventType: TokenPairEventTypeConditionInput -} - -"""Input for token pair event type condition.""" -input TokenPairEventTypeConditionInput { - """The list of token event types to equal.""" - oneOf: [TokenPairEventType!]! -} - -"""Token pair event types.""" -enum TokenPairEventType { - SWAP - MINT - BURN - SYNC - BUY - SELL - COLLECT - COLLECT_PROTOCOL -} - -"""The direction of a token transfer.""" -enum TokenTransferDirection { - """Tokens sent from the address.""" - FROM - """Tokens received to the address.""" - TO -} - -"""Input for creating Raw Transaction webhooks.""" -input CreateRawTransactionWebhooksInput { - """A list of Raw Transaction webhooks to create.""" - webhooks: [CreateRawTransactionWebhookArgs!]! -} - -"""Input for creating a Raw Transaction webhook.""" -input CreateRawTransactionWebhookArgs { - """The name of the webhook (max 128 characters).""" - name: String! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """A string value to hash along with `deduplicationId` using SHA-256. Included in the webhook message for added security.""" - securityToken: String! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """A webhook group ID (max 64 characters). Can be used to group webhooks so that their messages are kept in order as a group rather than by individual webhook.""" - groupId: String @deprecated(reason: "GroupId is deprecated and will be removed in the future. Messages will be grouped by webhookId") - """The conditions which must be met in order for the webhook to send a message.""" - conditions: RawTransactionWebhookConditionInput! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettingsInput - """An optional bucket key for grouping and querying webhooks. Prefer this over the deprecated flat bucket fields.""" - bucketKey: BucketKeyInput - """Deprecated. Use `bucketKey.bucketId` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketId: String @deprecated(reason: "Use bucketKey.bucketId instead.") - """Deprecated. Use `bucketKey.bucketSortKey` instead. Existing webhooks created with `bucketId` and `bucketSortkey` will continue to work.""" - bucketSortkey: String @deprecated(reason: "Use bucketKey.bucketSortKey instead.") - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType - """If enabled, new webhooks won't be created if a webhook with the same parameters already exists. If callbackUrl, conditions, publishingType, and alertRecurrence all match, then we return the existing webhook.""" - deduplicate: Boolean -} - -"""Input conditions for a Raw Transaction webhook.""" -input RawTransactionWebhookConditionInput { - """A list of network IDs to listen on.""" - networkId: OneOfNumberConditionInput - """The to address to listen for.""" - to: StringEqualsConditionInput - """The from address to listen for.""" - from: StringEqualsConditionInput - """Trigger the webhook if either the to or the from address matches.""" - toOrFrom: StringEqualsConditionInput - """Trigger the webhook if the input contains or doesn't contain the specified string.""" - input: StringContainsConditionInput - """Do not trigger the webhook if the raw transaction is handled by the TokenPairEvent webhook.""" - ignoreTokenPairEvents: Boolean -} - -"""Input for string contains condition.""" -input StringContainsConditionInput { - """A list of substrings to be included within the string.""" - contains: [String!] - """A list of substrings not to be included within the string.""" - notContains: [String!] -} - -"""Input for integer list condition.""" -input OneOfNumberConditionInput { - """The list of integers.""" - oneOf: [Int!]! -} - -"""Input for comparison operators.""" -input ComparisonOperatorInput { - """Greater than.""" - gt: String - """Greater than or equal.""" - gte: String - """Less than.""" - lt: String - """Less than or equal.""" - lte: String - """Equal to.""" - eq: String -} - -"""Input for string equals condition.""" -input StringEqualsConditionInput { - """The string to equal.""" - eq: String! -} - -"""Input for integer equals condition.""" -input IntEqualsConditionInput { - """The integer to equal.""" - eq: Int! -} - -"""The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" -enum AlertRecurrence { - INDEFINITE - ONCE -} - -"""The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" -enum PublishingType { - BATCH - SINGLE -} - -"""Result returned by `createWebhooks`.""" -type CreateWebhooksOutput { - """The list of price webhooks that were created.""" - priceWebhooks: [Webhook]! - """The list of token pair event webhooks that were created.""" - tokenPairEventWebhooks: [Webhook]! - """The list of raw transaction webhooks that were created.""" - rawTransactionWebhooks: [Webhook]! - """The list of market cap event webhooks that were created.""" - marketCapWebhooks: [Webhook]! - """The list of token price event webhooks that were created.""" - tokenPriceEventWebhooks: [Webhook]! - """The list of token transfer event webhooks that were created.""" - tokenTransferEventWebhooks: [Webhook]! - """The list of prediction trade webhooks that were created.""" - predictionTradeWebhooks: [Webhook]! - """The list of prediction market metrics event webhooks that were created.""" - predictionMarketMetricsEventWebhooks: [Webhook]! - """The list of token launch event webhooks that were created.""" - tokenLaunchEventWebhooks: [Webhook]! -} - -"""Metadata for a webhook.""" -type Webhook { - """The ID of the webhook.""" - id: String! - """The type of webhook. Can be `PRICE_EVENT`, `TOKEN_PAIR_EVENT`, or `RAW_TRANSACTION`.""" - webhookType: WebhookType! - """The given name of the webhook.""" - name: String! - """The unix timestamp for the time the webhook was created.""" - created: Int! - """The recurrence of the webhook. Can be `INDEFINITE` or `ONCE`.""" - alertRecurrence: AlertRecurrence! - """The url to which the webhook message should be sent.""" - callbackUrl: String! - """The status of the webhook. Can be `ACTIVE` or `INACTIVE`.""" - status: String! - """The webhook group ID used to group webhooks together for ordered message sending.""" - groupId: String @deprecated(reason: "GroupId is deprecated and will be removed in the future. Messages will be grouped by webhookId") - """The conditions which must be met in order for the webhook to send a message.""" - conditions: WebhookCondition! - """The settings for retrying failed webhook messages.""" - retrySettings: RetrySettings - """An optional bucket ID (max 64 characters). Can be used to query for subgroups of webhooks (useful if you have a large number of webhooks).""" - bucketId: String - """An optional bucket sort key (max 64 characters). Can be used to query for subgroups of webhooks (useful if you have a large number of webhooks).""" - bucketSortkey: String - """The type of publishing for the webhook. If not set, it defaults to `SINGLE`.""" - publishingType: PublishingType -} - -"""Response returned by `getWebhooks`.""" -type GetWebhooksResponse { - """A list of webhooks belonging to a user.""" - items: [Webhook] - """A cursor for use in pagination.""" - cursor: String -} - -"""Config for retrying failed webhook messages.""" -type RetrySettings { - """The maximum time in seconds that the webhook will retry sending a message""" - maxTimeElapsed: Int - """The minimum time in seconds that the webhook will wait before retrying a failed message""" - minRetryDelay: Int - """The maximum time in seconds that the webhook will wait before retrying a failed message""" - maxRetryDelay: Int - """The maximum number of times the webhook will retry sending a message""" - maxRetries: Int -} - -"""Webhook conditions that must be met for each webhook type.""" -union WebhookCondition = PriceEventWebhookCondition | MarketCapEventWebhookCondition | TokenPairEventWebhookCondition | RawTransactionWebhookCondition | TokenPriceEventWebhookCondition | TokenTransferEventWebhookCondition | PredictionTradeWebhookCondition | PredictionMarketMetricsEventWebhookCondition | TokenLaunchEventWebhookCondition - -"""Webhook conditions for a price event.""" -type PriceEventWebhookCondition { - """The token contract address the webhook is listening for.""" - tokenAddress: StringEqualsCondition! - """The network ID the webhook is listening on.""" - networkId: IntEqualsCondition! - """The price condition that must be met in order for the webhook to send.""" - priceUsd: ComparisonOperator! - """The pair contract address the webhook is listening for.""" - pairAddress: StringEqualsCondition - """The liquidity condition (for the source pair) that must be met in order for the webhook to send.""" - liquidityUsd: ComparisonOperator - """The volume condition (for the source pair) that must be met in order for the webhook to send.""" - volumeUsd: ComparisonOperator -} - -"""Webhook conditions for a market cap event.""" -type MarketCapEventWebhookCondition { - """The token contract address the webhook is listening for.""" - tokenAddress: StringEqualsCondition! - """The network ID the webhook is listening on.""" - networkId: IntEqualsCondition! - """The market cap condition that must be met in order for the webhook to send. Market cap uses the token price the API reports.""" - fdvMarketCapUsd: ComparisonOperator - """The circulating market cap condition that must be met in order for the webhook to send. Market cap uses the token price the API reports.""" - circulatingMarketCapUsd: ComparisonOperator - """The pair contract address set on older webhooks. Ignored: market cap webhooks evaluate the token's price.""" - pairAddress: StringEqualsCondition @deprecated(reason: "Market cap webhooks evaluate the token's price; this field is ignored.") - """The token liquidity condition that must be met in order for the webhook to send.""" - liquidityUsd: ComparisonOperator - """The token 24h volume condition that must be met in order for the webhook to send.""" - volumeUsd: ComparisonOperator -} - -"""Webhook conditions for a token price event.""" -type TokenPriceEventWebhookCondition { - """The token contract address the webhook is listening for.""" - address: StringEqualsCondition! - """The network ID the webhook is listening on.""" - networkId: IntEqualsCondition! - """The price condition that must be met in order for the webhook to send.""" - priceUsd: ComparisonOperator! -} - -"""Webhook conditions for a token transfer event.""" -type TokenTransferEventWebhookCondition { - """The token contract address the webhook is listening for.""" - tokenAddress: StringEqualsCondition - """The list of network IDs the webhook is listening on.""" - networkId: OneOfNumberCondition - """The wallet address the webhook is listening for transfers from or to.""" - address: StringEqualsCondition - """The directions of the transfer the webhook is listening for.""" - direction: OneOfTokenTransferDirectionCondition -} - -"""Token transfer direction list condition.""" -type OneOfTokenTransferDirectionCondition { - """The list of transfer directions.""" - oneOf: [TokenTransferDirection!]! -} - -"""A string list condition.""" -type OneOfStringCondition { - """The list of strings.""" - oneOf: [String!]! -} - -"""Webhook conditions for a token launch event.""" -type TokenLaunchEventWebhookCondition { - """The creator wallet address the webhook is listening for.""" - creatorAddress: StringEqualsCondition - """The launchpad names the webhook is listening for.""" - launchpadName: OneOfStringCondition - """The list of network IDs the webhook is listening on.""" - networkId: OneOfNumberCondition - """The token contract address the webhook is listening for.""" - tokenAddress: StringEqualsCondition -} - -"""Webhook conditions for a prediction trade event.""" -type PredictionTradeWebhookCondition { - """The trader ID the webhook is listening for.""" - traderId: StringEqualsCondition - """The market ID the webhook is listening for.""" - marketId: StringEqualsCondition - """The event ID the webhook is listening for.""" - eventId: StringEqualsCondition - """The trade event types the webhook is listening for.""" - eventType: PredictionTradeEventTypeCondition - """The trade value in USD condition.""" - tradeValueUsd: ComparisonOperator - """The amount of tokens/shares traded condition.""" - amountToken: ComparisonOperator -} - -"""Per-window outcome stat conditions for a prediction market metrics event webhook.""" -type WindowedPredictionMarketMetricsEventOutcomeCondition { - """The price condition.""" - price: ComparisonOperator - """The price change condition.""" - priceChange: ComparisonOperator - """The volume in USD condition.""" - volumeUsd: ComparisonOperator - """The volume change condition.""" - volumeChange: ComparisonOperator - """The number of trades condition.""" - trades: ComparisonOperator - """The trades change condition.""" - tradesChange: ComparisonOperator -} - -"""Per-window market-level stat conditions for a prediction market metrics event webhook.""" -type WindowedPredictionMarketMetricsEventMarketCondition { - """The volume in USD condition.""" - volumeUsd: ComparisonOperator - """The number of trades condition.""" - trades: ComparisonOperator - """The volume change condition.""" - volumeChange: ComparisonOperator - """The trades change condition.""" - tradesChange: ComparisonOperator -} - -"""Market-level conditions across all windows for a prediction market metrics event webhook.""" -type PredictionMarketMetricsEventMarketCondition { - """Conditions for the 5-minute window.""" - min5: WindowedPredictionMarketMetricsEventMarketCondition - """Conditions for the 1-hour window.""" - hour1: WindowedPredictionMarketMetricsEventMarketCondition - """Conditions for the 4-hour window.""" - hour4: WindowedPredictionMarketMetricsEventMarketCondition - """Conditions for the 12-hour window.""" - hour12: WindowedPredictionMarketMetricsEventMarketCondition - """Conditions for the 1-day window.""" - day1: WindowedPredictionMarketMetricsEventMarketCondition - """Conditions for the 1-week window.""" - week1: WindowedPredictionMarketMetricsEventMarketCondition -} - -"""Webhook conditions for a prediction market metrics event.""" -type PredictionMarketMetricsEventWebhookCondition { - """The market ID the webhook is listening for.""" - marketId: StringEqualsCondition! - """Conditions evaluated against market-level aggregate stats. ANDed with other clauses when also present.""" - market: PredictionMarketMetricsEventMarketCondition - """Conditions evaluated against outcome 0's stats. ANDed with outcome1 and anyOutcome when also present.""" - outcome0: PredictionMarketMetricsEventOutcomeCondition - """Conditions evaluated against outcome 1's stats. ANDed with outcome0 and anyOutcome when also present.""" - outcome1: PredictionMarketMetricsEventOutcomeCondition - """Conditions evaluated against both outcomes; matches if at least one outcome satisfies. ANDed with outcome0 and outcome1 when also present.""" - anyOutcome: PredictionMarketMetricsEventOutcomeCondition -} - -"""Per-outcome conditions for a prediction market metrics event webhook.""" -type PredictionMarketMetricsEventOutcomeCondition { - """Conditions for the 5-minute window.""" - min5: WindowedPredictionMarketMetricsEventOutcomeCondition - """Conditions for the 1-hour window.""" - hour1: WindowedPredictionMarketMetricsEventOutcomeCondition - """Conditions for the 4-hour window.""" - hour4: WindowedPredictionMarketMetricsEventOutcomeCondition - """Conditions for the 12-hour window.""" - hour12: WindowedPredictionMarketMetricsEventOutcomeCondition - """Conditions for the 1-day window.""" - day1: WindowedPredictionMarketMetricsEventOutcomeCondition - """Conditions for the 1-week window.""" - week1: WindowedPredictionMarketMetricsEventOutcomeCondition -} - -"""Prediction trade event type condition.""" -type PredictionTradeEventTypeCondition { - """The list of prediction trade event types.""" - oneOf: [PredictionTradeEventType!]! -} - -"""Webhook conditions for a token pair event.""" -type TokenPairEventWebhookCondition { - """The token contract address the webhook is listening for.""" - tokenAddress: StringEqualsCondition - """The list of network IDs the webhook is listening on.""" - networkId: OneOfNumberCondition - """The swap values the webhook is listening for.""" - swapValue: ComparisonOperator - """The maker wallet address the webhook is listening for.""" - maker: StringEqualsCondition - """The pair contract address the webhook is listening for.""" - pairAddress: StringEqualsCondition - """The exchange contract address the webhook is listening for.""" - exchangeAddress: StringEqualsCondition - """The event type the webhook is listening for.""" - eventType: TokenPairEventTypeCondition -} - -"""Webhook condition for token pair event type.""" -type TokenPairEventTypeCondition { - """The list of token pair event types.""" - oneOf: [TokenPairEventType!]! -} - -"""Webhook conditions for a raw transaction.""" -type RawTransactionWebhookCondition { - """A list of network IDs to listen on.""" - networkId: OneOfNumberCondition - """The to address to listen for.""" - to: StringEqualsCondition - """The from address to listen for.""" - from: StringEqualsCondition - """Trigger the webhook if either the to or the from address matches.""" - toOrFrom: StringEqualsCondition - """Trigger the webhook if the contains or doesn't contain the specified string.""" - input: StringContainsCondition - """Do not trigger the webhook if the raw transaction is handled by the TokenPairEvent webhook.""" - ignoreTokenPairEvents: Boolean -} - -"""String contains condition.""" -type StringContainsCondition { - """A list of substrings included within the string.""" - contains: [String!] - """A list of substrings not included within the string.""" - notContains: [String!] -} - -"""Integer list condition.""" -type OneOfNumberCondition { - """The list of integers.""" - oneOf: [Int!]! -} - -"""Comparison operators.""" -type ComparisonOperator { - """Greater than.""" - gt: String - """Greater than or equal to.""" - gte: String - """Less than.""" - lt: String - """Less than or equal to.""" - lte: String - """Equal to.""" - eq: String -} - -"""String equals condition.""" -type StringEqualsCondition { - """The string to equal.""" - eq: String! -} - -"""Integer equals condition.""" -type IntEqualsCondition { - """The integer to equal.""" - eq: Int! -} - -"""A network supported on Defined.""" -type Network { - """The name of the network. For example, `arbitrum`.""" - name: String! - """The network ID. For example, `42161` for `arbitrum`.""" - id: Int! - networkShortName: String -} - -"""The status for a network supported on Defined.""" -type MetadataResponse { - """The last processed block on the network.""" - lastProcessedBlock: Int - """The unix timestamp for the last processed block on the network.""" - lastProcessedTimestamp: Int - """The network ID.""" - networkId: Int! - """The name of the network.""" - networkName: String! - """Transactions per second, averaged over the network's latest indexed blocks (up to 500 blocks from the past 5 minutes). Refreshed every 5 minutes. Null when fewer than two blocks were indexed in that window. On Solana-based networks it counts every executed transaction, including failed and vote transactions.""" - transactionsPerSecond: Float -} - -input BlocksInput { - networkId: Int! - blockNumbers: [Int!] - timestamps: [Int!] -} - -type Block { - blockNumber: Int! - timestamp: Int! - hash: String! -} - -"""A wallet matching a filter.""" -type WalletFilterResult { - """The wallet address""" - address: String! - """The network ID of the wallet (only present if filtered by network)""" - networkId: Int - """The unix timestamp for the first transaction from this wallet""" - firstTransactionAt: Int - """The unix timestamp for the last transaction from this wallet""" - lastTransactionAt: Int! - """The labels associated with the wallet""" - labels: [String!]! - """Labels on the wallet's profile: identity (e.g. WHALE, KOL) and the behaviour our labelling jobs write (BOT, SCAMMER, VOLUME_BOT). See [`WalletLabel`](/api-reference/enums/walletlabel).""" - identityLabels: [String!] - """Registry entity ids of the apps this wallet trades through — e.g. `defined` for defined.fi, or `axiom`. Means "trades through", never "is owned by": one routed trade is enough to appear here.""" - tradeSourceIds: [String!] - """Volume in USD in the past day""" - volumeUsd1d: String! - """Total volume in USD in the past day including all tokens""" - volumeUsdAll1d: String! - """Realized profit in USD in the past day""" - realizedProfitUsd1d: String! - """Realized profit in USD excluding native tokens in the past day. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative1d: String - """Average profit in USD per trade in the past day""" - averageProfitUsdPerTrade1d: String! - """Average swap amount in USD in the past day""" - averageSwapAmountUsd1d: String! - """Realized profit percentage in the past day""" - realizedProfitPercentage1d: Float! - """Realized profit percentage excluding native tokens in the past day. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative1d: Float - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: Float - """Number of swaps in the past day""" - swaps1d: Int! - """Total number of swaps in the past day including all tokens""" - swapsAll1d: Int! - """Number of unique tokens traded in the past day""" - uniqueTokens1d: Int! - """Win rate in the past day""" - winRate1d: Float! - """Volume in USD in the past week""" - volumeUsd1w: String! - """Total volume in USD in the past week including all tokens""" - volumeUsdAll1w: String! - """Realized profit in USD in the past week""" - realizedProfitUsd1w: String! - """Realized profit in USD excluding native tokens in the past week. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative1w: String - """Average profit in USD per trade in the past week""" - averageProfitUsdPerTrade1w: String! - """Average swap amount in USD in the past week""" - averageSwapAmountUsd1w: String! - """Realized profit percentage in the past week""" - realizedProfitPercentage1w: Float! - """Realized profit percentage excluding native tokens in the past week. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative1w: Float - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: Float - """Number of swaps in the past week""" - swaps1w: Int! - """Total number of swaps in the past week including all tokens""" - swapsAll1w: Int! - """Number of unique tokens traded in the past week""" - uniqueTokens1w: Int! - """Win rate in the past week""" - winRate1w: Float! - """Volume in USD in the past 30 days""" - volumeUsd30d: String! - """Total volume in USD in the past 30 days including all tokens""" - volumeUsdAll30d: String! - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d: String! - """Realized profit in USD excluding native tokens in the past 30 days. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative30d: String - """Average profit in USD per trade in the past 30 days""" - averageProfitUsdPerTrade30d: String! - """Average swap amount in USD in the past 30 days""" - averageSwapAmountUsd30d: String! - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: Float! - """Realized profit percentage excluding native tokens in the past 30 days. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative30d: Float - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: Float - """Number of swaps in the past 30 days""" - swaps30d: Int! - """Total number of swaps in the past 30 days including all tokens""" - swapsAll30d: Int! - """Number of unique tokens traded in the past 30 days""" - uniqueTokens30d: Int! - """Win rate in the past 30 days""" - winRate30d: Float! - """Volume in USD in the past year""" - volumeUsd1y: String! - """Total volume in USD in the past year including all tokens""" - volumeUsdAll1y: String! - """Realized profit in USD in the past year""" - realizedProfitUsd1y: String! - """Average profit in USD per trade in the past year""" - averageProfitUsdPerTrade1y: String! - """Average swap amount in USD in the past year""" - averageSwapAmountUsd1y: String! - """Realized profit percentage in the past year""" - realizedProfitPercentage1y: Float! - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: Float - """Number of swaps in the past year""" - swaps1y: Int! - """Total number of swaps in the past year including all tokens""" - swapsAll1y: Int! - """Number of unique tokens traded in the past year""" - uniqueTokens1y: Int! @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - """Win rate in the past year""" - winRate1y: Float! - """The scammer score for the wallet.""" - scammerScore: Int - """The bot score for the wallet.""" - botScore: Int - """Total number of tokens created by this wallet across all networks.""" - tokensCreatedCount: Int - """Total number of launchpad tokens migrated (graduated) by this wallet across all networks.""" - tokensMigratedCount: Int - """Wallet behavior classification. Null is equivalent to NORMIE.""" - category: WalletCategory - """The native token balance of the wallet (only present if filtered by network)""" - nativeTokenBalance: String - """The backfill state of the wallet.""" - backfillState: WalletAggregateBackfillState - """The wallet identity and profile data""" - wallet: Wallet -} - -enum SparklineAttribute { - PRICE -} - -enum SymbolType { - TOKEN - POOL -} - -enum QuoteCurrency { - USD - TOKEN -} - -"""The attribute to sort balances by.""" -enum BalancesSortAttribute { - """Sort by raw token balance amount (default). Note this orders on `shiftedBalance`, not `uiBalance` — a list rendering `uiBalance` for B20 asset tokens can therefore look mis-ordered, since each token's multiplier differs. Sort by USD_VALUE if the displayed order must match the displayed column.""" - BALANCE - """Sort by USD value (descending).""" - USD_VALUE -} - -"""Controls whether uiBalance is expressed in multiplier-adjusted or raw units. The two supported standards store opposite things, so the mode applies in opposite directions.""" -enum UiAmountMode { - """Return raw token amounts: Token-2022 balances have their UI amount multiplier removed; B20 balances are already raw and pass through unchanged.""" - RAW - """Return multiplier-adjusted amounts: Token-2022 balances are the stored RPC UI amount; B20 balances are multiplied by the token's active multiplier. This is the default.""" - SCALED -} - -enum HoldersSortAttribute { - BALANCE - DATE @deprecated(reason: "No longer supported. Use BALANCE instead.") -} - -"""The event label type.""" -enum EventLabelType { - FrontRun - Sandwiched -} - -"""The duration used to request detailed pair stats.""" -enum DetailedPairStatsDuration { - day30 - week1 - day1 - hour12 - hour4 - hour1 - min15 - min5 -} - -"""The duration used to request detailed token stats.""" -enum DetailedTokenStatsDuration { - day30 @deprecated(reason: "Not supported for token-level stats; DetailedTokenStats has no stats_day30 field.") - week1 @deprecated(reason: "Not supported for token-level stats; DetailedTokenStats has no stats_week1 field.") - day1 - hour12 - hour4 - hour1 - min15 @deprecated(reason: "Not supported for token-level stats; DetailedTokenStats has no stats_min15 field.") - min5 -} - -"""The window size used to request detailed stats.""" -enum DetailedStatsWindowSize { - day1 - hour12 - hour4 - hour1 - min5 -} - -"""The token of interest within a pair. Can be `token0` or `token1`.""" -enum TokenOfInterest { - token0 - token1 -} - -"""The event type for a token transaction.""" -enum EventType { - Burn - Mint - Swap - Sync - Collect - CollectProtocol - PoolBalanceChanged - LiquidityLock -} - -"""The commitment level of a streamed event - Solana, Robinhood, Base and BSC support Processed values. Processed returns regional executed data before the platform confirms it. Preprocessed is Solana-only and deprecated because edge node performance improvements have made it unnecessary. Use Processed instead.""" -enum EventCommitmentLevel { - Preprocessed @deprecated(reason: "Edge node performance improvements have made Preprocessed unnecessary. Use Processed instead.") - Processed - Confirmed -} - -"""The commitment level of a streamed bar update - Solana, Robinhood, Base and BSC support Processed values. Processed returns regional executed data before the platform confirms it. Preprocessed is Solana-only and deprecated because edge node performance improvements have made it unnecessary. Use Processed instead.""" -enum BarCommitmentLevel { - Preprocessed @deprecated(reason: "Edge node performance improvements have made Preprocessed unnecessary. Use Processed instead.") - Processed - Confirmed -} - -"""A more specific breakdown of `EventType`. Splits `Swap` into `Buy` and `Sell`.""" -enum EventDisplayType { - Burn - Mint - Buy - Sell - Sync - Collect - CollectProtocol -} - -"""The attribute used to rank tokens.""" -enum PairRankingAttribute { - """The pool's static fee rate. Pools with no static rate have no value and sort last.""" - poolFeeBps - """Weighted risk score of the pair's token of interest.""" - riskScore - """Unix seconds of the token's latest recorded risk change.""" - riskFlaggedAt - createdAt - lastTransaction - buyCount1 - buyCount4 - buyCount12 - buyCount24 - highPrice1 - highPrice4 - highPrice12 - highPrice24 - liquidity - lockedLiquidityPercentage - lowPrice1 - lowPrice4 - lowPrice12 - lowPrice24 - marketCap - price - priceChange1 - priceChange4 - priceChange12 - priceChange24 - volumeChange1 - volumeChange4 - volumeChange12 - volumeChange24 - sellCount1 - sellCount4 - sellCount12 - sellCount24 - trendingScore - trendingScore5m - trendingScore1 - trendingScore4 - trendingScore12 - trendingScore24 - txnCount1 - txnCount4 - txnCount12 - txnCount24 - uniqueBuys1 - uniqueBuys4 - uniqueBuys12 - uniqueBuys24 - uniqueSells1 - uniqueSells4 - uniqueSells12 - uniqueSells24 - uniqueTransactions1 - uniqueTransactions4 - uniqueTransactions12 - uniqueTransactions24 - volumeUSD1 - volumeUSD4 - volumeUSD12 - volumeUSD24 - buyVolumeUSD1 - buyVolumeUSD4 - buyVolumeUSD12 - buyVolumeUSD24 - sellVolumeUSD1 - sellVolumeUSD4 - sellVolumeUSD12 - sellVolumeUSD24 - walletAgeAvg - walletAgeStd - swapPct1dOldWallet - swapPct7dOldWallet -} - -"""The attribute used to rank networks.""" -enum NetworkRankingAttribute { - liquidity - volume5m - volume1 - volume4 - volume12 - volume24 - volumeChange5m - volumeChange1 - volumeChange4 - volumeChange12 - volumeChange24 - transactions5m @deprecated(reason: "Use swaps5m instead") - transactions1 @deprecated(reason: "Use swaps1 instead") - transactions4 @deprecated(reason: "Use swaps4 instead") - transactions12 @deprecated(reason: "Use swaps12 instead") - transactions24 @deprecated(reason: "Use swaps24 instead") - swaps5m - swaps1 - swaps4 - swaps12 - swaps24 - chainTransactions5m - chainTransactions1 - chainTransactions4 - chainTransactions12 - chainTransactions24 - trades5m - trades1 - trades4 - trades12 - trades24 - tokensCreated5m - tokensCreated1 - tokensCreated4 - tokensCreated12 - tokensCreated24 - traders5m - traders1 - traders4 - traders12 - traders24 - tokensTraded5m - tokensTraded1 - tokensTraded4 - tokensTraded12 - tokensTraded24 - tokensGraduated5m - tokensGraduated1 - tokensGraduated4 - tokensGraduated12 - tokensGraduated24 - tokensCreatedPrev24 - tokensSurvived24 - stablecoinSupplyUsd -} - -"""The attribute used to rank launchpads. Rankings apply to the combined stats by default; set `phase` on the ranking to rank by `pre` or `post` phase stats instead (stats attributes only).""" -enum LaunchpadRankingAttribute { - volume1 - volume4 - volume12 - volume24 - volume1w - buyVolume1 - buyVolume4 - buyVolume12 - buyVolume24 - buyVolume1w - sellVolume1 - sellVolume4 - sellVolume12 - sellVolume24 - sellVolume1w - volumeChange1 - volumeChange4 - volumeChange12 - volumeChange24 - volumeChange1w - transactions1 - transactions4 - transactions12 - transactions24 - transactions1w - buys1 - buys4 - buys12 - buys24 - buys1w - sells1 - sells4 - sells12 - sells24 - sells1w - activeTokens1 - activeTokens4 - activeTokens12 - activeTokens24 - activeTokens1w - liquidity - marketCap - poolFees1 - poolFees4 - poolFees12 - poolFees24 - poolFees1w - totalFees1 - totalFees4 - totalFees12 - totalFees24 - totalFees1w - feeToVolumeRatio1 - feeToVolumeRatio4 - feeToVolumeRatio12 - feeToVolumeRatio24 - feeToVolumeRatio1w - timestamp - tokensTotal - tokensCompletedTotal - tokensMigratedTotal - migrationRate - avgGraduationPercent - tokensCreated1 - tokensCreated4 - tokensCreated12 - tokensCreated24 - tokensCreated1w - tokensCompleted1 - tokensCompleted4 - tokensCompleted12 - tokensCompleted24 - tokensCompleted1w - tokensMigrated1 - tokensMigrated4 - tokensMigrated12 - tokensMigrated24 - tokensMigrated1w - migrationRate24 - migrationRate1w -} - -"""The launchpad stats phase a ranking attribute applies to.""" -enum LaunchpadStatsPhase { - """Combined stats across all of the launchpad's tokens.""" - combined - """Tokens still on the bonding curve.""" - pre - """Tokens that have migrated.""" - post -} - -"""The launchpad document scope to read. Global rollup documents duplicate their per-network documents, so a query always reads exactly one scope.""" -enum LaunchpadFilterScope { - """One document per launchpad and network (the default).""" - network - """One global rollup document per launchpad, aggregated across all of its networks.""" - global -} - -"""The attribute used to rank exchanges.""" -enum ExchangeRankingAttribute { - txnCount1 - txnCount4 - txnCount12 - txnCount24 - volumeUSD1 - volumeUSD4 - volumeUSD12 - volumeUSD24 - volumeNBT1 - volumeNBT4 - volumeNBT12 - volumeNBT24 - dailyActiveUsers - monthlyActiveUsers -} - -"""The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" -enum TokenPairStatisticsType { - FILTERED - UNFILTERED -} - -"""The reason a token has been flagged as a potential scam.""" -enum PotentialScamReason { - """The token does not meet the minimum liquidity threshold.""" - MinimumLiquidity - """Liquidity could not be read, so the liquidity checks did not run.""" - LiquidityUnknown - """The token has experienced a significant drop in liquidity.""" - LiquidityRugPull - """The token has suspicious wallet activity.""" - SuspiciousWalletActivity - """The token has an abnormal buyer ratio.""" - AbnormalBuyerRatio - """The creator wallet holds at least half of the supply.""" - DevConcentration - """Wallets that bought within seconds of launch hold at least half of the supply.""" - SniperConcentration - """The token graduated its launchpad in its creation slot and the launch shape is corroborated by a creator distribution, holders that never traded, bot churn, one-way flow, a thin pool or a bot-only market.""" - BundledLaunch - """A launchpad token whose market is a pool on a venue the launchpad does not migrate to, opened within minutes of the mint.""" - ForeignVenueLaunch - """Hundreds of buyers, a few dozen sellers doing every sell, buy and sell volume matched, almost nobody holding: supply cycled through hub wallets.""" - SellerHub -} - -input OnPricesUpdatedInput { - """The token contract address.""" - address: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The pair contract address from which to get pricing. Defaults to the top pair for the token.""" - sourcePairAddress: String -} - -input OnTokenEventsCreatedInput { - """The token address to filter by. Required unless you are on an enterprise plan including EventFeed features.""" - tokenAddress: String - """The network ID to filter by.""" - networkId: Int! -} - -"""Input type of `StringFilter`.""" -input StringFilter { - """Greater than or equal to.""" - gte: String - """Greater than.""" - gt: String - """Less than or equal to.""" - lte: String - """Less than.""" - lt: String -} - -"""Input type of `tokenLifecycleEvents` query.""" -input TokenLifecycleEventsQueryInput { - """The token contract address to filter events by. In conjunction with `networkId`, this will filter events for a specific token on a specific network.""" - address: String! - """The networkId to filter events by.""" - networkId: Int! -} - -"""Input type of `EventsQuery`.""" -input EventsQueryInput { - """The pair contract address to filter by. If you pass a token address in here, it will instead find the top pair for that token and use that.""" - address: String! - """The token of interest. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The amount of `quoteToken` involved in the swap.""" - amountNonLiquidityToken: NumberFilter - """The list of event display types to filter by.""" - eventDisplayType: [EventDisplayType] - """The specific event type to filter by.""" - eventType: EventType - """The specific wallet address to filter by.""" - maker: String - """The network ID to filter by.""" - networkId: Int! - """The time range to filter by.""" - timestamp: EventQueryTimestampInput - """The price per `quoteToken` at the time of the swap in the network's base token.""" - priceBaseToken: NumberFilter - """The total amount of `quoteToken` involved in the swap in the network's base token (`amountNonLiquidityToken` x `priceBaseToken`).""" - priceBaseTokenTotal: NumberFilter - """The price per `quoteToken` at the time of the swap in USD.""" - priceUsd: NumberFilter - """The total amount of `quoteToken` involved in the swap in USD (`amountNonLiquidityToken` x `priceUsd`).""" - priceUsdTotal: NumberFilter - """Specify the type of symbol you want to fetch values for (TOKEN | POOL)""" - symbolType: SymbolType - """When `true`, return the token's latest events across ALL of its pools instead of only its top pool. Requires `symbolType: TOKEN`, rejects `quoteToken`, and issues cursors that are not interchangeable with top-pool cursors. Slower. Available on the DEFINED plan only. Defaults to `false`.""" - crossPools: Boolean - """Only return events from this transaction (exact match; EVM hashes are matched case-insensitively). Applied inside the pair and time range scan, so pass the block timestamp as `timestamp { from, to }` (an equal `from` and `to` is inclusive) to keep the scan small.""" - transactionHash: String -} - -input MakerEventsQueryInput { - """The specific wallet address to filter by.""" - maker: String! - """The time range to filter by.""" - timestamp: EventQueryTimestampInput - """The network ID to filter by.""" - networkId: Int - """The total amount of `quoteToken` involved in the swap in USD (`amountNonLiquidityToken` x `priceUsd`).""" - priceUsdTotal: NumberFilter - """The specific event type to filter by.""" - eventType: EventType - """The token involved in the event.""" - tokenAddress: String -} - -"""Input type of `PairRanking`.""" -input PairRanking { - """The attribute to rank pairs by.""" - attribute: PairRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Input type of `NetworkRanking`.""" -input NetworkRanking { - """The attribute to rank networks by.""" - attribute: NetworkRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Input type of `LaunchpadRanking`.""" -input LaunchpadRanking { - """The attribute to rank launchpads by.""" - attribute: LaunchpadRankingAttribute! - """The direction to apply to the ranking attribute.""" - direction: RankingDirection - """The stats phase to rank by. Defaults to `combined`. Only valid for stats attributes, not funnel counts, rates, or `timestamp`.""" - phase: LaunchpadStatsPhase -} - -"""Event-specific data for a token transaction.""" -union EventData = BurnEventData | MintEventData | SwapEventData | PoolBalanceChangedEventData - -type BalancesResponse { - """The list of token balances that a wallet has.""" - items: [Balance!]! - """A cursor for use in pagination.""" - cursor: String -} - -input BalancesInput { - """The wallet address to filter by.""" - walletAddress: String - """The network IDs to filter by.""" - networks: [Int!] - """The token IDs (`address:networkId`) or addresses to request the balance for. Requires a list of `networks` if only passing addresses. Include native network balances using `native` as the token address. Only applied when using `walletAddress` (not `walletId`). Max 200 tokens.""" - tokens: [String!] - """Whether to include native network balances in the response (ID will be native:<networkId>). Requires a list of `networks`. Does not apply when using `tokens`. On networks where the native asset is also readable through an ERC-20 alias contract, the response counts that holding once: the native view is returned and the alias projection row is suppressed on every page; request the alias contract explicitly in `tokens`, or set `includeNative: false`, for the contract view.""" - includeNative: Boolean - """The maximum number of holdings to return. Does not apply when using `tokens`.""" - limit: Int - """A cursor for use in pagination.""" - cursor: String - """Whether to remove scam tokens from the response. Removes only tokens explicitly labelled as scams; unlabelled tokens are always kept. Clients wanting aggressive spam removal (e.g. by token symbol or liquidity) should filter client-side.""" - removeScams: Boolean - """The ID of the wallet (`walletAddress:networkId`).""" - walletId: String @deprecated(reason: "Use walletAddress and networkId instead") - """Optional token specifically request the balance for. Only works with `walletId`.""" - filterToken: String @deprecated(reason: "Use tokens list instead") - """The attribute to sort the list on. Defaults to BALANCE (raw token amount).""" - sortBy: BalancesSortAttribute - """The direction to sort the list. Defaults to DESC (highest value first).""" - sortDirection: RankingDirection - """Controls how uiBalance is expressed. SCALED returns the Token-2022 stored RPC UI amount, and multiplies B20 balances by their active multiplier. RAW removes the active Token-2022 UI amount multiplier and returns B20 balances unchanged. Defaults to SCALED.""" - uiAmountMode: UiAmountMode - """Keeps only holdings that match every filter set. A filtered page reads at most 600 of the wallet's holdings, so it can return fewer than `limit` results, or none, while `cursor` is still set; keep paging until `cursor` is null. Reuse a cursor only with the same `filters`. With `tokens`, name at most 200 token IDs across `networks`.""" - filters: BalanceFilters -} - -"""Filters for `balances`. Bounds can't be negative, and a range can't be empty.""" -input BalanceFilters { - """Keeps holdings whose `balanceUsd` is in range. Requires `sortBy: USD_VALUE` unless `tokens` is passed. A holding with no `balanceUsd` never matches.""" - balanceUsd: NumberFilter - """Keeps holdings whose `liquidityUsd` is in range. A holding with no `liquidityUsd` never matches, except native balances, which always match.""" - liquidityUsd: NumberFilter - """Keeps holdings that have a `tokenPriceUsd` when true, or that have none when false.""" - hasPrice: Boolean -} - -"""Wallet balance of a token.""" -type Balance { - """The ID of the wallet (`walletAddress:networkId`).""" - walletId: String! - """The ID of the token (`tokenAddress:networkId`).""" - tokenId: String! - """The wallet address.""" - address: String! - """The wallet network.""" - networkId: Int! - """The contract address of the token.""" - tokenAddress: String! - """The balance held by the wallet.""" - balance: String! - """The balance held by the wallet, adjusted by the number of decimals in the token.""" - shiftedBalance: Float! - """The wallet balance expressed for UI display. Defaults to shiftedBalance. For Token-2022 tokens, RAW divides out the active UI amount multiplier. For B20 asset tokens, SCALED multiplies by the active multiplier so the value reflects redeemable units rather than raw token count. IMPORTANT: that B20 adjustment is applied ONLY by the `balances` query, which is the one place a `uiAmountMode` is resolved. Every other source of a Balance — `holders`, `refreshBalances`, `primeBalance`, and the subscriptions — returns the raw `shiftedBalance` here, so the same holding can read differently across them. Display only: it does not share units with `tokenPriceUsd`, so do not multiply the two.""" - uiBalance: Float - """The balance held by the wallet in USD. Computed from `shiftedBalance`, NOT from `uiBalance` — for a B20 asset token those differ by the token's multiplier, so do not recompute this as `uiBalance * tokenPriceUsd`.""" - balanceUsd: String - """The token price in USD, per raw token — the same units as `shiftedBalance`. For a B20 asset token this does NOT pair with `uiBalance`, which is multiplier-adjusted; multiplying the two over-counts by the multiplier. Use `balanceUsd` for position value.""" - tokenPriceUsd: String - """The time that this address first held a token.""" - firstHeldTimestamp: Int - """The block number at which this balance was last updated. Null when the block is unknown (e.g. native balances) or the underlying balance record cannot be found.""" - updatedAtBlock: Int - """Metadata for the token.""" - token: EnhancedToken - """The token's liquidity in USD. On networks where the real-money total is enabled, this is `totalLiquidityUsd` from `filterTokens`: the combined liquidity of its 15 deepest pools, leaving out pools with no trade in the last 7 days, where each pool counts only the real money the token can reach in one or two trades into the network's pricing reference tokens (such as its main stablecoins), with each route counted once. Elsewhere, or until that total is computed for the token, it is the token's route-backed liquidity, summed across its pairs with valid routing liquidity; quote assets (a network's base token and stablecoins) have no route of their own, so they report pool liquidity instead. Null when this stat has not been computed for the token yet.""" - liquidityUsd: String - """Unix timestamp (seconds) of the token's most recent trade/market event across all pools we track. Token-level (not specific to this wallet). Useful for filtering out dead/worthless tokens, e.g. no activity in months.""" - tokenLastTradedTimestamp: Int - """Identity and profile metadata for the wallet holding this balance. Not always available.""" - wallet: Wallet - """The economic asset this balance is a view of (`tokenAddress:networkId`). On networks where one holding is readable through a native interface and an ERC-20 alias contract, both views share this id. Null elsewhere.""" - assetId: String - """The number of decimals `balance` is expressed in for this view. A native view reports the native precision (18 on such networks); a contract view reports the alias contract's decimals (6). `token.decimals` remains the contract's metadata. Null elsewhere.""" - balanceDecimals: Int - """True when this row is the ERC-20 alias projection (a same-block floor of the native holding, in `balanceDecimals`) rather than the authoritative native view; false for the native view. Null elsewhere.""" - isBalanceAlias: Boolean -} - -"""Response returned by `holders`.""" -type HoldersResponse { - """The list of wallets holding the token.""" - items: [Balance!]! - """The unique count of holders for the token.""" - count: Int! - """A cursor for use in pagination.""" - cursor: String - """Status of holder. Disabled if on unsupported network or there is insufficient holder data.""" - status: HoldersStatus! - """What percentage of the total supply do the top 10 holders hold.""" - top10HoldersPercent: Float -} - -input HoldersInputSort { - """The attribute to sort the list on""" - attribute: HoldersSortAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -input HoldersInput { - """The ID of the token (`tokenAddress:networkId`).""" - tokenId: String! - """The maximum number of holders to return. Default is 50, maximum is 200.""" - limit: Int - """A cursor for use in pagination.""" - cursor: String - """The attribute to sort the list on""" - sort: HoldersInputSort - """When true, filters out known LP pairs and burn addresses. Defaults to false.""" - filterContracts: Boolean -} - -"""Third party token data sourced from off chain.""" -type ExplorerTokenData { - """The ID of the token (`address:networkId`).""" - id: String! - """Whether the token has been verified on CoinGecko.""" - blueCheckmark: Boolean - """A description of the token.""" - description: String - """The precision to which the token can be divided.""" - divisor: String - """The token price in USD.""" - tokenPriceUSD: String - """The token type.""" - tokenType: String -} - -"""Where a launchpad token's creator fees go.""" -enum FeeMode { - """Creator fees go to the token's creator.""" - CREATOR_FEE - """Creator fees are paid back to traders as cashback.""" - CASHBACK - """Creator fees are paid to the token's holders.""" - HOLDER_REWARDS -} - -type LaunchpadData { - """The name of the launchpad.""" - name: String @deprecated(reason: "Use launchpadName instead") - """The name of the launchpad.""" - launchpadName: String - """The percentage of the pool that was sold to the public.""" - graduationPercent: Float - """The address of the pool.""" - poolAddress: String - """The unix timestamp when the launchpad was completed.""" - completedAt: Int - """Indicates if the launchpad is completed.""" - completed: Boolean - """The slot number when the launchpad was completed.""" - completedSlot: Int - """The slot number when the launchpad was migrated.""" - migratedSlot: Int - """The unix timestamp when the launchpad was migrated.""" - migratedAt: Int - """Indicates if the launchpad was migrated.""" - migrated: Boolean - """The pool address after the launchpad was migrated.""" - migratedPoolAddress: String - """The launchpad protocol.""" - launchpadProtocol: String - """The icon URL of the launchpad.""" - launchpadIconUrl: String - """Whether cashback is enabled for this launchpad token (Pump V1/V2 only).""" - isCashbackEnabled: Boolean @deprecated(reason: "Use feeModes instead; CASHBACK is in feeModes when cashback is enabled") - """Where this launchpad token's creator fees go (Pump and PumpAmm only). Pump tokens have exactly one mode. Not set for Pump tokens whose curve predates the cashback fields.""" - feeModes: [FeeMode!] - """The holder-reward fee rate in basis points. Null when the launchpad's default fee schedule applies. Read when the token's metadata was fetched; may be stale if the creator can edit the fee.""" - holderRewardFeeBps: Int - """The mint of the token holder rewards are paid in.""" - holderRewardQuoteMint: String - """The token category assigned by the launchpad. Populated by launchpads that publish a category taxonomy (e.g. Scale/Creator, Eitherway). Values include platform, meme, utility, etc.""" - category: String -} - -"""Wallet pattern data showing suspicious or notable wallet activity for a token.""" -type TokenWalletActivity { - """The number of bundler wallets that hold this token.""" - bundlerCount: Int! - """The percentage of token supply held by bundler wallets.""" - bundlerHeldPercentage: Float! - """The percentage of token supply held by developer/creator wallet.""" - devHeldPercentage: Float! - """The number of insider wallets that hold this token.""" - insiderCount: Int! - """The percentage of token supply held by insider wallets.""" - insiderHeldPercentage: Float! - """The number of sniper wallets that hold this token.""" - sniperCount: Int! - """The percentage of token supply held by sniper wallets.""" - sniperHeldPercentage: Float! - """The number of suspicious wallets — the deduplicated union of snipers, bundlers, and insiders — that hold this token.""" - suspiciousCount: Int! - """The percentage of token supply held by suspicious wallets (deduplicated union of snipers, bundlers, and insiders).""" - suspiciousHeldPercentage: Float! -} - -"""Metadata for a token.""" -type TokenInfo { - """Uniquely identifies the token.""" - id: String! - """The contract address of the token.""" - address: String! - """The circulating supply of the token.""" - circulatingSupply: String - """The token ID on CoinMarketCap.""" - cmcId: Int - """The Grid asset ID, if this token is linked to a Grid asset.""" - gridAssetId: String - """The Grid bluechip rating for this token (e.g. `A+`, `B-`).""" - bluechipRating: String - """Whether the token has been flagged as a scam.""" - isScam: Boolean - """The token name. For example, `ApeCoin`.""" - name: String - """The network ID the token is deployed on.""" - networkId: Int! - """The token symbol. For example, `APE`.""" - symbol: String! - """The total supply of the token.""" - totalSupply: String - """The thumbhash of the token logo.""" - imageThumbHash: String - """The thumbnail token logo URL.""" - imageThumbUrl: String - """The small token logo URL.""" - imageSmallUrl: String - """The large token logo URL.""" - imageLargeUrl: String - """The token banner URL.""" - imageBannerUrl: String - """The original URL/URI for the video associated with the token.""" - videoExternalUrl: String - """A description of the token.""" - description: String -} - -"""A URL associated with a Grid organization.""" -type OrganizationUrl { - """The URL.""" - url: String! - """The type of URL (e.g. `website`, `docs`).""" - type: String -} - -"""A social link associated with a Grid organization.""" -type OrganizationSocial { - """The social URL.""" - url: String! - """The type of social link (e.g. `twitter`, `discord`).""" - type: String -} - -"""A Grid organization — the entity behind one or more on-chain assets.""" -type Organization { - """The organization name.""" - name: String! - """The founding date of the organization.""" - foundingDate: String - """A short description of the organization.""" - descriptionShort: String - """A detailed description of the organization.""" - descriptionLong: String - """The organization's tagline.""" - tagLine: String - """The type of organization (e.g. `protocol`, `company`).""" - type: String - """The sector the organization operates in.""" - sector: String - """URLs associated with the organization.""" - urls: [OrganizationUrl!]! - """Social links for the organization.""" - socials: [OrganizationSocial!]! - """The organization's logo URL.""" - logo: String - """The organization's icon URL.""" - icon: String - header: String - """The Grid root ID for the organization.""" - rootId: String! - """Assets managed by this organization.""" - assets: [Asset!]! -} - -"""A Grid asset — a canonical representation of an on-chain token or instrument.""" -type Asset { - """The Grid asset ID.""" - id: String! - """The asset name.""" - name: String - """A description of the asset.""" - description: String - """The asset ticker symbol.""" - ticker: String - """The asset type (e.g. `token`, `stablecoin`).""" - type: String - """The asset status.""" - status: String - """The asset icon URL.""" - icon: String - """The Grid root ID for the parent organization.""" - rootId: String! - """Deployments of this asset across chains.""" - assetDeployments: [AssetDeployment!]! -} - -"""A deployment of a Grid asset on a specific chain.""" -type AssetDeployment { - """The deployment ID.""" - id: String! - """The network ID the asset is deployed on.""" - networkId: Int! - """The contract address of the deployment.""" - address: String! - """The token standard (e.g. `ERC20`, `SPL`).""" - standard: String - """The Grid asset ID.""" - assetId: String! - """The Grid root ID for the parent organization.""" - rootId: String! - """The enhanced token this deployment represents. Its `asset` and `organization` are always null, so deployments cannot be traversed recursively.""" - token: EnhancedToken -} - -"""String metrics for detailed stats.""" -type DetailedStatsStringMetrics { - """The percent change between the `currentValue` and `previousValue`. Decimal format.""" - change: Float! - """The total value for the most recent window.""" - currentValue: String! - """The total value for the previous window.""" - previousValue: String! - """The list of aggregated values for each bucket.""" - buckets: [String]! -} - -"""Number metrics for detailed stats.""" -type DetailedStatsNumberMetrics { - """The percent change between the `currentValue` and `previousValue`. Decimal format.""" - change: Float! - """The total value for the most recent window.""" - currentValue: Int! - """The total value for the previous window.""" - previousValue: Int! - """The list of aggregated values for each bucket.""" - buckets: [Int]! -} - -"""The start/end timestamp for a given bucket within the window.""" -type DetailedStatsBucketTimestamp { - """The unix timestamp for the start of the bucket.""" - start: Int! - """The unix timestamp for the start of the bucket.""" - end: Int! -} - -"""Detailed stats over a window.""" -type WindowedDetailedStats { - """The window size used to request detailed stats.""" - windowSize: DetailedStatsWindowSize! - """The unix timestamp for the start of the window.""" - timestamp: Int! - """The unix timestamp for the end of the window.""" - endTimestamp: Int! - """The list of start/end timestamps broken down for each bucket within the window.""" - buckets: [DetailedStatsBucketTimestamp]! - """The transaction count over the window.""" - transactions: DetailedStatsNumberMetrics! - """The volume over the window.""" - volume: DetailedStatsStringMetrics! - """The number of buys over the window.""" - buys: DetailedStatsNumberMetrics! - """The number of sells over the window.""" - sells: DetailedStatsNumberMetrics! - """The number of unique buyers over the window.""" - buyers: DetailedStatsNumberMetrics! - """The number of unique sellers over the window.""" - sellers: DetailedStatsNumberMetrics! - """The number of unique traders over the window.""" - traders: DetailedStatsNumberMetrics - """The buy volume over the window.""" - buyVolume: DetailedStatsStringMetrics - """The sell volume over the window.""" - sellVolume: DetailedStatsStringMetrics -} - -"""Detailed stats for a token within a pair.""" -type DetailedStats { - """The ID of the pair (`pairAddress:networkId`).""" - pairId: String! - """The token of interest used to calculate token-specific stats.""" - tokenOfInterest: TokenOfInterest! - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType! - """The breakdown of stats over a 5 minute window.""" - stats_min5: WindowedDetailedStats - """The breakdown of stats over an hour window.""" - stats_hour1: WindowedDetailedStats - """The breakdown of stats over a 4 hour window.""" - stats_hour4: WindowedDetailedStats - """The breakdown of stats over a 12 hour window.""" - stats_hour12: WindowedDetailedStats - """The breakdown of stats over a 24 hour window.""" - stats_day1: WindowedDetailedStats -} - -"""Detailed stats for a token within a pair.""" -type DetailedPairStats { - """The contract address of the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The token of interest used to calculate token-specific stats.""" - tokenOfInterest: TokenOfInterest - """The unix timestamp for the last transaction to happen on the pair.""" - lastTransaction: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType! - """The breakdown of stats over a 5 minute window.""" - stats_min5: WindowedDetailedPairStats - """The breakdown of stats over a 15 minute window.""" - stats_min15: WindowedDetailedPairStats - """The breakdown of stats over an hour window.""" - stats_hour1: WindowedDetailedPairStats - """The breakdown of stats over a 4 hour window.""" - stats_hour4: WindowedDetailedPairStats - """The breakdown of stats over a 12 hour window.""" - stats_hour12: WindowedDetailedPairStats - """The breakdown of stats over a 24 hour window.""" - stats_day1: WindowedDetailedPairStats - """The breakdown of stats over a 7 day window.""" - stats_week1: WindowedDetailedPairStats - """The breakdown of stats over a 30 day window.""" - stats_day30: WindowedDetailedPairStats - """Number of aggregated buckets specified in input""" - bucketCount: Int - """The timestamp specified as input to the query""" - queryTimestamp: Int - pair: Pair -} - -"""Detailed stats for a token.""" -type DetailedTokenStats { - """The ID of the token (`tokenAddress:networkId`).""" - tokenId: String! - """The contract address of the token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The unix timestamp for the last event to happen on the token.""" - lastTransactionAt: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType! - """The breakdown of stats over a 5 minute window.""" - stats_min5: WindowedDetailedTokenStats - """The breakdown of stats over an hour window.""" - stats_hour1: WindowedDetailedTokenStats - """The breakdown of stats over a 4 hour window.""" - stats_hour4: WindowedDetailedTokenStats - """The breakdown of stats over a 12 hour window.""" - stats_hour12: WindowedDetailedTokenStats - """The breakdown of stats over a 24 hour window.""" - stats_day1: WindowedDetailedTokenStats - """Number of aggregated buckets specified in input""" - bucketCount: Int - """The timestamp specified as input to the query""" - queryTimestamp: Int -} - -"""String metrics for detailed pair stats.""" -type DetailedPairStatsStringMetrics { - """The percent change between the `currentValue` and `previousValue`. Decimal format.""" - change: Float - """The total value for the most recent duration.""" - currentValue: String - """The total value for the previous duration.""" - previousValue: String - """The list of aggregated values for each bucket.""" - buckets: [String]! -} - -"""Number metrics for detailed pair stats.""" -type DetailedPairStatsNumberMetrics { - """The percent change between the `currentValue` and `previousValue`. Decimal format.""" - change: Float - """The total value for the most recent duration.""" - currentValue: Int - """The total value for the previous duration.""" - previousValue: Int - """The list of aggregated values for each bucket.""" - buckets: [Int]! -} - -"""The start/end timestamp for a given bucket within the window.""" -type DetailedPairStatsBucketTimestamp { - """The unix timestamp for the start of the bucket.""" - start: Int! - """The unix timestamp for the start of the bucket.""" - end: Int! -} - -"""Numerical stats for a pair over a time frame.""" -type WindowedDetailedNonCurrencyPairStats { - """The transaction count over the time frame.""" - transactions: DetailedPairStatsNumberMetrics - """The number of buys over the time frame.""" - buys: DetailedPairStatsNumberMetrics - """The number of sells over the time frame.""" - sells: DetailedPairStatsNumberMetrics - """The number of unique traders over the time frame.""" - traders: DetailedPairStatsNumberMetrics - """The number of unique buyers over the time frame.""" - buyers: DetailedPairStatsNumberMetrics - """The number of unique sellers over the time frame.""" - sellers: DetailedPairStatsNumberMetrics -} - -"""Price stats for a pair over a time frame.""" -type WindowedDetailedCurrencyPairStats { - """The volume over the time frame.""" - volume: DetailedPairStatsStringMetrics - """The buy volume over the time frame.""" - buyVolume: DetailedPairStatsStringMetrics - """The sell volume over the time frame.""" - sellVolume: DetailedPairStatsStringMetrics - """The opening price for the time frame.""" - open: DetailedPairStatsStringMetrics - """The highest price in USD in the time frame.""" - highest: DetailedPairStatsStringMetrics - """The lowest price in USD in the time frame.""" - lowest: DetailedPairStatsStringMetrics - """The closing price forr the time frame.""" - close: DetailedPairStatsStringMetrics - """The liquidity for the time frame.""" - liquidity: DetailedPairStatsStringMetrics -} - -"""Detailed pair stats over a time frame.""" -type WindowedDetailedPairStats { - """The duration used to request detailed pair stats.""" - duration: DetailedPairStatsDuration! - """The unix timestamp for the start of the window.""" - start: Int! - """The unix timestamp for the end of the window.""" - end: Int! - """The list of start/end timestamps broken down for each bucket within the window.""" - timestamps: [DetailedPairStatsBucketTimestamp]! - """The currency stats in USD, such as volume.""" - statsUsd: WindowedDetailedCurrencyPairStats! - """The numerical stats, such as number of buyers.""" - statsNonCurrency: WindowedDetailedNonCurrencyPairStats! -} - -"""Detailed token stats over a time frame.""" -type WindowedDetailedTokenStats { - """The duration used to request detailed token stats.""" - duration: DetailedTokenStatsDuration! - """The unix timestamp for the start of the window.""" - start: Int! - """The unix timestamp for the end of the window.""" - end: Int! - """The list of start/end timestamps broken down for each bucket within the window.""" - timestamps: [DetailedPairStatsBucketTimestamp]! - """The currency stats in USD, such as volume.""" - statsUsd: WindowedDetailedCurrencyPairStats! - """The numerical stats, such as number of buyers.""" - statsNonCurrency: WindowedDetailedNonCurrencyPairStats! -} - -"""Response returned by `getSymbol`.""" -type SymbolResponse { - """The currencyCode argument passed in (`TOKEN` or `USD`).""" - currency_code: String! - """The trading pair. If currencyCode is TOKEN, the base token will be used, otherwise USD.""" - description: String! - """The symbols of the pair.""" - name: String! - """The base token symbol.""" - original_currency_code: String! - """10^n, where n is the number of decimal places the price has. Max 16. Used for charting.""" - pricescale: Float! - """The ID of the pair (`address:networkId`).""" - ticker: String! - """The list of time frames supported for the symbol in other charting endpoints, eg. getBars.""" - supported_resolutions: [String!]! -} - -"""Response returned by `getNetworkStats`.""" -type GetNetworkStatsResponse { - """The network trade volume in USD over the past 24 hours.""" - volume24: Float! - """The network trade volume in USD over the past 12 hours.""" - volume12: Float! - """The network trade volume in USD over the past 4 hours.""" - volume4: Float! - """The network trade volume in USD over the past hour.""" - volume1: Float! - """The network trade volume in USD over the past 5 minutes.""" - volume5m: Float! - """The network trade volume change over the last 24 hours""" - volumeChange24: Float! - """The network trade volume change over the last 12 hours""" - volumeChange12: Float! - """The network trade volume change over the last 4 hours""" - volumeChange4: Float! - """The network trade volume change over the last hour""" - volumeChange1: Float! - """The network trade volume change over the last 5 minutes""" - volumeChange5m: Float! - """The network liquidity in USD.""" - liquidity: Float! - """The number of DEX swaps in the past 24 hours, not unique transactions.""" - transactions24: Int! @deprecated(reason: "Use swaps24 instead") - """The number of DEX swaps in the past 12 hours, not unique transactions.""" - transactions12: Int! @deprecated(reason: "Use swaps12 instead") - """The number of DEX swaps in the past 4 hours, not unique transactions.""" - transactions4: Int! @deprecated(reason: "Use swaps4 instead") - """The number of DEX swaps in the past hour, not unique transactions.""" - transactions1: Int! @deprecated(reason: "Use swaps1 instead") - """The number of DEX swaps in the past 5 minutes, not unique transactions.""" - transactions5m: Int! @deprecated(reason: "Use swaps5m instead") - """The number of DEX swaps in the past 24 hours. A trade routed through two pools counts as two swaps.""" - swaps24: Int! - """The number of DEX swaps in the past 12 hours. A trade routed through two pools counts as two swaps.""" - swaps12: Int! - """The number of DEX swaps in the past 4 hours. A trade routed through two pools counts as two swaps.""" - swaps4: Int! - """The number of DEX swaps in the past hour. A trade routed through two pools counts as two swaps.""" - swaps1: Int! - """The number of DEX swaps in the past 5 minutes. A trade routed through two pools counts as two swaps.""" - swaps5m: Int! -} - -"""Input for `getNetworkBars`.""" -input NetworkBarsInput { - """The ID of the network.""" - networkId: Int! - """The time frame of each bar.""" - resolution: NetworkBarsResolution! - """The unix timestamp for the start of the requested range. The bar that holds it is the first returned.""" - from: Int! - """The unix timestamp for the end of the requested range. The bar that holds it is the last returned. The range can hold at most 200 bars.""" - to: Int! -} - -"""The time frame of a bar returned by `getNetworkBars`.""" -enum NetworkBarsResolution { - """One hour.""" - hour1 - """One UTC day. A day has a bar once all 24 of its hours have one.""" - day1 -} - -"""Response returned by `getNetworkBars`.""" -type NetworkBarsResponse { - """The ID of the network.""" - networkId: Int! - """The time frame of each bar.""" - resolution: NetworkBarsResolution! - """The bars, oldest first. An hour or day Codex didn't record has no bar. History starts on 2026-11-06.""" - bars: [NetworkBar!]! -} - -"""A network's stats over one hour or one UTC day.""" -type NetworkBar { - """The unix timestamp for the start of the bar.""" - timestamp: Int! - """The network trade volume in USD over the bar.""" - volumeUsd: String! - """The number of DEX swaps over the bar. A trade routed through two pools counts as two swaps.""" - swaps: Int! - """The number of transactions on the chain over the bar, failed ones included. Null if the network wasn't counted for the whole bar.""" - chainTransactions: Int - """The number of DEX trades over the bar. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades: Int - """The number of new tokens over the bar, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated: Int - """The number of distinct wallets that made DEX trades over the bar. Null if they couldn't be counted, on hourly bars before 2026-11-07 21:00 UTC and on daily bars before 2026-11-07.""" - traders: Int - """The number of distinct wallets that made DEX trades in the 24 hours to the end of the bar. Null like `traders`.""" - traders24h: Int - """The number of tokens Codex indexes that swapped over the bar. Null like `traders`. Hourly bars before 2026-11-09 15:00 UTC and daily bars before 2026-11-09 also count tokens whose pools only had liquidity added or removed.""" - tokensTraded: Int - """The number of tokens Codex indexes that swapped in the 24 hours to the end of the bar, counted like `tokensTraded`. Null like `traders`.""" - tokensTraded24h: Int - """The number of launchpad tokens whose bonding curve completed over the bar. Null if they couldn't be counted, on hourly bars before 2026-11-09 20:00 UTC and on daily bars before 2026-11-10.""" - tokensGraduated: Int - """The share of tokens created 24 to 48 hours before the end of the bar that swapped in the 24 hours to its end, from 0 to 1. On a daily bar, that's the share of the previous day's new tokens that traded on the bar's day. Null if the tokens couldn't be counted or none were created, on hourly bars before 2026-11-09 20:00 UTC and on daily bars before 2026-11-09.""" - tokenSurvivalRate24h: Float - """The total network liquidity in USD at the end of the bar.""" - liquidityUsd: String! - """The total supply of USD stablecoins on the network at the end of the bar, at $1 a token. Includes tokens locked in bridges and tokens an issuer holds but hasn't issued. Null on networks without a listed stablecoin, if the supply couldn't be read, and for Sui, Aptos and Starknet before 2026-11-07.""" - stablecoinSupplyUsd: String -} - -"""Event data for a token burn event.""" -type BurnEventData { - """The amount of `token0` removed from the pair.""" - amount0: String - """The amount of `token1` removed from the pair.""" - amount1: String - """The amount of `token0` removed from the pair, adjusted by the number of decimals in the token. For example, if `amount0` is in WEI, `amount0Shifted` will be in ETH.""" - amount0Shifted: String - """The amount of `token1` removed from the pair, adjusted by the number of decimals in the token. For example, USDC `amount1Shifted` will be by 6 decimals.""" - amount1Shifted: String - """The lower tick boundary of the position. Only applicable for UniswapV3 events.""" - tickLower: String - """The upper tick boundary of the position. Only applicable for UniswapV3 events.""" - tickUpper: String - """The type of token event, `Burn`.""" - type: EventType! -} - -"""Event data for a token mint event.""" -type MintEventData { - """The amount of `token0` added to the pair.""" - amount0: String - """The amount of `token1` added to the pair.""" - amount1: String - """The amount of `token0` added to the pair, adjusted by the number of decimals in the token. For example, if `amount0` is in WEI, `amount0Shifted` will be in ETH.""" - amount0Shifted: String - """The amount of `token1` added to the pair, adjusted by the number of decimals in the token. For example, USDC `amount1Shifted` will be by 6 decimals.""" - amount1Shifted: String - """The lower tick boundary of the position. Only applicable for UniswapV3 events.""" - tickLower: String - """The upper tick boundary of the position. Only applicable for UniswapV3 events.""" - tickUpper: String - """The type of token event, `Mint`.""" - type: EventType! -} - -"""Event data for a token swap event.""" -type SwapEventData { - """The amount of `token0` involved in the swap. Only applicable for UniswapV3 events.""" - amount0: String - """The amount of `token0` that was sold. Only applicable for UniswapV2 events.""" - amount0In: String - """The amount of `token0` that was bought. Only applicable for UniswapV2 events.""" - amount0Out: String - """The amount of `token1` involved in the swap. Only applicable for UniswapV3 events.""" - amount1: String - """The amount of `token1` that was sold. Only applicable for UniswapV2 events.""" - amount1In: String - """The amount of `token1` that was bought. Only applicable for UniswapV2 events.""" - amount1Out: String - """The amount of `quoteToken` involved in the swap. For example, if `quoteToken` is USDC for a USDC/WETH pair, `amountNonLiquidityToken` would be the amount of USDC involved in the swap.""" - amountNonLiquidityToken: String - """The price per `quoteToken` at the time of the swap in the network's base token. For example, if `quoteToken` is USDC for a USDC/WETH pair on ETH network, `priceBaseToken` would the price of USDC in ETH.""" - priceBaseToken: String - """The total amount of `quoteToken` involved in the swap in the network's base token (`amountNonLiquidityToken` x `priceBaseToken`).""" - priceBaseTokenTotal: String - """The price per `quoteToken` at the time of the swap in USD. For example, if `quoteToken` is USDC for a USDC/WETH pair on ETH network, `priceBaseToken` would the price of USDC in USD ($1.00).""" - priceUsd: String - """The total amount of `quoteToken` involved in the swap in USD (`amountNonLiquidityToken` x `priceUsd`).""" - priceUsdTotal: String - """The tick index that the swap occurred in. Only applicable for UniswapV3 events.""" - tick: String - """The type of token event, `Swap`.""" - type: EventType! -} - -"""Event data for a token swap event.""" -type UnconfirmedSwapEventData { - """The amount of `quoteToken` involved in the swap. For example, if `quoteToken` is USDC for a USDC/WETH pair, `amountNonLiquidityToken` would be the amount of USDC involved in the swap.""" - amountNonLiquidityToken: String - """The price per `quoteToken` at the time of the swap in the network's base token. For example, if `quoteToken` is USDC for a USDC/WETH pair on ETH network, `priceBaseToken` would the price of USDC in ETH.""" - priceBaseToken: String - """The total amount of `quoteToken` involved in the swap in the network's base token (`amountNonLiquidityToken` x `priceBaseToken`).""" - priceBaseTokenTotal: String - """The price per `quoteToken` at the time of the swap in USD. For example, if `quoteToken` is USDC for a USDC/WETH pair on ETH network, `priceBaseToken` would the price of USDC in USD ($1.00).""" - priceUsd: String - """The total amount of `quoteToken` involved in the swap in USD (`amountNonLiquidityToken` x `priceUsd`).""" - priceUsdTotal: String - """The type of token event, `Swap`.""" - type: EventType! - """The amount of `baseToken` involved in the swap""" - amountBaseToken: String -} - -"""Event data for a token liquidity change event.""" -type UnconfirmedLiquidityChangeEventData { - """The amount of `token0` added or removed from the pair.""" - amount0: String - """The amount of `token1` added or removed from the pair.""" - amount1: String - """The amount of `token0` added or removed from the pair, adjusted by the number of decimals in the token. For example, if `amount0` is in WEI, `amount0Shifted` will be in ETH.""" - amount0Shifted: String - """The amount of `token1` added or removed from the pair, adjusted by the number of decimals in the token. For example, USDC `amount1Shifted` will be by 6 decimals.""" - amount1Shifted: String - """The type of token event, `Mint` or 'Burn'.""" - type: EventType! -} - -"""Event data for a BalancerV2 Pool Balance Changed event.""" -type PoolBalanceChangedEventData { - """The amount of `token0` added or removed from the pair.""" - amount0: String - """The amount of `token1` added or from the pair.""" - amount1: String - """The amount of `token0` added or removed from the pair, adjusted by the number of decimals in the token. For example, if `amount0` is in WEI, `amount0Shifted` will be in ETH.""" - amount0Shifted: String - """The amount of `token1` added or removed from the pair, adjusted by the number of decimals in the token. For example, USDC `amount1Shifted` will be by 6 decimals.""" - amount1Shifted: String - """The address of `token0` in the pair.""" - token0: String - """The address of `token1` in the pair.""" - token1: String - """The address of account that added or removed liquidity.""" - sender: String - """The amount of token0 captured by the protocol.""" - protocolFeeAmount0: String - """The amount of token1 captured by the protocol.""" - protocolFeeAmount1: String - """The amount of token0 now in the pool.""" - liquidity0: String - """The amount of token1 now in the pool.""" - liquidity1: String - """The type of token event, `Burn`.""" - type: EventType! -} - -"""Response returned by `filterExchanges`.""" -type ExchangeFilterConnection { - """The list of exchanges matching the filter parameters.""" - results: [ExchangeFilterResult] - """The number of exchanges returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""Response returned by `getTokenEvents`.""" -type EventConnection { - """A list of transactions for a token's top pair.""" - items: [Event] - """A cursor for use in pagination. If non-null, more results are available; pages may be empty due to filtering.""" - cursor: String -} - -"""Response returned by `getTokenEventsForMaker`.""" -type MakerEventConnection { - """A list of transactions for a token's top pair.""" - items: [Event] - """A cursor for use in pagination. If non-null, more results are available; pages may be empty due to filtering.""" - cursor: String -} - -"""Response returned by `tokenLifecycleEvents`.""" -type TokenLifecycleEventConnection { - """A list of transactions for a token's top pair.""" - items: [TokenLifecycleEvent]! - """A cursor for use in pagination. If non-null, more results are available; pages may be empty due to filtering.""" - cursor: String -} - -"""Response returned by `filterPairs`.""" -type PairFilterConnection { - """The list of pairs matching the filter parameters.""" - results: [PairFilterResult] - """The number of pairs returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""A network matching a set of filter parameters.""" -type NetworkFilterResult { - """The ID of the network.""" - networkId: Int! - """The name of the network.""" - networkName: String - """The short name of the network.""" - networkShortName: String - """The URL for the network's icon.""" - networkIconUrl: String - """Whether the network is a mainnet.""" - mainnet: Boolean - """The unix timestamp for when the network stats were last updated.""" - timestamp: Int - """The total network liquidity in USD.""" - liquidity: String - """The network trade volume in USD in the past 5 minutes.""" - volume5m: String - """The network trade volume in USD in the past hour.""" - volume1: String - """The network trade volume in USD in the past 4 hours.""" - volume4: String - """The network trade volume in USD in the past 12 hours.""" - volume12: String - """The network trade volume in USD in the past 24 hours.""" - volume24: String - """The percent volume change in the past 5 minutes. Decimal format.""" - volumeChange5m: Float - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: Float - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: Float - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: Float - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: Float - """The number of DEX swaps in the past 5 minutes, not chain transactions.""" - transactions5m: Int @deprecated(reason: "Use swaps5m instead") - """The number of DEX swaps in the past hour, not chain transactions.""" - transactions1: Int @deprecated(reason: "Use swaps1 instead") - """The number of DEX swaps in the past 4 hours, not chain transactions.""" - transactions4: Int @deprecated(reason: "Use swaps4 instead") - """The number of DEX swaps in the past 12 hours, not chain transactions.""" - transactions12: Int @deprecated(reason: "Use swaps12 instead") - """The number of DEX swaps in the past 24 hours, not chain transactions.""" - transactions24: Int @deprecated(reason: "Use swaps24 instead") - """The number of DEX swaps in the past 5 minutes. A trade routed through two pools counts as two swaps.""" - swaps5m: Int - """The number of DEX swaps in the past hour. A trade routed through two pools counts as two swaps.""" - swaps1: Int - """The number of DEX swaps in the past 4 hours. A trade routed through two pools counts as two swaps.""" - swaps4: Int - """The number of DEX swaps in the past 12 hours. A trade routed through two pools counts as two swaps.""" - swaps12: Int - """The number of DEX swaps in the past 24 hours. A trade routed through two pools counts as two swaps.""" - swaps24: Int - """The number of transactions on the chain in the past 5 minutes, failed ones included. Null until the network has been counted for the whole window.""" - chainTransactions5m: Int - """The number of transactions on the chain in the past hour, failed ones included. Null until the network has been counted for the whole window.""" - chainTransactions1: Int - """The number of transactions on the chain in the past 4 hours, failed ones included. Null until the network has been counted for the whole window.""" - chainTransactions4: Int - """The number of transactions on the chain in the past 12 hours, failed ones included. Null until the network has been counted for the whole window.""" - chainTransactions12: Int - """The number of transactions on the chain in the past 24 hours, failed ones included. Null until the network has been counted for the whole window.""" - chainTransactions24: Int - """The number of DEX trades on the network in the past 5 minutes. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades5m: Int - """The number of DEX trades on the network in the past hour. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades1: Int - """The number of DEX trades on the network in the past 4 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades4: Int - """The number of DEX trades on the network in the past 12 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades12: Int - """The number of DEX trades on the network in the past 24 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps. Null if the trades couldn't be counted.""" - trades24: Int - """The number of new tokens on the network in the past 5 minutes, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated5m: Int - """The number of new tokens on the network in the past hour, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated1: Int - """The number of new tokens on the network in the past 4 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated4: Int - """The number of new tokens on the network in the past 12 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated12: Int - """The number of new tokens on the network in the past 24 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not. Null if the tokens couldn't be counted.""" - tokensCreated24: Int - """The number of distinct wallets that made DEX trades on the network in the past 5 minutes. Null if the trades couldn't be counted.""" - traders5m: Int - """The number of distinct wallets that made DEX trades on the network in the past hour. Null if the trades couldn't be counted.""" - traders1: Int - """The number of distinct wallets that made DEX trades on the network in the past 4 hours. Null if the trades couldn't be counted.""" - traders4: Int - """The number of distinct wallets that made DEX trades on the network in the past 12 hours. Null if the trades couldn't be counted.""" - traders12: Int - """The number of distinct wallets that made DEX trades on the network in the past 24 hours. Null if the trades couldn't be counted.""" - traders24: Int - """The number of tokens traded on the network in the past 5 minutes: tokens Codex indexes whose last trade falls in the window. Null if the tokens couldn't be counted.""" - tokensTraded5m: Int - """The number of tokens traded on the network in the past hour: tokens Codex indexes whose last trade falls in the window. Null if the tokens couldn't be counted.""" - tokensTraded1: Int - """The number of tokens traded on the network in the past 4 hours: tokens Codex indexes whose last trade falls in the window. Null if the tokens couldn't be counted.""" - tokensTraded4: Int - """The number of tokens traded on the network in the past 12 hours: tokens Codex indexes whose last trade falls in the window. Null if the tokens couldn't be counted.""" - tokensTraded12: Int - """The number of tokens traded on the network in the past 24 hours: tokens Codex indexes whose last trade falls in the window. Null if the tokens couldn't be counted.""" - tokensTraded24: Int - """The number of launchpad tokens on the network whose bonding curve completed in the past 5 minutes, counted by completion time. Null if the tokens couldn't be counted.""" - tokensGraduated5m: Int - """The number of launchpad tokens on the network whose bonding curve completed in the past hour, counted by completion time. Null if the tokens couldn't be counted.""" - tokensGraduated1: Int - """The number of launchpad tokens on the network whose bonding curve completed in the past 4 hours, counted by completion time. Null if the tokens couldn't be counted.""" - tokensGraduated4: Int - """The number of launchpad tokens on the network whose bonding curve completed in the past 12 hours, counted by completion time. Null if the tokens couldn't be counted.""" - tokensGraduated12: Int - """The number of launchpad tokens on the network whose bonding curve completed in the past 24 hours, counted by completion time. Null if the tokens couldn't be counted.""" - tokensGraduated24: Int - """The number of new tokens on the network created 24 to 48 hours ago, counted like `tokensCreated24`. Null if the tokens couldn't be counted.""" - tokensCreatedPrev24: Int - """Of the tokens created 24 to 48 hours ago, the number that swapped in the past 24 hours. Null if the tokens couldn't be counted.""" - tokensSurvived24: Int - """The share of tokens created 24 to 48 hours ago that swapped in the past 24 hours, from 0 to 1: `tokensSurvived24` divided by `tokensCreatedPrev24`. Null if either couldn't be counted, or if no tokens were created.""" - tokenSurvivalRate24: Float - """The total supply of USD stablecoins on the network, at $1 a token. Includes tokens locked in bridges and tokens an issuer holds but hasn't issued. Null on testnets or if the supply couldn't be read.""" - stablecoinSupplyUsd: String -} - -"""Response returned by `filterNetworks`.""" -type NetworkFilterConnection { - """The list of networks matching the filter parameters.""" - results: [NetworkFilterResult] - """The number of networks returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""Activity stats for one phase of a launchpad's tokens. Used for the `pre` (bonding curve) and `post` (migrated) breakdowns of a launchpad; the same stats for all tokens combined live at the root of `LaunchpadFilterResult`.""" -type LaunchpadStats { - """The trade volume in USD in the past hour.""" - volume1: String - """The trade volume in USD in the past 4 hours.""" - volume4: String - """The trade volume in USD in the past 12 hours.""" - volume12: String - """The trade volume in USD in the past 24 hours.""" - volume24: String - """The trade volume in USD in the past week.""" - volume1w: String - """The buy volume in USD in the past hour.""" - buyVolume1: String - """The buy volume in USD in the past 4 hours.""" - buyVolume4: String - """The buy volume in USD in the past 12 hours.""" - buyVolume12: String - """The buy volume in USD in the past 24 hours.""" - buyVolume24: String - """The buy volume in USD in the past week.""" - buyVolume1w: String - """The sell volume in USD in the past hour.""" - sellVolume1: String - """The sell volume in USD in the past 4 hours.""" - sellVolume4: String - """The sell volume in USD in the past 12 hours.""" - sellVolume12: String - """The sell volume in USD in the past 24 hours.""" - sellVolume24: String - """The sell volume in USD in the past week.""" - sellVolume1w: String - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: Float - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: Float - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: Float - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: Float - """The percent volume change in the past week. Decimal format.""" - volumeChange1w: Float - """The number of transactions in the past hour.""" - transactions1: Int - """The number of transactions in the past 4 hours.""" - transactions4: Int - """The number of transactions in the past 12 hours.""" - transactions12: Int - """The number of transactions in the past 24 hours.""" - transactions24: Int - """The number of transactions in the past week.""" - transactions1w: Int - """The number of buys in the past hour.""" - buys1: Int - """The number of buys in the past 4 hours.""" - buys4: Int - """The number of buys in the past 12 hours.""" - buys12: Int - """The number of buys in the past 24 hours.""" - buys24: Int - """The number of buys in the past week.""" - buys1w: Int - """The number of sells in the past hour.""" - sells1: Int - """The number of sells in the past 4 hours.""" - sells4: Int - """The number of sells in the past 12 hours.""" - sells12: Int - """The number of sells in the past 24 hours.""" - sells24: Int - """The number of sells in the past week.""" - sells1w: Int - """The number of tokens with trading activity in the past hour.""" - activeTokens1: Int - """The number of tokens with trading activity in the past 4 hours.""" - activeTokens4: Int - """The number of tokens with trading activity in the past 12 hours.""" - activeTokens12: Int - """The number of tokens with trading activity in the past 24 hours.""" - activeTokens24: Int - """The number of tokens with trading activity in the past week.""" - activeTokens1w: Int - """The total liquidity in USD.""" - liquidity: String - """The total market cap in USD.""" - marketCap: String - """The pool fees in USD in the past hour. Null when the launchpad has no fee data.""" - poolFees1: String - """The pool fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - poolFees4: String - """The pool fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - poolFees12: String - """The pool fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - poolFees24: String - """The pool fees in USD in the past week. Null when the launchpad has no fee data.""" - poolFees1w: String - """The total fees in USD in the past hour. Null when the launchpad has no fee data.""" - totalFees1: String - """The total fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - totalFees4: String - """The total fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - totalFees12: String - """The total fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - totalFees24: String - """The total fees in USD in the past week. Null when the launchpad has no fee data.""" - totalFees1w: String - """The ratio of fees to volume in the past hour. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1: Float - """The ratio of fees to volume in the past 4 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio4: Float - """The ratio of fees to volume in the past 12 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio12: Float - """The ratio of fees to volume in the past 24 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio24: Float - """The ratio of fees to volume in the past week. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1w: Float -} - -"""A launchpad matching a set of filter parameters. Combined stats across all of the launchpad's tokens are at the root; `pre` and `post` break the same stats down by migration phase.""" -type LaunchpadFilterResult { - """The ID of the launchpad (`launchpadName:networkId`, with the name slugged — e.g. `pump.fun:1399811149`). Global rollup documents use networkId 0.""" - id: String! - """The name of the launchpad.""" - launchpadName: String - """The display name of the launchpad.""" - displayName: String - """The URL of the launchpad's website.""" - launchpadUrl: String - """The URL of the launchpad's icon.""" - iconUrl: String - """The launchpad's brand color as a hex string.""" - color: String - """Whether the launchpad is a third-party launchpad.""" - isThirdParty: Boolean - """The launchpad protocol.""" - launchpadProtocol: String - """The ID of the network. `0` for global rollup documents.""" - networkId: Int - """The IDs of the networks the launchpad is active on.""" - networkIds: [Int!] - """The scope of the document: `network` for per-network stats, `global` for the all-network rollup.""" - scope: LaunchpadFilterScope - """The unix timestamp for when the launchpad stats were last updated.""" - timestamp: Int - """Whether the document is for a testnet network.""" - isTestnet: Boolean - """The total number of tokens created by the launchpad.""" - tokensTotal: Int - """The total number of tokens that completed their bonding curve.""" - tokensCompletedTotal: Int - """The total number of tokens that migrated.""" - tokensMigratedTotal: Int - """The all-time share of tokens that migrated. Decimal format.""" - migrationRate: Float - """The average bonding curve progress of non-migrated tokens, from 0 to 100.""" - avgGraduationPercent: Float - """The number of tokens created in the past hour.""" - tokensCreated1: Int - """The number of tokens created in the past 4 hours.""" - tokensCreated4: Int - """The number of tokens created in the past 12 hours.""" - tokensCreated12: Int - """The number of tokens created in the past 24 hours.""" - tokensCreated24: Int - """The number of tokens created in the past week.""" - tokensCreated1w: Int - """The number of tokens that completed their bonding curve in the past hour.""" - tokensCompleted1: Int - """The number of tokens that completed their bonding curve in the past 4 hours.""" - tokensCompleted4: Int - """The number of tokens that completed their bonding curve in the past 12 hours.""" - tokensCompleted12: Int - """The number of tokens that completed their bonding curve in the past 24 hours.""" - tokensCompleted24: Int - """The number of tokens that completed their bonding curve in the past week.""" - tokensCompleted1w: Int - """The number of tokens that migrated in the past hour.""" - tokensMigrated1: Int - """The number of tokens that migrated in the past 4 hours.""" - tokensMigrated4: Int - """The number of tokens that migrated in the past 12 hours.""" - tokensMigrated12: Int - """The number of tokens that migrated in the past 24 hours.""" - tokensMigrated24: Int - """The number of tokens that migrated in the past week.""" - tokensMigrated1w: Int - """The share of tokens that migrated in the past 24 hours. Decimal format.""" - migrationRate24: Float - """The share of tokens that migrated in the past week. Decimal format.""" - migrationRate1w: Float - """The trade volume in USD in the past hour.""" - volume1: String - """The trade volume in USD in the past 4 hours.""" - volume4: String - """The trade volume in USD in the past 12 hours.""" - volume12: String - """The trade volume in USD in the past 24 hours.""" - volume24: String - """The trade volume in USD in the past week.""" - volume1w: String - """The buy volume in USD in the past hour.""" - buyVolume1: String - """The buy volume in USD in the past 4 hours.""" - buyVolume4: String - """The buy volume in USD in the past 12 hours.""" - buyVolume12: String - """The buy volume in USD in the past 24 hours.""" - buyVolume24: String - """The buy volume in USD in the past week.""" - buyVolume1w: String - """The sell volume in USD in the past hour.""" - sellVolume1: String - """The sell volume in USD in the past 4 hours.""" - sellVolume4: String - """The sell volume in USD in the past 12 hours.""" - sellVolume12: String - """The sell volume in USD in the past 24 hours.""" - sellVolume24: String - """The sell volume in USD in the past week.""" - sellVolume1w: String - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: Float - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: Float - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: Float - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: Float - """The percent volume change in the past week. Decimal format.""" - volumeChange1w: Float - """The number of transactions in the past hour.""" - transactions1: Int - """The number of transactions in the past 4 hours.""" - transactions4: Int - """The number of transactions in the past 12 hours.""" - transactions12: Int - """The number of transactions in the past 24 hours.""" - transactions24: Int - """The number of transactions in the past week.""" - transactions1w: Int - """The number of buys in the past hour.""" - buys1: Int - """The number of buys in the past 4 hours.""" - buys4: Int - """The number of buys in the past 12 hours.""" - buys12: Int - """The number of buys in the past 24 hours.""" - buys24: Int - """The number of buys in the past week.""" - buys1w: Int - """The number of sells in the past hour.""" - sells1: Int - """The number of sells in the past 4 hours.""" - sells4: Int - """The number of sells in the past 12 hours.""" - sells12: Int - """The number of sells in the past 24 hours.""" - sells24: Int - """The number of sells in the past week.""" - sells1w: Int - """The number of tokens with trading activity in the past hour.""" - activeTokens1: Int - """The number of tokens with trading activity in the past 4 hours.""" - activeTokens4: Int - """The number of tokens with trading activity in the past 12 hours.""" - activeTokens12: Int - """The number of tokens with trading activity in the past 24 hours.""" - activeTokens24: Int - """The number of tokens with trading activity in the past week.""" - activeTokens1w: Int - """The total liquidity in USD.""" - liquidity: String - """The total market cap in USD.""" - marketCap: String - """The pool fees in USD in the past hour. Null when the launchpad has no fee data.""" - poolFees1: String - """The pool fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - poolFees4: String - """The pool fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - poolFees12: String - """The pool fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - poolFees24: String - """The pool fees in USD in the past week. Null when the launchpad has no fee data.""" - poolFees1w: String - """The total fees in USD in the past hour. Null when the launchpad has no fee data.""" - totalFees1: String - """The total fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - totalFees4: String - """The total fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - totalFees12: String - """The total fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - totalFees24: String - """The total fees in USD in the past week. Null when the launchpad has no fee data.""" - totalFees1w: String - """The ratio of fees to volume in the past hour. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1: Float - """The ratio of fees to volume in the past 4 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio4: Float - """The ratio of fees to volume in the past 12 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio12: Float - """The ratio of fees to volume in the past 24 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio24: Float - """The ratio of fees to volume in the past week. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1w: Float - """Stats for tokens still on the bonding curve.""" - pre: LaunchpadStats - """Stats for tokens that have migrated.""" - post: LaunchpadStats -} - -"""Response returned by `filterLaunchpads`.""" -type LaunchpadFilterConnection { - """The list of launchpads matching the filter parameters.""" - results: [LaunchpadFilterResult] - """The number of launchpads returned.""" - count: Int - """Where in the list the server started when returning items.""" - offset: Int -} - -"""Metadata for an exchange.""" -type FilterExchange { - """The address for the exchange factory contract.""" - address: String! - """The ID of the exchange (`address:networkId`).""" - id: String! - """The name of the exchange.""" - name: String - """The version of the exchange. For example, `3` for UniswapV3.""" - exchangeVersion: String - """The URL for the exchange's icon.""" - iconUrl: String - """The network ID the factory is deployed on.""" - networkId: Int! - """The URL for the exchange's trading platform.""" - tradeUrl: String -} - -"""An exchange matching a set of filter parameters.""" -type ExchangeFilterResult { - """Exchange metadata.""" - exchange: FilterExchange - """The number of transactions on the exchange in the past hour.""" - txnCount1: String - """The number of transactions on the exchange in the past 4 hours.""" - txnCount4: String - """The number of transactions on the exchange in the past 12 hours.""" - txnCount12: String - """The number of transactions on the exchange in the past 24 hours.""" - txnCount24: String - """The trade volume in USD in the past hour.""" - volumeUSD1: String - """The trade volume in USD in the past 4 hours.""" - volumeUSD4: String - """The trade volume in USD in the past 12 hours.""" - volumeUSD12: String - """The trade volume in USD in the past 24 hours.""" - volumeUSD24: String - """The trade volume in the network's base token in the past hour.""" - volumeNBT1: String - """The trade volume in the network's base token in the past 4 hours.""" - volumeNBT4: String - """The trade volume in the network's base token in the past 12 hours.""" - volumeNBT12: String - """The trade volume in the network's base token in the past 24 hours.""" - volumeNBT24: String - """The total unique daily active users.""" - dailyActiveUsers: Int - """The total unique monthly active users (30 days).""" - monthlyActiveUsers: Int -} - -"""A pair matching a set of filter parameters.""" -type PairFilterResult { - """The unix timestamp for the creation of the pair.""" - createdAt: Int - """The unix timestamp for the last transaction to happen on the pair.""" - lastTransaction: Int - """The number of buys in the past hour.""" - buyCount1: Int - """The number of buys in the past 4 hours.""" - buyCount4: Int - """The number of buys in the past 12 hours.""" - buyCount12: Int - """The number of buys in the past 24 hours.""" - buyCount24: Int - """Exchange metadata for the pair.""" - exchange: FilterExchange - """The highest price in USD in the past hour.""" - highPrice1: String - """The highest price in USD in the past 4 hours.""" - highPrice4: String - """The highest price in USD in the past 12 hours.""" - highPrice12: String - """The highest price in USD in the past 24 hours.""" - highPrice24: String - """Amount of liquidity in the pair.""" - liquidity: String - """The locked liquidity percentage.""" - lockedLiquidityPercentage: Float! - """The token with higher liquidity in the pair. Can be `token0` or `token1`.""" - liquidityToken: String - """The token of interest. Can be `token0` or `token1`.""" - quoteToken: String - """The lowest price in USD in the past hour.""" - lowPrice1: String - """The lowest price in USD in the past 4 hours.""" - lowPrice4: String - """The lowest price in USD in the past 12 hours.""" - lowPrice12: String - """The lowest price in USD in the past 24 hours.""" - lowPrice24: String - """The fully diluted market cap.""" - marketCap: String - """Metadata for the pair.""" - pair: Pair - """The token price in USD.""" - price: String - """10^n, where n is the number of decimal places the price has. Max 16. Used for TradingView settings.""" - priceScale: String - """The percent price change in the past hour. Decimal format.""" - priceChange1: String - """The percent price change in the past 4 hours. Decimal format.""" - priceChange4: String - """The percent price change in the past 12 hours. Decimal format.""" - priceChange12: String - """The percent price change in the past 24 hours. Decimal format.""" - priceChange24: String - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: String - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: String - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: String - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: String - """The number of sells in the past hour.""" - sellCount1: Int - """The number of sells in the past 4 hours.""" - sellCount4: Int - """The number of sells in the past 12 hours.""" - sellCount12: Int - """The number of sells in the past 24 hours.""" - sellCount24: Int - """Metadata for the first token in the pair.""" - token0: EnhancedToken - """Metadata for the second token in the pair.""" - token1: EnhancedToken - """The number of transactions in the past hour.""" - txnCount1: Int - """The number of transactions in the past 4 hours.""" - txnCount4: Int - """The number of transactions in the past 12 hours.""" - txnCount12: Int - """The number of transactions in the past 24 hours.""" - txnCount24: Int - """The unique number of buys in the past hour.""" - uniqueBuys1: Int - """The unique number of buys in the past 4 hours.""" - uniqueBuys4: Int - """The unique number of buys in the past 12 hours.""" - uniqueBuys12: Int - """The unique number of buys in the past 24 hours.""" - uniqueBuys24: Int - """The unique number of sells in the past hour.""" - uniqueSells1: Int - """The unique number of sells in the past 4 hours.""" - uniqueSells4: Int - """The unique number of sells in the past 12 hours.""" - uniqueSells12: Int - """The unique number of sells in the past 24 hours.""" - uniqueSells24: Int - """The unique number of transactions in the past hour.""" - uniqueTransactions1: Int - """The unique number of transactions in the past 4 hours.""" - uniqueTransactions4: Int - """The unique number of transactions in the past 12 hours.""" - uniqueTransactions12: Int - """The unique number of transactions in the past 24 hours.""" - uniqueTransactions24: Int - """The trade volume in USD in the past hour.""" - volumeUSD1: String - """The trade volume in USD in the past 4 hours.""" - volumeUSD4: String - """The trade volume in USD in the past 12 hours.""" - volumeUSD12: String - """The trade volume in USD in the past 24 hours.""" - volumeUSD24: String - """The buy volume in USD in the past hour.""" - buyVolumeUSD1: String - """The buy volume in USD in the past 12 hours.""" - buyVolumeUSD12: String - """The buy volume in USD in the past 24 hours.""" - buyVolumeUSD24: String - """The buy volume in USD in the past 4 hours.""" - buyVolumeUSD4: String - """The sell volume in USD in the past hour.""" - sellVolumeUSD1: String - """The sell volume in USD in the past 12 hours.""" - sellVolumeUSD12: String - """The sell volume in USD in the past 24 hours.""" - sellVolumeUSD24: String - """The sell volume in USD in the past 4 hours.""" - sellVolumeUSD4: String - """The average age of the wallets that traded in the last 24h""" - walletAgeAvg: String - """The standard deviation of age of the wallets that traded in the last 24h""" - walletAgeStd: String - """The percentage of wallets that are less than 1d old that have traded in the last 24h""" - swapPct1dOldWallet: String - """The percentage of wallets that are less than 7d old that have traded in the last 24h""" - swapPct7dOldWallet: String - """The reasons the token has been flagged as a potential scam.""" - potentialScamReasons: [PotentialScamReason] - """The pool's static fee rate in basis points (1 bps = 0.01%), normalized across protocols. Null when the pool has no comparable static rate, including when a hook sets the fee per swap.""" - poolFeeBps: Float - """Whether a hook or plugin sets the fee per swap rather than the pool charging a static rate. Null for protocols that do not report it.""" - dynamicFee: Boolean - """Codex's risk verdict for the pair: the token's verdict, or `SCAM` when this pair's own pool is a proven trap (the pool's hook refuses or underpays sells the token itself allows). Not a safety guarantee — read `riskCoverage` first. Null when unassessed.""" - riskVerdict: RiskVerdict - """Weighted risk score from 0 to 100. Null for a terminal verdict reached without scoring, and when unassessed. Not a probability.""" - riskScore: Float - """Unix seconds when the engine last recorded a change to this token's risk. Null when the token has never been assessed.""" - riskFlaggedAt: Int - """Unix seconds of the contract analysis `riskVerdict` rests on: the decisive analysis, or the newest reading of a proven trapped pool. Null when neither stands behind it.""" - riskAnalyzedAt: Int - """How much contract analysis stood behind `riskVerdict`. Describes what was looked at, not what was concluded.""" - riskCoverage: RiskAnalysisCoverage - """The reason codes behind `riskVerdict`, unordered. New codes are added over time, so do not assume this list is exhaustive.""" - riskReasons: [RiskReasonCode!] - """Buy tax of the pair's token of interest, measured on a simulated buy alone by the latest decisive contract analysis, as a fraction (0.05 means 5%). Pool, hook and launchpad platform fees are not included. Null when no decisive analysis could measure the buy on its own; null is not 0%.""" - riskBuyTax: Float - """Sell tax of the pair's token of interest, measured on a simulated sell alone by the latest decisive contract analysis, as a fraction (0.05 means 5%). Pool, hook and launchpad platform fees are not included. Null when no decisive analysis could measure the sell on its own, including when that analysis found a honeypot: its test sale failed, so no sell tax was measured. Null is not 0%.""" - riskSellTax: Float -} - -"""The app a trade was placed through — a trading terminal, wallet, or interface — as distinct from the exchange it settled on.""" -type TradeSource { - """Stable identifier for the app, e.g. `axiom`. Safe to key on.""" - id: String! - """Human-readable name for the app, e.g. `Axiom`. Null if the identifier has no registry entry yet.""" - displayName: String -} - -union UnconfirmedEventData = UnconfirmedSwapEventData | UnconfirmedLiquidityChangeEventData - -"""An unconfirmed token transaction.""" -type UnconfirmedEvent { - """The contract address of the token's top pair.""" - address: String! - """The hash of the block where the transaction occurred.""" - blockHash: String! - """The block number for the transaction.""" - blockNumber: Int! - """The type of transaction event. Can be `Burn`, `Mint`, `Swap`, `Sync`, `Collect`, or `CollectProtocol`.""" - eventType: EventType! - """The ID of the event (`address:networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The index of the log in the block.""" - logIndex: Int! - """The wallet address that performed the transaction.""" - maker: String - """The network ID that the token is deployed on.""" - networkId: Int! - """The token of interest within the token's top pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The unix timestamp for when the transaction occurred.""" - timestamp: Int! - """The unique hash for the transaction.""" - transactionHash: String! - """The index of the transaction within the block.""" - transactionIndex: Int! - """A optional unique identifier of where the event is within the transaction.""" - supplementalIndex: Int - """A more specific breakdown of `eventType`. Splits `Swap` into `Buy` or `Sell`.""" - eventDisplayType: EventDisplayType - """The event-specific data for the transaction.""" - data: UnconfirmedEventData -} - -"""Bar chart data to track price changes over time.""" -type BarsResponse { - """The opening price.""" - o: [Float]! - """The high price.""" - h: [Float]! - """The low price.""" - l: [Float]! - """The closing price.""" - c: [Float]! - """The volume.""" - v: [Int]! @deprecated(reason: "Use volume field instead") - """The timestamp for the bar.""" - t: [Int!]! - """The status code for the batch: `ok` for successful data retrieval and `no_data` for empty responses signaling the end of server data.""" - s: String! - """The volume with higher precision.""" - volume: [String] - """The volume in the native token for the network""" - volumeNativeToken: [String] - """The number of unique buyers""" - buyers: [Int]! - """The number of buys""" - buys: [Int]! - """The buy volume in USD""" - buyVolume: [String]! - """The number of unique sellers""" - sellers: [Int]! - """The number of sells""" - sells: [Int]! - """The sell volume in USD""" - sellVolume: [String]! - """Liquidity in USD""" - liquidity: [String]! - """The number of traders""" - traders: [Int]! - """The number of transactions""" - transactions: [Int]! - """The aggregate pool/DEX fees in USD""" - poolFees: [String] - """The aggregate base fees (gas) in USD""" - baseFees: [String] - """The aggregate priority fees in USD""" - priorityFees: [String] - """The aggregate builder tips (MEV) in USD""" - builderTips: [String] - """The aggregate L1 data posting fees in USD (L2 rollups only)""" - l1DataFees: [String] - """The total fees in USD (sum of poolFees + baseFees + priorityFees + builderTips + l1DataFees)""" - totalFees: [String] - """Ratio of total fees to volume (totalFees / volume). Null when volume is zero.""" - feeToVolumeRatio: [String] - """Ratio of builder tips (MEV) to total fees (builderTips / totalFees). Null when totalFees is zero.""" - mevToTotalFeesRatio: [String] - """Gas cost per dollar of volume ((baseFees + priorityFees + l1DataFees) / volume). Null when volume is zero.""" - gasPerVolume: [String] - """Average total fee cost per transaction in USD (totalFees / transactions). Null when there are no transactions.""" - averageCostPerTrade: [String] - """MEV risk level for this bar: low (<3% builder tips), medium (3-30%), or high (>30%). Null for pre-genesis bars.""" - mevRiskLevel: [String] - """Dominant fee component: gas-dominated (gas >50% of fees), mev-dominated (tips >20%), or pool-fee-dominated. Null when no fees.""" - feeRegimeClassification: [String] - """Rate of sandwich attacks per transaction (sandwichedEventCount / transactions). Null when no transaction data.""" - sandwichRate: [String] - """The pair that is being returned""" - pair: Pair! -} - -"""Bar chart data to track price changes over time.""" -type TokenBarsResponse { - """The opening price.""" - o: [Float]! - """The high price.""" - h: [Float]! - """The low price.""" - l: [Float]! - """The closing price.""" - c: [Float]! - """The timestamp for the bar.""" - t: [Int!]! - """The status code for the batch: `ok` for successful data retrieval and `no_data` for empty responses signaling the end of server data.""" - s: String! - """The volume with higher precision.""" - volume: [String] - """The volume in the native token for the network""" - volumeNativeToken: [String] - """The number of unique buyers""" - buyers: [Int]! - """The number of buys""" - buys: [Int]! - """The buy volume in USD""" - buyVolume: [String]! - """The number of unique sellers""" - sellers: [Int]! - """The number of sells""" - sells: [Int]! - """The sell volume in USD""" - sellVolume: [String]! - """Liquidity in USD""" - liquidity: [String]! - """The token's total supply when the bar was last updated, with decimals applied. Multiply by the bar's prices for its fully diluted market cap. Carried forward through bars with no trades. `0` when the supply is unknown, null for bars last updated before supply was recorded (about 17:30 UTC on 2026-10-22).""" - totalSupply: [String] - """The token's circulating supply when the bar was last updated, with decimals applied. Multiply by the bar's prices for its circulating market cap. Carried forward through bars with no trades. Total supply when circulating supply is unknown, null for bars last updated before supply was recorded (about 17:30 UTC on 2026-10-22).""" - circulatingSupply: [String] - """The number of traders""" - traders: [Int]! - """The number of transactions""" - transactions: [Int]! - """The aggregate pool/DEX fees in USD""" - poolFees: [String] - """The aggregate base fees (gas) in USD""" - baseFees: [String] - """The aggregate priority fees in USD""" - priorityFees: [String] - """The aggregate builder tips (MEV) in USD""" - builderTips: [String] - """The aggregate L1 data posting fees in USD (L2 rollups only)""" - l1DataFees: [String] - """The total fees in USD (sum of poolFees + baseFees + priorityFees + builderTips + l1DataFees)""" - totalFees: [String] - """Ratio of total fees to volume (totalFees / volume). Null when volume is zero.""" - feeToVolumeRatio: [String] - """Ratio of builder tips (MEV) to total fees (builderTips / totalFees). Null when totalFees is zero.""" - mevToTotalFeesRatio: [String] - """Gas cost per dollar of volume ((baseFees + priorityFees + l1DataFees) / volume). Null when volume is zero.""" - gasPerVolume: [String] - """Average total fee cost per transaction in USD (totalFees / transactions). Null when there are no transactions.""" - averageCostPerTrade: [String] - """MEV risk level for this bar: low (<3% builder tips), medium (3-30%), or high (>30%). Null for pre-genesis bars.""" - mevRiskLevel: [String] - """Dominant fee component: gas-dominated (gas >50% of fees), mev-dominated (tips >20%), or pool-fee-dominated. Null when no fees.""" - feeRegimeClassification: [String] - """Rate of sandwich attacks per transaction (sandwichedEventCount / transactions). Null when no transaction data.""" - sandwichRate: [String] - """The token that is being returned""" - token: EnhancedToken! -} - -"""Boolean expression for combining token filters.""" -input TokenBoolFilter { - """All nested filters must match.""" - and: [TokenFilters!] - """At least one nested filter must match.""" - or: [TokenFilters!] - """The nested filter must not match.""" - not: TokenFilters -} - -input TokenCategoryFilter { - """Match tokens in any of these categories (OR).""" - anyOf: [String!] - """Match tokens in all of these categories (AND).""" - allOf: [String!] - """Exclude tokens in any of these categories.""" - noneOf: [String!] - """Match tokens that have at least one category (true) or none (false).""" - hasCategory: Boolean -} - -"""A social link a token can have.""" -enum TokenSocialLink { - BITCOINTALK - BLOG - COINGECKO - COINMARKETCAP - DISCORD - EMAIL - FACEBOOK - GITHUB - INSTAGRAM - LINKEDIN - REDDIT - SLACK - TELEGRAM - TIKTOK - TWITCH - TWITTER - WEBSITE - WECHAT - WHITEPAPER - YOUTUBE -} - -"""Media a token can have.""" -enum TokenMediaType { - """A token logo (thumbnail, small or large image).""" - LOGO - """A banner image.""" - BANNER - """A video.""" - VIDEO -} - -input TokenSocialFilter { - """Match tokens with any of these social links (OR).""" - anyOf: [TokenSocialLink!] - """Match tokens with all of these social links (AND).""" - allOf: [TokenSocialLink!] - """Exclude tokens with any of these social links.""" - noneOf: [TokenSocialLink!] - """Match tokens that have at least one social link (true) or none (false).""" - hasAny: Boolean -} - -input TokenMediaFilter { - """Match tokens with any of these media types (OR).""" - anyOf: [TokenMediaType!] - """Match tokens with all of these media types (AND).""" - allOf: [TokenMediaType!] - """Exclude tokens with any of these media types.""" - noneOf: [TokenMediaType!] - """Match tokens that have at least one media type (true) or none (false).""" - hasAny: Boolean -} - -"""Input type of `TokenFilters`.""" -input TokenFilters { - """Recursive boolean expression for combining token filters.""" - boolFilter: TokenBoolFilter - categories: TokenCategoryFilter - """Filter by the token's social links (contributed or provider-sourced). Grid organization links are not counted.""" - socials: TokenSocialFilter - """Filter by the token's logo, banner and video. Grid images are not counted.""" - media: TokenMediaFilter - """The unix timestamp for the creation of the token's first pair.""" - createdAt: NumberFilter - """The unix timestamp for the creation of the token.""" - tokenCreatedAt: NumberFilter - """The unix timestamp for the token's last transaction.""" - lastTransaction: NumberFilter - age: NumberFilter @deprecated(reason: "Age isn't supported - use createdAt instead") - """The number of buys in the past 5 minutes.""" - buyCount5m: NumberFilter - """The number of buys in the past hour.""" - buyCount1: NumberFilter - """The number of buys in the past 12 hours.""" - buyCount12: NumberFilter - """The number of buys in the past 24 hours.""" - buyCount24: NumberFilter - """The number of buys in the past 4 hours.""" - buyCount4: NumberFilter - """The percent price change in the past 5 minutes. Decimal format.""" - change5m: NumberFilter - """The percent price change in the past hour. Decimal format.""" - change1: NumberFilter - """The percent price change in the past 12 hours. Decimal format.""" - change12: NumberFilter - """The percent price change in the past 24 hours. Decimal format.""" - change24: NumberFilter - """The percent price change in the past 4 hours. Decimal format.""" - change4: NumberFilter - """The percent volume change in the past 5 minutes. Decimal format.""" - volumeChange5m: NumberFilter - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: NumberFilter - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: NumberFilter - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: NumberFilter - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: NumberFilter - """The list of exchange contract IDs to filter by. Applied in conjunction with `network` filter using an OR condition. When used together, the query returns results that match either the specified exchanges or the specified network.""" - exchangeId: [String] - """The list of exchange contract addresses to filter by.""" - exchangeAddress: [String] - fdv: NumberFilter @deprecated(reason: "FDV isn't supported - use marketCap instead") - """The highest price in USD in the past 5 minutes.""" - high5m: NumberFilter - """The highest price in USD in the past hour.""" - high1: NumberFilter - """The highest price in USD in the past 12 hours.""" - high12: NumberFilter - """The highest price in USD in the past 24 hours.""" - high24: NumberFilter - """The highest price in USD in the past 4 hours.""" - high4: NumberFilter - """The token's liquidity in USD. On networks where the real-money total is enabled, this filters on the same value as `totalLiquidityUsd` (the combined liquidity of its 15 deepest pools) once the token has one. On other networks it filters on the liquidity of the token's top pair, or with `useAggregatedStats` the token's aggregated liquidity.""" - liquidity: NumberFilter - """The token's total liquidity in USD: the combined liquidity of its 15 deepest pools, leaving out pools with no trade in the last 7 days. On networks where the real-money total is enabled, each pool counts only the real money behind it: what the token can reach in one or two trades into the network's pricing reference tokens (such as its main stablecoins), with each route counted once. On networks where the real-money total is enabled, `liquidity` is the same value; elsewhere `liquidity` covers the top pair only (or the aggregated liquidity with `useAggregatedStats`).""" - totalLiquidityUsd: NumberFilter - """The lowest price in USD in the past hour.""" - low1: NumberFilter - """The lowest price in USD in the past 5 minutes.""" - low5m: NumberFilter - """The lowest price in USD in the past 12 hours.""" - low12: NumberFilter - """The lowest price in USD in the past 24 hours.""" - low24: NumberFilter - """The lowest price in USD in the past 4 hours.""" - low4: NumberFilter - """The fully diluted market cap.""" - marketCap: NumberFilter - """The circulating market cap.""" - circulatingMarketCap: NumberFilter - """The list of network IDs to filter by. Applied in conjunction with `exchangeId` filter using an OR condition. When used together, the query returns results that match either the specified exchanges or the specified network.""" - network: [Int] - """The number of different wallets holding the token.""" - holders: NumberFilter - """The token price in USD.""" - priceUSD: NumberFilter - """The number of sells in the past hour.""" - sellCount1: NumberFilter - """The number of sells in the past 5 minutes.""" - sellCount5m: NumberFilter - """The number of sells in the past 12 hours.""" - sellCount12: NumberFilter - """The number of sells in the past 24 hours.""" - sellCount24: NumberFilter - """The number of sells in the past 4 hours.""" - sellCount4: NumberFilter - """The number of transactions in the past 5 minutes.""" - txnCount5m: NumberFilter - """The number of transactions in the past hour.""" - txnCount1: NumberFilter - """The number of transactions in the past 12 hours.""" - txnCount12: NumberFilter - """The number of transactions in the past 24 hours.""" - txnCount24: NumberFilter - """The number of transactions in the past 4 hours.""" - txnCount4: NumberFilter - """The unique number of buys in the past hour.""" - uniqueBuys1: NumberFilter - """The unique number of buys in the past 5 minutes.""" - uniqueBuys5m: NumberFilter - """The unique number of buys in the past 12 hours.""" - uniqueBuys12: NumberFilter - """The unique number of buys in the past 24 hours.""" - uniqueBuys24: NumberFilter - """The unique number of buys in the past 4 hours.""" - uniqueBuys4: NumberFilter - """The unique number of sells in the past 5 minutes.""" - uniqueSells5m: NumberFilter - """The unique number of sells in the past hour.""" - uniqueSells1: NumberFilter - """The unique number of sells in the past 12 hours.""" - uniqueSells12: NumberFilter - """The unique number of sells in the past 24 hours.""" - uniqueSells24: NumberFilter - """The unique number of sells in the past 4 hours.""" - uniqueSells4: NumberFilter - """The unique number of transactions in the past hour.""" - uniqueTransactions1: NumberFilter - """The unique number of transactions in the past 5 minutes.""" - uniqueTransactions5m: NumberFilter - """The unique number of transactions in the past 12 hours.""" - uniqueTransactions12: NumberFilter - """The unique number of transactions in the past 24 hours.""" - uniqueTransactions24: NumberFilter - """The unique number of transactions in the past 4 hours.""" - uniqueTransactions4: NumberFilter - """The trade volume in USD in the past hour.""" - volume1: NumberFilter - """The trade volume in USD in the past 12 hours.""" - volume12: NumberFilter - """The trade volume in USD in the past 24 hours.""" - volume24: NumberFilter - """The trade volume in USD in the past 4 hours.""" - volume4: NumberFilter - """The trade volume in USD in the past 5 minutes.""" - volume5m: NumberFilter - """The buy volume in USD in the past hour.""" - buyVolume1: NumberFilter - """The buy volume in USD in the past 12 hours.""" - buyVolume12: NumberFilter - """The buy volume in USD in the past 24 hours.""" - buyVolume24: NumberFilter - """The buy volume in USD in the past 4 hours.""" - buyVolume4: NumberFilter - """The buy volume in USD in the past 5 minutes.""" - buyVolume5m: NumberFilter - """The sell volume in USD in the past hour.""" - sellVolume1: NumberFilter - """The sell volume in USD in the past 12 hours.""" - sellVolume12: NumberFilter - """The sell volume in USD in the past 24 hours.""" - sellVolume24: NumberFilter - """The sell volume in USD in the past 4 hours.""" - sellVolume4: NumberFilter - """The sell volume in USD in the past 5 minutes.""" - sellVolume5m: NumberFilter - """Whether to include tokens that have been flagged as scams. Default: false""" - includeScams: Boolean - """Whether to filter for tokens on testnet networks. Use `true` for testnet tokens only, `false` for mainnet tokens only and `undefined` (default) for both.""" - isTestnet: Boolean - """Only include verified tokens""" - isVerified: Boolean - """Filter potential Scams""" - potentialScam: Boolean - """Whether to ignore pairs/tokens not relevant to trending. This is done checking against a few factors and ignoring uninteresting tokens like stables / network tokens. If you want all tokens regardless of these checks, then don't include this field. (default) If you want only tokens that fail the trending ignore checks, then set it to `true`. (i.e. stablecoins, rugs, network base tokens) If you want only tokens that pass the trending ignore checks, then set it to `false`.""" - trendingIgnored: Boolean - """The address of the creator of the token.""" - creatorAddress: String @deprecated(reason: "Use creatorAddresses string array instead") - """The addresses of the token creators (supports multiple addresses). Max 25 addresses. You cannot provide both creatorAddress and creatorAddresses.""" - creatorAddresses: [String!] - """A list of launchpad protocols.""" - launchpadProtocol: [String!] - """A list of launchpad names. Any of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpadName: [String!] - """A list of launchpad fee modes. Matches tokens whose fee modes include any of them (Pump and PumpAmm only).""" - feeModes: [FeeMode!] - """Indicates if the launchpad is completed.""" - launchpadCompleted: Boolean - """Indicates if the launchpad has migrated.""" - launchpadMigrated: Boolean - """The graduation percentage.""" - launchpadGraduationPercent: NumberFilter - """The timestamp when the launchpad was completed.""" - launchpadCompletedAt: NumberFilter - """The timestamp when the launchpad was migrated.""" - launchpadMigratedAt: NumberFilter - """The token is freezable.""" - freezable: Boolean - """The token is mintable.""" - mintable: Boolean - """Whether the token name or symbol contains profanity.""" - profanity: Boolean - """The average age of the wallets that traded in the last 24h.""" - walletAgeAvg: NumberFilter - """The standard deviation of age of the wallets that traded in the last 24h.""" - walletAgeStd: NumberFilter - """The percentage of wallets that are less than 1d old that have traded in the last 24h.""" - swapPct1dOldWallet: NumberFilter - """The percentage of wallets that are less than 7d old that have traded in the last 24h.""" - swapPct7dOldWallet: NumberFilter - """Filter by total fees in the past 5 minutes.""" - totalFees5m: NumberFilter - """Filter by total fees in the past hour.""" - totalFees1: NumberFilter - """Filter by total fees in the past 4 hours.""" - totalFees4: NumberFilter - """Filter by total fees in the past 12 hours.""" - totalFees12: NumberFilter - """Filter by total fees in the past 24 hours.""" - totalFees24: NumberFilter - """Filter by pool fees in the past 24 hours.""" - poolFees24: NumberFilter - """Filter by fee to volume ratio in the past 24 hours.""" - feeToVolumeRatio24: NumberFilter - """Filter by number of wallets that have sniped the token. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - sniperCount: NumberFilter - """Filter by percentage of tokens held by snipers. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - sniperHeldPercentage: NumberFilter - """Filter by number of wallets that have bundled the token. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - bundlerCount: NumberFilter - """Filter by percentage of tokens held by bundlers. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - bundlerHeldPercentage: NumberFilter - """Filter by number of wallets that have been an insider of the token. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - insiderCount: NumberFilter - """Filter by percentage of tokens held by insiders. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - insiderHeldPercentage: NumberFilter - """Filter by number of suspicious wallets (deduplicated union of snipers, bundlers, and insiders). Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - suspiciousCount: NumberFilter - """Filter by percentage of tokens held by suspicious wallets. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - suspiciousHeldPercentage: NumberFilter - """Filter by percentage of tokens held by the dev. Covers the same tokens as `tokenWalletStats`; any other token never matches.""" - devHeldPercentage: NumberFilter - """Filter by top 10 holders percentage.""" - top10HoldersPercent: NumberFilter - """Filter by number of posts in the token's coin community.""" - coinCommunityPostCount: NumberFilter - """Filter by number of members in the token's coin community.""" - coinCommunityMemberCount: NumberFilter - """Filter by number of likes in the token's coin community.""" - coinCommunityLikeCount: NumberFilter - """Filter by unix timestamp for the most recent post in the token's coin community.""" - coinCommunityLastPostAt: NumberFilter - """Filter by whether the token has linked Grid asset data.""" - hasGridData: Boolean - """Filter by Grid bluechip ratings. Returns tokens matching any of the provided ratings.""" - bluechipRatings: [String!] - """Filter by risk verdict. Returns tokens matching any of the provided verdicts.""" - riskVerdicts: [RiskVerdict!] - """Filter by how much contract analysis stood behind the verdict.""" - riskCoverages: [RiskAnalysisCoverage!] - """Filter by risk reason codes. Returns tokens where any of the provided reasons fired.""" - riskReasons: [RiskReasonCode!] - """Filter by the bundling services whose wallets bought the token. Returns tokens bought by any of the provided services.""" - bundlerServices: [BundlerService!] - """Filter by weighted risk score.""" - riskScore: NumberFilter - """Filter by when the engine last recorded a change to the risk assessment, in Unix seconds.""" - riskFlaggedAt: NumberFilter - """Filter by all-time high price.""" - athPrice: NumberFilter - """Filter by all-time low price.""" - atlPrice: NumberFilter - """Filter by all-time high FDV.""" - athFdv: NumberFilter - """Filter by all-time low FDV.""" - atlFdv: NumberFilter - """Filter by all-time high circulating market cap.""" - athCircMc: NumberFilter - """Filter by all-time low circulating market cap.""" - atlCircMc: NumberFilter -} - -"""Input type of `ExchangeRanking`.""" -input ExchangeRanking { - """The attribute to rank exchanges by.""" - attribute: ExchangeRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Response returned by `filterTokens`.""" -type TokenFilterConnection { - """The list of tokens matching the filter parameters.""" - results: [TokenFilterResult] - """The number of tokens returned.""" - count: Int - """Where in the list the server started when returning items.""" - page: Int -} - -enum CategoryType { - """Objective, long-lived groupings (DeFi, L1, stablecoins).""" - CANONICAL - """Trend-driven groupings (AI, RWA, memes).""" - NARRATIVE -} - -enum CategoryStatus { - DRAFT - ACTIVE - ARCHIVED -} - -type Category { - """The category id — a stable slug (also the value stored on tokens).""" - id: String! - """The display name. For example, `Artificial Intelligence`.""" - name: String! - """An optional short name/abbreviation for compact surfaces (pills, badges). For example, `AI`. Null when unset — the API does not fall back to `name`; clients decide whether to.""" - shortName: String - """The URL slug (same value as `id`).""" - slug: String! - """A short description of the category.""" - description: String - """Whether the category is canonical or narrative.""" - type: CategoryType! - """The lifecycle status of the category.""" - status: CategoryStatus! - """The category icon URL.""" - iconUrl: String @deprecated(reason: "Categories no longer carry imagery. Will be null.") - """The category banner image URL.""" - bannerUrl: String @deprecated(reason: "Categories no longer carry imagery. Will be null.") - """The parent category id, for hierarchical categories.""" - parentId: String - """The number of tokens currently assigned to the category. Null when the count has not been computed yet.""" - memberCount: Int -} - -type CategoryTokenConnection { - """The list of tokens in the category matching the filter parameters.""" - results: [TokenFilterResult] - """The number of tokens returned.""" - count: Int - """Where in the list the server started when returning items.""" - page: Int -} - -"""Response returned by `onFilterTokensUpdated`.""" -type FilterTokenUpdates { - """The IDs of tokens that no longer match the subscription parameters, sent when the subscription's result set is refreshed.""" - removedTokenIds: [String] - """The list of updated token results matching the subscription parameters. When the subscription's result set is refreshed, also includes full results for tokens that newly match.""" - updates: [TokenFilterResult] -} - -"""A token with metadata.""" -type TokenWithMetadata { - """The contract address of the token.""" - address: String! - """The precision to which the token can be divided. For example, the smallest unit for USDC is 0.000001 (6 decimals).""" - decimals: Int - """The exchanges the token is listed on.""" - exchanges: [Exchange!]! - """The ID of the token (`address:networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The token's liquidity in USD. On networks where the real-money total is enabled, this is the same value as `totalLiquidityUsd` from `filterTokens` (the combined liquidity of the token's 15 deepest pools) once the token has one; elsewhere it is the total liquidity of the token's top pair. The value is recomputed when the token trades.""" - liquidity: String! - """The name of the token.""" - name: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The token price in USD.""" - price: Float! - """The percent price change for the time frame requested. Decimal format.""" - priceChange: Float! - """Whether the token has been flagged as a scam.""" - isScam: Boolean - """The percent price change in the past hour. Decimal format.""" - priceChange1: Float - """The percent price change in the past 12 hours. Decimal format.""" - priceChange12: Float - """The percent price change in the past 24 hours. Decimal format.""" - priceChange24: Float - """The percent price change in the past 4 hours. Decimal format.""" - priceChange4: Float - """The token of interest. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The fully diluted market cap.""" - marketCap: String - """The number of transactions in the past hour.""" - txnCount1: Int - """The number of transactions in the past 12 hours.""" - txnCount12: Int - """The number of transactions in the past 24 hours.""" - txnCount24: Int - """The number of transactions in the past 4 hours.""" - txnCount4: Int - """The unique number of buys in the past hour.""" - uniqueBuys1: Int - """The unique number of buys in the past 12 hours.""" - uniqueBuys12: Int - """The unique number of buys in the past 24 hours.""" - uniqueBuys24: Int - """The unique number of buys in the past 4 hours.""" - uniqueBuys4: Int - """The unique number of sells in the past hour.""" - uniqueSells1: Int - """The unique number of sells in the past 12 hours.""" - uniqueSells12: Int - """The unique number of sells in the past 24 hours.""" - uniqueSells24: Int - """The unique number of sells in the past 4 hours.""" - uniqueSells4: Int - """The time frame for the results.""" - resolution: String! - """The symbol for the token.""" - symbol: String! - """The ID of the token's top pair (`pairAddress:networkId`).""" - topPairId: String! - """The volume over the time frame requested in USD.""" - volume: String! - """The token logo URL.""" - imageThumbUrl: String - """The token logo URL.""" - imageSmallUrl: String - """The token logo URL.""" - imageLargeUrl: String - """The token banner URL.""" - imageBannerUrl: String - """The unix timestamp for the creation of the token's first pair.""" - createdAt: Int - """The unix timestamp for the token's last transaction.""" - lastTransaction: Int -} - -"""The issuer of a real-world-asset token.""" -type TokenIssuer { - """Stable identifier for the issuer, e.g. `ondo-global-markets`. Safe to key on.""" - id: String! - """Human-readable name for the issuer, e.g. `Ondo Global Markets`. Null if the identifier has no registry entry yet.""" - displayName: String -} - -"""Codex's unified risk assessment for a token. `verdict` is not a safety guarantee. `VERIFIED` means a human marked the token not-a-scam — a moderator judgement, not an allowlist — and `NEUTRAL` means the weighted score is below the caution threshold. Reasons can still be present on a neutral assessment. Neither says a token is safe to trade, and a clean assessment cannot see an un-armed trap (owner-pausable, blacklist-after-N-txs, upgradeable proxy). Read `coverage` before trusting anything else: `NOT_ANALYZED` means no contract analysis stands behind this verdict. Null fields indicate unavailable or inapplicable results as described below; they never mean "safe".""" -type TokenRisk { - """The verdict. Null when the token has not been assessed.""" - verdict: RiskVerdict - """Weighted score from 0 to 100, computed from weighted signals with family caps and a corroboration bonus, then clamped. Null for a terminal verdict reached without scoring, and for an unassessed token. Not a probability.""" - score: Float - """Unix seconds when the engine last recorded a change to this token's risk assessment, the first recorded observation included. A re-evaluation that reaches the same result records nothing, so this tracks change rather than evaluation. Null when the token has never been assessed.""" - flaggedAt: Int - """Unix seconds of the contract analysis the verdict rests on: the decisive analysis, or the newest reading of a proven trapped pool. Moves only when the contract is probed again, unlike `flaggedAt`. Null when neither stands behind the verdict.""" - analyzedAt: Int - """How much contract analysis stood behind the verdict. Null when unassessed, or when a terminal verdict was reached without establishing analysis coverage.""" - coverage: RiskAnalysisCoverage - """The reason codes behind the verdict, unordered. Empty when nothing fired; null when unassessed. New codes are added over time, so do not assume this list is exhaustive or that a familiar set is the whole picture.""" - reasons: [RiskReasonCode!] - """Buy tax measured on a simulated buy alone by the latest decisive contract analysis, as a fraction (0.05 means 5%). Pool, hook and launchpad platform fees are not included. Can be newer than `verdict`, which updates on the next assessment. Null when no decisive analysis could measure the buy on its own; null is not 0%. A Token-2022 fee as configured is in `extensions.token2022.transferFeeConfig`.""" - buyTax: Float - """Sell tax measured on a simulated sell alone by the latest decisive contract analysis, as a fraction (0.05 means 5%). Pool, hook and launchpad platform fees are not included. Can be newer than `verdict`, which updates on the next assessment. Null when no decisive analysis could measure the sell on its own, including when that analysis found a honeypot: its test sale failed, so no sell tax was measured. Null is not 0%. A Token-2022 fee as configured is in `extensions.token2022.transferFeeConfig`.""" - sellTax: Float - """The bundling services whose wallets bought the token, such as Proxima or Sumo. A fact about how the token launched, not a risk signal; when set, `reasons` includes `FLOW_BUNDLER_SERVICE`, without points, from the next scored assessment that is written. A terminal verdict (`SCAM`, `VERIFIED`, `VERIFIED_CONTESTED`) lists no scored reasons, and a token whose liquidity can't be read keeps its last assessment, so either may not show it. Read at query time, so it can be newer than `verdict`; like every `TokenRisk` field it is unavailable while the token has no assessment. Null when no service is known to have bought the token, which is not proof that none did.""" - bundlerServices: [BundlerService!] -} - -"""A service that sells or runs the wallets behind bundled launches. New values may be added over time, so treat one you do not recognize as unknown.""" -enum BundlerService { - """Proxima, including wallets bought from its wallet shop.""" - PROXIMA - """Sumo, including the wallets its paid campaigns trade from.""" - SUMO -} - -"""A token's risk verdict. These values are not an ordered safety scale: `SCAM` and `VERIFIED` are terminal states reached by mechanical proof or a human decision, while `HIGH_RISK`, `CAUTION` and `NEUTRAL` are graded outcomes of weighted signals.""" -enum RiskVerdict { - """Proven a scam by mechanical evidence, or labelled one by a human.""" - SCAM - """The weighted score reached the high-risk threshold.""" - HIGH_RISK - """The weighted score reached the caution threshold but remains below high risk.""" - CAUTION - """The weighted score is below the caution threshold. Reasons may still be present. Not a statement that the token is safe.""" - NEUTRAL - """A human marked this token not-a-scam. A moderator judgement, not an allowlist.""" - VERIFIED - """Marked not-a-scam by a human, but mechanical signals disagree.""" - VERIFIED_CONTESTED -} - -"""How much contract analysis stood behind a verdict. This describes what was looked at, not what was concluded — `ANALYZED` does not mean a token is safe. New values may be added over time, so treat one you do not recognize as unknown.""" -enum RiskAnalysisCoverage { - """No contract analysis stands behind this assessment. Not every token is analyzed; this says nothing about whether it is safe or taxed.""" - NOT_ANALYZED - """Analysis ran but reached no decisive verdict, for example because no supported venue could trade the token.""" - INCONCLUSIVE - """Analysis ran and reached a decisive verdict, or proved a pool of the token is a trap.""" - ANALYZED - """The verdict rests on a tradeable analysis more than seven days old. A contract can change after it was probed. A honeypot proof never becomes stale.""" - STALE -} - -"""The reasons a risk verdict can cite. This vocabulary grows over time. Treat the list on a token as the reasons Codex can name today, not as a complete account of everything wrong with it.""" -enum RiskReasonCode { - PROOF_HONEYPOT_SIM - PROOF_NON_TRANSFERABLE - PROOF_TRANSFER_FEE_100 - PROOF_PAUSED @deprecated(reason: "Never emitted. An engaged pause is reported as TAX_PAUSED, a scored reason rather than proof, because a pause can be lifted. Use TAX_PAUSED instead.") - PROOF_DEFAULT_FROZEN - PROOF_RUG_OCCURRED @deprecated(reason: "Never emitted. A rug never forces SCAM. It will be reported as LIQ_RUG_OCCURRED, an informational liquidity reason that adds no points.") - PROOF_POOL_TRAP_SIM - AUTH_MINT - AUTH_FREEZE - AUTH_PERMANENT_DELEGATE - AUTH_TRANSFER_HOOK - AUTH_PAUSABLE - AUTH_OWNER_NOT_RENOUNCED - AUTH_CAN_TRANSFER_OWNERSHIP - TAX_BUY_HIGH - TAX_SELL_HIGH - TAX_HONEYPOT_UNCONFIRMED - TAX_PAUSED - TAX_POOL_TRAP - TAX_POOL_TRAP_HOOK_SHARED - LIQ_MINIMAL - LIQ_UNKNOWN - LIQ_RUG_CLIFF - LIQ_UNLOCKED - LIQ_DRAINING - HOLD_TOP10_CONCENTRATED - HOLD_DEV_HEAVY - HOLD_SNIPER_HEAVY - HOLD_BUNDLER_HEAVY - HOLD_INSIDER_HEAVY - """The creator of a launchpad token sold or handed off a large share of supply in the token's first hour.""" - HOLD_INSIDER_DUMPED - FLOW_ONE_WAY - FLOW_WALLET_FARM - FLOW_WASH_DOMINATED - FLOW_BUNDLED_LAUNCH - FLOW_MECHANICAL_TRADING - FLOW_RING_DOMINATED - """Wallets run or sold by a bundling service bought the token. Informational: it adds no points. `TokenRisk.bundlerServices` names the services.""" - FLOW_BUNDLER_SERVICE - REP_SERIAL_RUGGER - REP_RISKY_CREATOR - REP_SCAMMER_FUNDED - REP_IMITATOR_SYMBOL - REP_IMITATOR_NAME - REP_IMITATOR_IMAGE - SOCIAL_COORDINATED_PROMOTION - SOCIAL_SCRIPTED_PROMOTION - LABEL_MANUAL_SCAM - LABEL_VERIFIED -} - -"""Custom metadata sourced from a token standard's on-chain metadata mechanism — currently the ERC-7572 `contractURI()` fields used by Base B20 tokens.""" -type Erc7572CustomInfo { - """Token-standard discriminant for this custom data (currently always `erc7572`).""" - type: String! - """Featured/showcase image URL from the contract metadata.""" - featuredImage: String - """Collaborator wallet addresses listed in the contract metadata.""" - collaborators: [String!] -} - -type TokenExtensions { - """Solana Token-2022 extension metadata.""" - token2022: Token2022Extensions - """Base B20 extension metadata.""" - b20: B20Extensions - """Robinhood Chain stock token (tokenized equity) metadata.""" - robinhoodStockToken: RobinhoodStockTokenExtensions - """xStocks (Backed Finance tokenized equity) metadata, on EVM networks. Solana xStocks use `token2022.scaledUiAmountConfig`.""" - xStock: XStockTokenExtensions -} - -type XStockTokenExtensions { - """Multiplier in effect now, as a decimal string (e.g. "1.0017"). It grows as dividends are reinvested and jumps on a split. xStocks rebase: balances and transfer amounts already include it, so divide by it to get the token's internal shares. Already reflects `newMultiplier` once `newMultiplierEffectiveAt` has passed.""" - multiplier: String - """Unix-seconds timestamp when the multiplier was last read from chain by us.""" - multiplierObservedAt: String - """Scheduled multiplier, as a decimal string. Stays set after it takes effect until our next read from chain.""" - newMultiplier: String - """Unix-seconds timestamp when `newMultiplier` takes effect.""" - newMultiplierEffectiveAt: String -} - -type RobinhoodStockTokenExtensions { - """Robinhood's cross-chain asset id for the underlying equity.""" - uid: String! - """Multiplier in effect now, as a decimal string (e.g. "4.0" after a 4:1 split). Already reflects `newMultiplier` once `newMultiplierEffectiveAt` has passed.""" - multiplier: String - """Unix-seconds timestamp when the multiplier was last read from chain by us.""" - multiplierObservedAt: String - """Multiplier scheduled by a corporate action, as a decimal string. Stays set after it takes effect until our next read from chain.""" - newMultiplier: String - """Unix-seconds timestamp when `newMultiplier` takes effect.""" - newMultiplierEffectiveAt: String - """Whether the token's price oracle is paused.""" - oraclePaused: Boolean -} - -type B20Extensions { - """Current rebasing multiplier as a decimal string (e.g. "1.5"); absent means 1.0× or a non-asset variant.""" - multiplier: String - """Unix-seconds timestamp when the multiplier value was last read from chain by us.""" - multiplierObservedAt: String - """Whether token transfers are currently paused. B20 pausing is granular — transfers, mints, and burns pause independently.""" - pausedTransfer: Boolean - """Whether minting is currently paused.""" - pausedMint: Boolean - """Whether burning is currently paused.""" - pausedBurn: Boolean - """Maximum mintable supply in raw (pre-multiplier) units, as a decimal string. The sentinel value 340282366920938463463374607431768211455 (2^128-1) means uncapped.""" - supplyCap: String -} - -type Token2022Extensions { - """Scaled UI amount configuration for Token-2022 mints.""" - scaledUiAmountConfig: Token2022ScaledUiAmountConfig - """Transfer fee schedules and authority for Token-2022 mints.""" - transferFeeConfig: Token2022TransferFeeConfig -} - -"""A Token-2022 mint's transfer fee as configured on the mint, not a measured trade. It applies to every transfer, capped at `maximumFee` per transfer.""" -type Token2022TransferFeeConfig { - """Authority allowed to update transfer fees; null when revoked.""" - transferFeeConfigAuthority: String - """Schedule used before newerTransferFee.epoch.""" - olderTransferFee: Token2022TransferFee! - """Schedule used from newerTransferFee.epoch onwards.""" - newerTransferFee: Token2022TransferFee! -} - -type Token2022TransferFee { - """First epoch this schedule applies, as a decimal string.""" - epoch: String! - """Fee in basis points (100 basis points = 1%).""" - transferFeeBasisPoints: Int! - """Maximum fee in raw token units, before decimal adjustment.""" - maximumFee: String! -} - -type Token2022ScaledUiAmountConfig { - """Authority allowed to update the scaled UI amount multiplier.""" - authority: String - """Current multiplier applied to decimal-adjusted UI amounts.""" - multiplier: Float! - """Unix timestamp when the pending multiplier becomes effective.""" - newMultiplierEffectiveTimestamp: String - """Pending multiplier, if one has been scheduled.""" - newMultiplier: Float -} - -type CoinCommunity { - """The id of the coin community""" - id: String! - """The unix timestamp for the creation of the coin community.""" - createdAt: Int! - """The number of posts in the coin community.""" - postCount: Int! - """The number of members in the coin community.""" - memberCount: Int! - """The number of likes in the coin community.""" - likeCount: Int! - """The unix timestamp for the most recent post in the coin community.""" - lastPostAt: Int -} - -"""All-time high and low price and market cap data for a token.""" -type TokenExtrema { - """The token ID (`address:networkId`).""" - id: String! - """The contract address of the token.""" - address: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The all-time high price in USD.""" - athPrice: String! - """The unix timestamp when the all-time high price was reached.""" - athPriceTimestamp: Int! - """The all-time low price in USD.""" - atlPrice: String! - """The unix timestamp when the all-time low price was reached.""" - atlPriceTimestamp: Int! - """The all-time high fully diluted market cap.""" - athFdv: String! - """The unix timestamp when the all-time high FDV was reached.""" - athFdvTimestamp: Int! - """The all-time low fully diluted market cap.""" - atlFdv: String! - """The unix timestamp when the all-time low FDV was reached.""" - atlFdvTimestamp: Int! - """The all-time high circulating market cap.""" - athCircMc: String! - """The unix timestamp when the all-time high circulating market cap was reached.""" - athCircMcTimestamp: Int! - """The all-time low circulating market cap.""" - atlCircMc: String! - """The unix timestamp when the all-time low circulating market cap was reached.""" - atlCircMcTimestamp: Int! -} - -"""Input type of `getTokenPrices`.""" -input GetPriceInput { - """The contract address of the token.""" - address: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The unix timestamp for the price.""" - timestamp: Int - """The address of the pool, when omitted the top pool is used.""" - poolAddress: String - """The block number for the price. It must be provided in addition to the timestamp to get a per block breakdown at a specific timestamp.""" - blockNumber: Int - """The maximum number of deviations from the token's Liquidity-Weighted Mean Price. This is used to mitigate low liquidity pairs producing prices that are not representative of reality. Default is `1`.""" - maxDeviations: Float @deprecated(reason: "This isn't taken into account anymore.") -} - -"""The pooled amounts of a pair's two tokens.""" -type PooledTokenValues { - token0: String - token1: String - """True when this pool's reserves are not known, in which case `token0` and `token1` read `0` and are not real amounts. False for every pool whose reserves are known, including one that is genuinely empty.""" - invalidReserves: Boolean! -} - -"""Input type of `getTokensInfo`.""" -input GetTokensInfoInput { - """The contract address of the token.""" - address: String! - """The network ID the token is deployed on.""" - networkId: Int! -} - -"""Input type of `getDetailedPairsStats`.""" -input GetDetailedPairsStatsInput { - """The contract address of the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The token of interest used to calculate token-specific stats for the pair. Can be `token0` or `token1`.""" - tokenOfInterest: TokenOfInterest - """The unix timestamp for the stats. Defaults to current.""" - timestamp: Int - """The list of durations to get detailed pair stats for.""" - durations: [DetailedPairStatsDuration] - """The number of aggregated values to receive. Note: Each duration has predetermined bucket sizes. The first n-1 buckets are historical. The last bucket is a snapshot of current data. duration `day1`: 6 buckets (4 hours each) plus 1 partial bucket duration `hour12`: 12 buckets (1 hour each) plus 1 partial bucket duration `hour4`: 8 buckets (30 min each) plus 1 partial bucket duration `hour1`: 12 buckets (5 min each) plus 1 partial bucket duration `min5`: 5 buckets (1 min each) plus 1 partial bucket For example, requesting 11 buckets for a `min5` duration will return the last 10 minutes worth of data plus a snapshot for the current minute.""" - bucketCount: Int - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType -} - -"""Input type of `ExchangeFilters`.""" -input ExchangeFilters { - """The number of transactions on the exchange in the past hour.""" - txnCount1: StringFilter - """The number of transactions on the exchange in the past 4 hours.""" - txnCount4: StringFilter - """The number of transactions on the exchange in the past 12 hours.""" - txnCount12: StringFilter - """The number of transactions on the exchange in the past 24 hours.""" - txnCount24: StringFilter - """The trade volume in USD in the past hour.""" - volumeUSD1: StringFilter - """The trade volume in USD in the past 4 hours.""" - volumeUSD4: StringFilter - """The trade volume in USD in the past 12 hours.""" - volumeUSD12: StringFilter - """The trade volume in USD in the past 24 hours.""" - volumeUSD24: StringFilter - """The trade volume in the network's base token in the past hour.""" - volumeNBT1: StringFilter - """The trade volume in the network's base token in the past 4 hours.""" - volumeNBT4: StringFilter - """The trade volume in the network's base token in the past 12 hours.""" - volumeNBT12: StringFilter - """The trade volume in the network's base token in the past 24 hours.""" - volumeNBT24: StringFilter - """The total unique daily active users.""" - dailyActiveUsers: NumberFilter - """The total unique monthly active users (30 days).""" - monthlyActiveUsers: NumberFilter - """The list of exchange contract addresses to filter by.""" - address: [String] - """The list of network IDs to filter by.""" - network: [Int] - """Scope to only verified exchanges""" - verified: Boolean -} - -"""Input type of `PairFilters`.""" -input PairFilters { - """The unix timestamp for the creation of the pair.""" - createdAt: NumberFilter - """The unix timestamp for the last transaction to happen on the pair.""" - lastTransaction: NumberFilter - """The number of buys in the past hour.""" - buyCount1: NumberFilter - """The number of buys in the past 12 hours.""" - buyCount12: NumberFilter - """The number of buys in the past 24 hours.""" - buyCount24: NumberFilter - """The number of buys in the past 4 hours.""" - buyCount4: NumberFilter - """The list of exchange contract addresses to filter by.""" - exchangeAddress: [String] - """The highest price in USD in the past hour.""" - highPrice1: NumberFilter - """The highest price in USD in the past 12 hours.""" - highPrice12: NumberFilter - """The highest price in USD in the past 24 hours.""" - highPrice24: NumberFilter - """The highest price in USD in the past 4 hours.""" - highPrice4: NumberFilter - """The amount of liquidity in the pair.""" - liquidity: NumberFilter - """The percent amount of liquidity that is locked""" - lockedLiquidityPercentage: NumberFilter - """The lowest price in USD in the past hour.""" - lowPrice1: NumberFilter - """The lowest price in USD in the past 12 hours.""" - lowPrice12: NumberFilter - """The lowest price in USD in the past 24 hours.""" - lowPrice24: NumberFilter - """The lowest price in USD in the past 4 hours.""" - lowPrice4: NumberFilter - """The list of network IDs to filter by.""" - network: [Int] - """The token price in USD.""" - price: NumberFilter - """The percent price change in the past hour. Decimal format.""" - priceChange1: NumberFilter - """The percent price change in the past 12 hours. Decimal format.""" - priceChange12: NumberFilter - """The percent price change in the past 24 hours. Decimal format.""" - priceChange24: NumberFilter - """The percent price change in the past 4 hours. Decimal format.""" - priceChange4: NumberFilter - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: NumberFilter - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: NumberFilter - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: NumberFilter - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: NumberFilter - """The number of sells in the past hour.""" - sellCount1: NumberFilter - """The number of sells in the past 12 hours.""" - sellCount12: NumberFilter - """The number of sells in the past 24 hours.""" - sellCount24: NumberFilter - """The number of sells in the past 4 hours.""" - sellCount4: NumberFilter - """The list of token contract addresses to filter by.""" - tokenAddress: [String] - """The number of transactions in the past hour.""" - txnCount1: NumberFilter - """The number of transactions in the past 12 hours.""" - txnCount12: NumberFilter - """The number of transactions in the past 24 hours.""" - txnCount24: NumberFilter - """The number of transactions in the past 4 hours.""" - txnCount4: NumberFilter - """The unique number of buys in the past hour.""" - uniqueBuys1: NumberFilter - """The unique number of buys in the past 12 hours.""" - uniqueBuys12: NumberFilter - """The unique number of buys in the past 24 hours.""" - uniqueBuys24: NumberFilter - """The unique number of buys in the past 4 hours.""" - uniqueBuys4: NumberFilter - """The unique number of sells in the past hour.""" - uniqueSells1: NumberFilter - """The unique number of sells in the past 12 hours.""" - uniqueSells12: NumberFilter - """The unique number of sells in the past 24 hours.""" - uniqueSells24: NumberFilter - """The unique number of sells in the past 4 hours.""" - uniqueSells4: NumberFilter - """The unique number of transactions in the past hour.""" - uniqueTransactions1: NumberFilter - """The unique number of transactions in the past 12 hours.""" - uniqueTransactions12: NumberFilter - """The unique number of transactions in the past 24 hours.""" - uniqueTransactions24: NumberFilter - """The unique number of transactions in the past 4 hours.""" - uniqueTransactions4: NumberFilter - """The trade volume in USD in the past hour.""" - volumeUSD1: NumberFilter - """The trade volume in USD in the past 12 hours.""" - volumeUSD12: NumberFilter - """The trade volume in USD in the past 24 hours.""" - volumeUSD24: NumberFilter - """The trade volume in USD in the past 4 hours.""" - volumeUSD4: NumberFilter - """The buy volume in USD in the past hour.""" - buyVolumeUSD1: NumberFilter - """The buy volume in USD in the past 12 hours.""" - buyVolumeUSD12: NumberFilter - """The buy volume in USD in the past 24 hours.""" - buyVolumeUSD24: NumberFilter - """The buy volume in USD in the past 4 hours.""" - buyVolumeUSD4: NumberFilter - """The sell volume in USD in the past hour.""" - sellVolumeUSD1: NumberFilter - """The sell volume in USD in the past 12 hours.""" - sellVolumeUSD12: NumberFilter - """The sell volume in USD in the past 24 hours.""" - sellVolumeUSD24: NumberFilter - """The sell volume in USD in the past 4 hours.""" - sellVolumeUSD4: NumberFilter - """Filter potential Scams""" - potentialScam: Boolean - """Whether to ignore pairs/tokens not relevant to trending""" - trendingIgnored: Boolean - """Whether to filter for pairs on testnet networks. Use `true` for testnet pairs only, `false` for mainnet pairs only and `undefined` (default) for both.""" - isTestnet: Boolean - """The address of the hook contract for applicable protocols.""" - hookAddress: [String] - """The pool's static fee rate in basis points (1 bps = 0.01%), normalized across protocols that each store it differently. Pools with no comparable static rate are not matched by any range here, including pools whose fee a hook sets per swap — filter those with `dynamicFee`.""" - poolFeeBps: NumberFilter - """Whether a hook or plugin sets the fee per swap rather than the pool charging a static rate. Such pools have no `poolFeeBps`, so no range on it will return them. Only set for protocols that report it, so `false` does not describe every other pool.""" - dynamicFee: Boolean - """Filter by the risk verdict of the pair's token of interest. Returns pairs matching any of the provided verdicts.""" - riskVerdicts: [RiskVerdict!] - """Filter by how much contract analysis stood behind the verdict.""" - riskCoverages: [RiskAnalysisCoverage!] - """Filter by risk reason codes. Returns pairs where any of the provided reasons fired.""" - riskReasons: [RiskReasonCode!] - """Filter by the bundling services whose wallets bought the pair's token of interest. Returns pairs whose token was bought by any of the provided services.""" - bundlerServices: [BundlerService!] - """Filter by weighted risk score.""" - riskScore: NumberFilter - """Filter by when the engine last recorded a change to the risk assessment, in Unix seconds.""" - riskFlaggedAt: NumberFilter - """The average age of the wallets that traded in the last 24h""" - walletAgeAvg: NumberFilter - """The standard deviation of age of the wallets that traded in the last 24h""" - walletAgeStd: NumberFilter - """The percentage of wallets that are less than 1d old that have traded in the last 24h""" - swapPct1dOldWallet: NumberFilter - """The percentage of wallets that are less than 7d old that have traded in the last 24h""" - swapPct7dOldWallet: NumberFilter -} - -"""Input type of `filterNetworks`.""" -input NetworkFilters { - """Whether the network is a mainnet.""" - mainnet: Boolean - """The total network liquidity in USD.""" - liquidity: NumberFilter - """The network trade volume in USD in the past 5 minutes.""" - volume5m: NumberFilter - """The network trade volume in USD in the past hour.""" - volume1: NumberFilter - """The network trade volume in USD in the past 4 hours.""" - volume4: NumberFilter - """The network trade volume in USD in the past 12 hours.""" - volume12: NumberFilter - """The network trade volume in USD in the past 24 hours.""" - volume24: NumberFilter - """The percent volume change in the past 5 minutes. Decimal format.""" - volumeChange5m: NumberFilter - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: NumberFilter - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: NumberFilter - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: NumberFilter - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: NumberFilter - """The number of DEX swaps in the past 5 minutes, not chain transactions.""" - transactions5m: NumberFilter @deprecated(reason: "Use swaps5m instead") - """The number of DEX swaps in the past hour, not chain transactions.""" - transactions1: NumberFilter @deprecated(reason: "Use swaps1 instead") - """The number of DEX swaps in the past 4 hours, not chain transactions.""" - transactions4: NumberFilter @deprecated(reason: "Use swaps4 instead") - """The number of DEX swaps in the past 12 hours, not chain transactions.""" - transactions12: NumberFilter @deprecated(reason: "Use swaps12 instead") - """The number of DEX swaps in the past 24 hours, not chain transactions.""" - transactions24: NumberFilter @deprecated(reason: "Use swaps24 instead") - """The number of DEX swaps in the past 5 minutes. A trade routed through two pools counts as two swaps.""" - swaps5m: NumberFilter - """The number of DEX swaps in the past hour. A trade routed through two pools counts as two swaps.""" - swaps1: NumberFilter - """The number of DEX swaps in the past 4 hours. A trade routed through two pools counts as two swaps.""" - swaps4: NumberFilter - """The number of DEX swaps in the past 12 hours. A trade routed through two pools counts as two swaps.""" - swaps12: NumberFilter - """The number of DEX swaps in the past 24 hours. A trade routed through two pools counts as two swaps.""" - swaps24: NumberFilter - """The number of transactions on the chain in the past 5 minutes, failed ones included.""" - chainTransactions5m: NumberFilter - """The number of transactions on the chain in the past hour, failed ones included.""" - chainTransactions1: NumberFilter - """The number of transactions on the chain in the past 4 hours, failed ones included.""" - chainTransactions4: NumberFilter - """The number of transactions on the chain in the past 12 hours, failed ones included.""" - chainTransactions12: NumberFilter - """The number of transactions on the chain in the past 24 hours, failed ones included.""" - chainTransactions24: NumberFilter - """The number of DEX trades on the network in the past 5 minutes. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps.""" - trades5m: NumberFilter - """The number of DEX trades on the network in the past hour. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps.""" - trades1: NumberFilter - """The number of DEX trades on the network in the past 4 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps.""" - trades4: NumberFilter - """The number of DEX trades on the network in the past 12 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps.""" - trades12: NumberFilter - """The number of DEX trades on the network in the past 24 hours. A trade routed through several pools counts once, and no trade is filtered out, unlike swaps.""" - trades24: NumberFilter - """The number of new tokens on the network in the past 5 minutes, counted by creation time: every token Codex indexes, whether a launchpad made it or not.""" - tokensCreated5m: NumberFilter - """The number of new tokens on the network in the past hour, counted by creation time: every token Codex indexes, whether a launchpad made it or not.""" - tokensCreated1: NumberFilter - """The number of new tokens on the network in the past 4 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not.""" - tokensCreated4: NumberFilter - """The number of new tokens on the network in the past 12 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not.""" - tokensCreated12: NumberFilter - """The number of new tokens on the network in the past 24 hours, counted by creation time: every token Codex indexes, whether a launchpad made it or not.""" - tokensCreated24: NumberFilter - """The number of distinct wallets that made DEX trades on the network in the past 5 minutes.""" - traders5m: NumberFilter - """The number of distinct wallets that made DEX trades on the network in the past hour.""" - traders1: NumberFilter - """The number of distinct wallets that made DEX trades on the network in the past 4 hours.""" - traders4: NumberFilter - """The number of distinct wallets that made DEX trades on the network in the past 12 hours.""" - traders12: NumberFilter - """The number of distinct wallets that made DEX trades on the network in the past 24 hours.""" - traders24: NumberFilter - """The number of tokens traded on the network in the past 5 minutes: tokens Codex indexes whose last trade falls in the window.""" - tokensTraded5m: NumberFilter - """The number of tokens traded on the network in the past hour: tokens Codex indexes whose last trade falls in the window.""" - tokensTraded1: NumberFilter - """The number of tokens traded on the network in the past 4 hours: tokens Codex indexes whose last trade falls in the window.""" - tokensTraded4: NumberFilter - """The number of tokens traded on the network in the past 12 hours: tokens Codex indexes whose last trade falls in the window.""" - tokensTraded12: NumberFilter - """The number of tokens traded on the network in the past 24 hours: tokens Codex indexes whose last trade falls in the window.""" - tokensTraded24: NumberFilter - """The number of launchpad tokens on the network whose bonding curve completed in the past 5 minutes, counted by completion time.""" - tokensGraduated5m: NumberFilter - """The number of launchpad tokens on the network whose bonding curve completed in the past hour, counted by completion time.""" - tokensGraduated1: NumberFilter - """The number of launchpad tokens on the network whose bonding curve completed in the past 4 hours, counted by completion time.""" - tokensGraduated4: NumberFilter - """The number of launchpad tokens on the network whose bonding curve completed in the past 12 hours, counted by completion time.""" - tokensGraduated12: NumberFilter - """The number of launchpad tokens on the network whose bonding curve completed in the past 24 hours, counted by completion time.""" - tokensGraduated24: NumberFilter - """The number of new tokens on the network created 24 to 48 hours ago.""" - tokensCreatedPrev24: NumberFilter - """Of the tokens created 24 to 48 hours ago, the number that swapped in the past 24 hours.""" - tokensSurvived24: NumberFilter - """The total supply of USD stablecoins on the network, at $1 a token.""" - stablecoinSupplyUsd: NumberFilter -} - -"""Phase-level stats filters for `filterLaunchpads`. Each field is a numeric range filter applied to one phase's stats.""" -input LaunchpadStatsFilters { - """The trade volume in USD in the past hour.""" - volume1: NumberFilter - """The trade volume in USD in the past 4 hours.""" - volume4: NumberFilter - """The trade volume in USD in the past 12 hours.""" - volume12: NumberFilter - """The trade volume in USD in the past 24 hours.""" - volume24: NumberFilter - """The trade volume in USD in the past week.""" - volume1w: NumberFilter - """The buy volume in USD in the past hour.""" - buyVolume1: NumberFilter - """The buy volume in USD in the past 4 hours.""" - buyVolume4: NumberFilter - """The buy volume in USD in the past 12 hours.""" - buyVolume12: NumberFilter - """The buy volume in USD in the past 24 hours.""" - buyVolume24: NumberFilter - """The buy volume in USD in the past week.""" - buyVolume1w: NumberFilter - """The sell volume in USD in the past hour.""" - sellVolume1: NumberFilter - """The sell volume in USD in the past 4 hours.""" - sellVolume4: NumberFilter - """The sell volume in USD in the past 12 hours.""" - sellVolume12: NumberFilter - """The sell volume in USD in the past 24 hours.""" - sellVolume24: NumberFilter - """The sell volume in USD in the past week.""" - sellVolume1w: NumberFilter - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: NumberFilter - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: NumberFilter - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: NumberFilter - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: NumberFilter - """The percent volume change in the past week. Decimal format.""" - volumeChange1w: NumberFilter - """The number of transactions in the past hour.""" - transactions1: NumberFilter - """The number of transactions in the past 4 hours.""" - transactions4: NumberFilter - """The number of transactions in the past 12 hours.""" - transactions12: NumberFilter - """The number of transactions in the past 24 hours.""" - transactions24: NumberFilter - """The number of transactions in the past week.""" - transactions1w: NumberFilter - """The number of buys in the past hour.""" - buys1: NumberFilter - """The number of buys in the past 4 hours.""" - buys4: NumberFilter - """The number of buys in the past 12 hours.""" - buys12: NumberFilter - """The number of buys in the past 24 hours.""" - buys24: NumberFilter - """The number of buys in the past week.""" - buys1w: NumberFilter - """The number of sells in the past hour.""" - sells1: NumberFilter - """The number of sells in the past 4 hours.""" - sells4: NumberFilter - """The number of sells in the past 12 hours.""" - sells12: NumberFilter - """The number of sells in the past 24 hours.""" - sells24: NumberFilter - """The number of sells in the past week.""" - sells1w: NumberFilter - """The number of tokens with trading activity in the past hour.""" - activeTokens1: NumberFilter - """The number of tokens with trading activity in the past 4 hours.""" - activeTokens4: NumberFilter - """The number of tokens with trading activity in the past 12 hours.""" - activeTokens12: NumberFilter - """The number of tokens with trading activity in the past 24 hours.""" - activeTokens24: NumberFilter - """The number of tokens with trading activity in the past week.""" - activeTokens1w: NumberFilter - """The total liquidity in USD.""" - liquidity: NumberFilter - """The total market cap in USD.""" - marketCap: NumberFilter - """The pool fees in USD in the past hour. Null when the launchpad has no fee data.""" - poolFees1: NumberFilter - """The pool fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - poolFees4: NumberFilter - """The pool fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - poolFees12: NumberFilter - """The pool fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - poolFees24: NumberFilter - """The pool fees in USD in the past week. Null when the launchpad has no fee data.""" - poolFees1w: NumberFilter - """The total fees in USD in the past hour. Null when the launchpad has no fee data.""" - totalFees1: NumberFilter - """The total fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - totalFees4: NumberFilter - """The total fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - totalFees12: NumberFilter - """The total fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - totalFees24: NumberFilter - """The total fees in USD in the past week. Null when the launchpad has no fee data.""" - totalFees1w: NumberFilter - """The ratio of fees to volume in the past hour. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1: NumberFilter - """The ratio of fees to volume in the past 4 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio4: NumberFilter - """The ratio of fees to volume in the past 12 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio12: NumberFilter - """The ratio of fees to volume in the past 24 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio24: NumberFilter - """The ratio of fees to volume in the past week. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1w: NumberFilter -} - -"""Input type of `filterLaunchpads`. Numeric filters apply to the combined stats at the root; use `pre`/`post` for phase-level stats filters.""" -input LaunchpadFilters { - """A list of launchpad protocols.""" - launchpadProtocol: [String!] - """Whether the launchpad is a third-party launchpad.""" - isThirdParty: Boolean - """Whether the document is for a testnet network.""" - isTestnet: Boolean - """The unix timestamp for when the launchpad stats were last updated.""" - timestamp: NumberFilter - """The total number of tokens created by the launchpad.""" - tokensTotal: NumberFilter - """The total number of tokens that completed their bonding curve.""" - tokensCompletedTotal: NumberFilter - """The total number of tokens that migrated.""" - tokensMigratedTotal: NumberFilter - """The all-time share of tokens that migrated. Decimal format.""" - migrationRate: NumberFilter - """The average bonding curve progress of non-migrated tokens, from 0 to 100.""" - avgGraduationPercent: NumberFilter - """The number of tokens created in the past hour.""" - tokensCreated1: NumberFilter - """The number of tokens created in the past 4 hours.""" - tokensCreated4: NumberFilter - """The number of tokens created in the past 12 hours.""" - tokensCreated12: NumberFilter - """The number of tokens created in the past 24 hours.""" - tokensCreated24: NumberFilter - """The number of tokens created in the past week.""" - tokensCreated1w: NumberFilter - """The number of tokens that completed their bonding curve in the past hour.""" - tokensCompleted1: NumberFilter - """The number of tokens that completed their bonding curve in the past 4 hours.""" - tokensCompleted4: NumberFilter - """The number of tokens that completed their bonding curve in the past 12 hours.""" - tokensCompleted12: NumberFilter - """The number of tokens that completed their bonding curve in the past 24 hours.""" - tokensCompleted24: NumberFilter - """The number of tokens that completed their bonding curve in the past week.""" - tokensCompleted1w: NumberFilter - """The number of tokens that migrated in the past hour.""" - tokensMigrated1: NumberFilter - """The number of tokens that migrated in the past 4 hours.""" - tokensMigrated4: NumberFilter - """The number of tokens that migrated in the past 12 hours.""" - tokensMigrated12: NumberFilter - """The number of tokens that migrated in the past 24 hours.""" - tokensMigrated24: NumberFilter - """The number of tokens that migrated in the past week.""" - tokensMigrated1w: NumberFilter - """The share of tokens that migrated in the past 24 hours. Decimal format.""" - migrationRate24: NumberFilter - """The share of tokens that migrated in the past week. Decimal format.""" - migrationRate1w: NumberFilter - """The trade volume in USD in the past hour.""" - volume1: NumberFilter - """The trade volume in USD in the past 4 hours.""" - volume4: NumberFilter - """The trade volume in USD in the past 12 hours.""" - volume12: NumberFilter - """The trade volume in USD in the past 24 hours.""" - volume24: NumberFilter - """The trade volume in USD in the past week.""" - volume1w: NumberFilter - """The buy volume in USD in the past hour.""" - buyVolume1: NumberFilter - """The buy volume in USD in the past 4 hours.""" - buyVolume4: NumberFilter - """The buy volume in USD in the past 12 hours.""" - buyVolume12: NumberFilter - """The buy volume in USD in the past 24 hours.""" - buyVolume24: NumberFilter - """The buy volume in USD in the past week.""" - buyVolume1w: NumberFilter - """The sell volume in USD in the past hour.""" - sellVolume1: NumberFilter - """The sell volume in USD in the past 4 hours.""" - sellVolume4: NumberFilter - """The sell volume in USD in the past 12 hours.""" - sellVolume12: NumberFilter - """The sell volume in USD in the past 24 hours.""" - sellVolume24: NumberFilter - """The sell volume in USD in the past week.""" - sellVolume1w: NumberFilter - """The percent volume change in the past hour. Decimal format.""" - volumeChange1: NumberFilter - """The percent volume change in the past 4 hours. Decimal format.""" - volumeChange4: NumberFilter - """The percent volume change in the past 12 hours. Decimal format.""" - volumeChange12: NumberFilter - """The percent volume change in the past 24 hours. Decimal format.""" - volumeChange24: NumberFilter - """The percent volume change in the past week. Decimal format.""" - volumeChange1w: NumberFilter - """The number of transactions in the past hour.""" - transactions1: NumberFilter - """The number of transactions in the past 4 hours.""" - transactions4: NumberFilter - """The number of transactions in the past 12 hours.""" - transactions12: NumberFilter - """The number of transactions in the past 24 hours.""" - transactions24: NumberFilter - """The number of transactions in the past week.""" - transactions1w: NumberFilter - """The number of buys in the past hour.""" - buys1: NumberFilter - """The number of buys in the past 4 hours.""" - buys4: NumberFilter - """The number of buys in the past 12 hours.""" - buys12: NumberFilter - """The number of buys in the past 24 hours.""" - buys24: NumberFilter - """The number of buys in the past week.""" - buys1w: NumberFilter - """The number of sells in the past hour.""" - sells1: NumberFilter - """The number of sells in the past 4 hours.""" - sells4: NumberFilter - """The number of sells in the past 12 hours.""" - sells12: NumberFilter - """The number of sells in the past 24 hours.""" - sells24: NumberFilter - """The number of sells in the past week.""" - sells1w: NumberFilter - """The number of tokens with trading activity in the past hour.""" - activeTokens1: NumberFilter - """The number of tokens with trading activity in the past 4 hours.""" - activeTokens4: NumberFilter - """The number of tokens with trading activity in the past 12 hours.""" - activeTokens12: NumberFilter - """The number of tokens with trading activity in the past 24 hours.""" - activeTokens24: NumberFilter - """The number of tokens with trading activity in the past week.""" - activeTokens1w: NumberFilter - """The total liquidity in USD.""" - liquidity: NumberFilter - """The total market cap in USD.""" - marketCap: NumberFilter - """The pool fees in USD in the past hour. Null when the launchpad has no fee data.""" - poolFees1: NumberFilter - """The pool fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - poolFees4: NumberFilter - """The pool fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - poolFees12: NumberFilter - """The pool fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - poolFees24: NumberFilter - """The pool fees in USD in the past week. Null when the launchpad has no fee data.""" - poolFees1w: NumberFilter - """The total fees in USD in the past hour. Null when the launchpad has no fee data.""" - totalFees1: NumberFilter - """The total fees in USD in the past 4 hours. Null when the launchpad has no fee data.""" - totalFees4: NumberFilter - """The total fees in USD in the past 12 hours. Null when the launchpad has no fee data.""" - totalFees12: NumberFilter - """The total fees in USD in the past 24 hours. Null when the launchpad has no fee data.""" - totalFees24: NumberFilter - """The total fees in USD in the past week. Null when the launchpad has no fee data.""" - totalFees1w: NumberFilter - """The ratio of fees to volume in the past hour. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1: NumberFilter - """The ratio of fees to volume in the past 4 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio4: NumberFilter - """The ratio of fees to volume in the past 12 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio12: NumberFilter - """The ratio of fees to volume in the past 24 hours. Null when the window has no fee data or no volume.""" - feeToVolumeRatio24: NumberFilter - """The ratio of fees to volume in the past week. Null when the window has no fee data or no volume.""" - feeToVolumeRatio1w: NumberFilter - """Phase-level stats filters for tokens still on the bonding curve.""" - pre: LaunchpadStatsFilters - """Phase-level stats filters for tokens that have migrated.""" - post: LaunchpadStatsFilters -} - -"""Input type of `PairFilterMatchTokens`.""" -input PairFilterMatchTokens { - """The contract address of `token0` to filter by.""" - token0: String - """The contract address of `token1` to filter by.""" - token1: String -} - -"""Input type of `chartUrls`.""" -input ChartInput { - """The input required to fetch a pair chart.""" - pair: PairChartInput -} - -"""Input type of `PairChartInput`.""" -input PairChartInput { - """Options that pertain to the image itself.""" - imageOptions: ChartImageOptions - """Settings that pertain to the chart.""" - chartSettings: PairChartSettings! -} - -"""Input options for the chart image.""" -input ChartImageOptions { - """The expiry time of the image in seconds. Max: 172800 (2 days). Default: 900 (15 minutes).""" - expirationSeconds: Int - """The width of the image in pixels. Max: 1200. Default: 800.""" - width: Int - """The height of the image in pixels. Max: 1200. Default: 450.""" - height: Int -} - -"""Input options for the chart.""" -input PairChartSettings { - """The contract address of the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The unix timestamp for the start of the requested range.""" - from: Int - """The unix timestamp for the end of the requested range.""" - to: Int - """The token of interest within the token's top pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The time frame for each candle. Available options are `1S`, `5S`, `15S`, `30S`, `1`, `5`, `15`, `30`, `60`, `240`, `720`, `1D`, `7D`.""" - resolution: String - """The color theme of the chart.""" - theme: ChartTheme -} - -"""The color theme of the chart.""" -enum ChartTheme { - LIGHT - DARK -} - -"""The response type for a chart url query.""" -type ChartUrlsResponse { - """The pair chart url.""" - pair: ChartUrl! -} - -"""The chart url.""" -type ChartUrl { - """The chart url.""" - url: String! -} - -"""Specific data for an event label.""" -union EventLabelData = FrontRunLabelData | SandwichedLabelData - -"""Metadata for a front-run label.""" -type FrontRunLabelData { - """The index of the front-run label. Can be 0 or 1.""" - index: Int - """The amount of `token0` drained in the attack.""" - token0DrainedAmount: String! - """The amount of `token1` drained in the attack.""" - token1DrainedAmount: String! -} - -"""Metadata for a sandwich label.""" -type SandwichedLabelData { - """The amount of `token0` drained in the attack.""" - token0DrainedAmount: String - """The amount of `token1` drained in the attack.""" - token1DrainedAmount: String -} - -"""Fee breakdown for a single event. All wei-denominated fields are in the network's native token smallest unit.""" -type EventFeeData { - """Pool fee rate in the protocol's native encoding.""" - poolFeeRateRaw: String - """Pool fee rate normalized to basis points (1 bps = 0.01%).""" - poolFeeBps: Float - """Pool fee absolute amount in the fee token's smallest unit.""" - poolFeeAmountRaw: String - """True when the pool fee is dynamic (e.g. UniswapV4 hooks, AlgebraIntegral plugins).""" - dynamicFee: Boolean - """True when poolFeeBps is a protocol-level estimate rather than an exact per-pool or per-swap value (e.g. MintClub averaged mint/burn royalties).""" - estimatedPoolFee: Boolean - """Base fee portion of gas cost in native token smallest unit (wei for EVM, lamports for Solana). baseFeePerGas * gasUsed on EVM, 5000 lamports * signatures on Solana.""" - baseFeeNativeUnit: String - """Priority fee / gas tip in native token smallest unit. (effectiveGasPrice - baseFeePerGas) * gasUsed on EVM, meta.fee - baseFee on Solana.""" - priorityFeeNativeUnit: String - """Gas units consumed by the transaction (EVM gas units or Solana compute units).""" - gasUsed: String - """Which pool slot (0 or 1) `poolFeeAmountRaw` is denominated in, when the pool's slots are not measured in the same currency (e.g. a native slot); null otherwise.""" - poolFeeCurrencyIndex: Int - """Which pool slot (0 or 1) the protocol fee amount is denominated in, when the pool's slots are not measured in the same currency; null otherwise.""" - protocolFeeCurrencyIndex: Int - """Direct payment to the block builder in native token smallest unit. Sum of ETH transfers to block.coinbase on EVM, or Jito tip on Solana.""" - builderTipNativeUnit: String - """L1 data posting fee in native token smallest unit (L2 rollups only: Base, Optimism, etc.).""" - l1DataFeeNativeUnit: String - """Number of DEX events in this transaction. Used to pro-rate transaction-level fees per event.""" - txEventCount: Int - """Protocol-specific supplemental fee data (e.g. Pump cashback).""" - supplementalFeeData: SupplementalFeeData -} - -"""Cashback fee data for Pump V1 swaps.""" -type PumpCashbackFeeData { - """Discriminant for the SupplementalFeeData union.""" - type: String! - """Cashback fee rate in basis points.""" - cashbackFeeBps: Int! - """Cashback amount in lamports.""" - cashbackAmountLamports: String! -} - -"""Cashback fee data for Pump AMM swaps.""" -type PumpAmmCashbackFeeData { - """Discriminant for the SupplementalFeeData union.""" - type: String! - """Cashback fee rate in basis points.""" - cashbackFeeBps: Int! - """Cashback amount in lamports.""" - cashbackAmountLamports: String! -} - -"""Realized Lift harvest payouts on the zero-liquidity V3 Burn fee poke; not an extra trading fee. Amounts are raw units.""" -type LiftHarvestFeeData { - """Discriminant for the SupplementalFeeData union.""" - type: String! - """The Lift NFT position the harvest was collected from.""" - positionId: String! - """The quote token the payouts are denominated in.""" - quoteAddress: String! - """The launch creator paid by the harvest, when known.""" - creatorAddress: String - """Raw quote paid to the creator.""" - quoteToCreator: String! - """Raw quote paid to the Lift treasury.""" - quoteToTreasury: String! - """Raw launched-token amount burned by the harvest.""" - baseBurned: String! -} - -"""Distribution of previously accrued Tolly fees, attached only to a V3 Collect. Amounts are raw ERC-20 units.""" -type TollyCollectionFeeData { - """Discriminant for the SupplementalFeeData union.""" - type: String! - """The Tolly NFT position the fees were collected from.""" - positionId: String! - """The launched project token.""" - projectToken: String! - """Raw quote collected.""" - quoteCollectedRaw: String! - """Raw project token burned.""" - tokenBurnedRaw: String! - """Raw quote used for the Tolly buyback.""" - tollyBuybackRaw: String! - """Raw quote used for the project buyback.""" - projectBuybackRaw: String! - """Raw quote accrued toward the project buyback.""" - projectBuybackAccruedRaw: String! - """Raw quote distributed to holders.""" - holderRewardsRaw: String! - """Raw quote paid to the protocol.""" - protocolRaw: String! - """Raw quote paid to the creator.""" - creatorPaidRaw: String! - """Raw quote accrued to the creator.""" - creatorAccruedRaw: String! -} - -"""Protocol-specific supplemental fee data.""" -union SupplementalFeeData = PumpCashbackFeeData | PumpAmmCashbackFeeData | LiftHarvestFeeData | TollyCollectionFeeData - -"""Event labels. Can be `sandwich` or `washtrade`.""" -type LabelsForEvent { - sandwich: SandwichLabelForEvent - washtrade: WashtradeLabelForEvent -} - -"""Sandwich event label types.""" -enum SandwichLabelForEventType { - sandwiched - frontrun - backrun -} - -"""Metadata for a sandwich label.""" -type SandwichLabelForEvent { - """The label type, 'sandwiched'.""" - label: String! - """The sandwich event label types.""" - sandwichType: SandwichLabelForEventType! - """The amount of `token0` drained in the attack.""" - token0DrainedAmount: String! - """The amount of `token1` drained in the attack.""" - token1DrainedAmount: String! -} - -"""Metadata for a washtrade label.""" -type WashtradeLabelForEvent { - """The label type, 'washtrade'""" - label: String! -} - -"""Metadata for an event label.""" -type EventLabel { - """Specific data for the event label type.""" - data: EventLabelData! - """The ID of the pair (`address:networkId`).""" - id: String! - """The event label type.""" - label: EventLabelType! - """The index of the log in the block.""" - logIndex: Int! - """The network ID the pair is deployed on.""" - networkId: Int! - """The unix timestamp for the transaction.""" - timestamp: Int! - """The index of the transaction within the block.""" - transactionIndex: Int! - """The unique hash for the transaction.""" - transactionHash: String! -} - -"""Response returned by `getEventLabels`.""" -type EventLabelConnection { - """A list of event labels for a pair.""" - items: [EventLabel] - """The cursor to use for pagination.""" - cursor: String -} - -"""Input type of `token` and `tokens`.""" -input TokenInput { - """The contract address of the token.""" - address: String! - """The network ID the token is deployed on.""" - networkId: Int! -} - -"""Metadata for a token in a pair.""" -type PairMetadataToken { - address: String! - decimals: Int - name: String! - networkId: Int! - pooled: String! - price: String! - symbol: String! - labels: [ContractLabel] -} - -type PairMetadata { - """The exchange contract ID.""" - exchangeId: String - """The exchange fee for swaps.""" - fee: Int - """The ID for the pair (`address:networkId`).""" - id: String! - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The network ID the pair is deployed on.""" - networkId: Int - """The total liquidity in the pair.""" - liquidity: String! - """The token with higher liquidity within the pair. Can be `token0` or `token1`.""" - liquidityToken: String - """The token with lower liquidity within the pair. Can be `token0` or `token1`.""" - nonLiquidityToken: String - """The contract address of the pair.""" - pairAddress: String! - """The type of statistics returned. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType! - """The quote token price in USD.""" - price: String! - """The non-quote token price in USD.""" - priceNonQuoteToken: String! - """The percent price change in the past 5 minutes. Decimal format.""" - priceChange5m: Float - """The percent price change in the past hour. Decimal format.""" - priceChange1: Float - """The percent price change in the past 4 hours. Decimal format.""" - priceChange4: Float - """The percent price change in the past 12 hours. Decimal format.""" - priceChange12: Float - """The percent price change in the past 24 hours. Decimal format.""" - priceChange24: Float - """The percent price change in the past week. Decimal format.""" - priceChange1w: Float @deprecated(reason: "Inaccurate") - """The amount of required tick separation. Only applicable for pairs on UniswapV3.""" - tickSpacing: Int - """Pair metadata for the first token in the pair.""" - token0: PairMetadataToken! - """Pair metadata for the second token in the pair.""" - token1: PairMetadataToken! - """The trade volume in USD in the past hour.""" - volume1: String - """The trade volume in USD in the past 4 hours.""" - volume4: String - """The trade volume in USD in the past 12 hours.""" - volume12: String - """The trade volume in USD in the past 24 hours.""" - volume24: String - """The trade trade volume in USD in the past week.""" - volume1w: String @deprecated(reason: "Inaccurate") - """The trade volume in USD in the past 5 minutes.""" - volume5m: String - """The highest price in USD in the past 5 minutes.""" - highPrice5m: String - """The highest price in USD in the past hour.""" - highPrice1: String - """The highest price in USD in the past 4 hours.""" - highPrice4: String - """The highest price in USD in the past 12 hours.""" - highPrice12: String - """The highest price in USD in the past 24 hours.""" - highPrice24: String - """The highest price in USD in the past week.""" - highPrice1w: String @deprecated(reason: "Inaccurate") - """The lowest price in USD in the past 5 minutes.""" - lowPrice5m: String - """The lowest price in USD in the past hour.""" - lowPrice1: String - """The lowest price in USD in the past 12 hours.""" - lowPrice12: String - """The lowest price in USD in the past 24 hours.""" - lowPrice24: String - """The lowest price in USD in the past 4 hours.""" - lowPrice4: String - """The lowest price in USD in the past week.""" - lowPrice1w: String @deprecated(reason: "Inaccurate") - """Token metadata for the first token in the pair.""" - enhancedToken0: EnhancedToken - """Token metadata for the second token in the pair.""" - enhancedToken1: EnhancedToken - """Wallet pattern data for the quote token, if available. Only populated for launchpad tokens.""" - walletActivity: TokenWalletActivity - """The unix timestamp for the creation of the pair.""" - createdAt: Int - """The percentage of total supply held by the top 10 holders.""" - top10HoldersPercent: Float - """The measurement units the pool's reserves (`token0.pooled`, `token1.pooled`) were shifted by; null when the pool measures in its tokens' metadata (`token0.decimals`, `token1.decimals`).""" - currencyUnits: CurrencyUnits -} - -"""Response returned by `listPairsWithMetadataForToken`.""" -type ListPairsForTokenResponse { - """A list of pairs containing a given token.""" - results: [ListPairsForTokenValue!]! -} - -"""Metadata for a pair containing a given token.""" -type ListPairsForTokenValue { - """The volume for the pair in USD.""" - volume: String! - """The total liquidity in the pair.""" - liquidity: String! - """Metadata for token with higher liquidity within the pair.""" - token: EnhancedToken! - """Metadata for token with lower liquidity within the pair.""" - backingToken: EnhancedToken! - """Metadata for the pair.""" - pair: Pair! - """Exchange metadata for the pair.""" - exchange: Exchange! - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken -} - -type PairProtocolCustomData { - """The address of the hook contract for Uniswap V4 pools.""" - uniswapV4HookAddress: String -} - -type UniswapV4Data { - """The address of the hook contract for Uniswap V4 pools.""" - uniswapV4HookAddress: String - """Whether the token is the network token for the Uniswap V4 pool.""" - isToken0NetworkToken: Boolean - """Whether the pool uses a dynamic fee. A fee of 0x80000 is used by Uniswap V4 to indicate a dynamic pool -- in such cases, the fee percentage on the pair should be disregarded.""" - isDynamicFee: Boolean - """The measurement units of the pool's slots, when they differ from the tokens' metadata.""" - currencyUnits: CurrencyUnits - type: String! -} - -type ArenaTradeData { - """Protocol specific token ID""" - tokenId: String - type: String! -} - -type PumpData { - """Creator from create instruction data""" - creator: String - type: String! -} - -union ProtocolData = UniswapV4Data | ArenaTradeData | PumpData - -"""The measurement units of a pool's two slots. Present only for a pool whose raw side amounts are not measured in its tokens' contract metadata (for example a native-currency slot); null for every other pool, whose raw amounts follow `token0Data.decimals` / `token1Data.decimals`. `Token.decimals` is always the contract's metadata.""" -type CurrencyUnits { - """The original on-chain currency of slot 0 (a native slot keeps its zero address).""" - currency0: String! - """The original on-chain currency of slot 1.""" - currency1: String! - """The decimals raw slot-0 amounts, reserves and prices are measured in.""" - decimals0: Int! - """The decimals raw slot-1 amounts, reserves and prices are measured in.""" - decimals1: Int! -} - -"""Metadata for a token pair.""" -type Pair { - """The contract address of the pair.""" - address: String! - """The address for the exchange factory contract.""" - exchangeHash: String! - """The exchange fee for swaps.""" - fee: Int - """The ID for the pair (`address:networkId`).""" - id: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The protocol of the pair. E.g. UniswapV4, RaydiumV4, PumpV1, etc.""" - protocol: String - """The amount of required tick separation. Only applicable for pairs on UniswapV3.""" - tickSpacing: Int - """The contract address of `token0`.""" - token0: String! - """The contract address of `token1`.""" - token1: String! - """The unix timestamp for the creation of the pair.""" - createdAt: Int - """Metadata for the first token in the pair.""" - token0Data: EnhancedToken - """Metadata for the second token in the pair.""" - token1Data: EnhancedToken - """The pooled amounts of each token in the pair.""" - pooled: PooledTokenValues - """The virtual pooled amounts of each token in the pair.""" - virtualPooled: PooledTokenValues - """The measurement units of this pool's raw side amounts and reserves; null when the pool measures in its tokens' metadata.""" - currencyUnits: CurrencyUnits - """Custom data for the pair, only certain protocols have this. (uniswapv4, arenatrade for example)""" - protocolData: ProtocolData - """The per-protocol data for the pair, if applicable""" - protocolCustomData: PairProtocolCustomData @deprecated(reason: "Use protocolData instead") -} - -"""A value in a sparkline.""" -type SparklineValue { - timestamp: Int! - value: Float! -} - -"""A sparkline for a token.""" -type TokenSparkline { - """The token id""" - id: String! - """The timeframe of the sparkline.""" - resolution: String! - """Which attribute the sparkline is charting. Defaults to `PRICE`""" - attribute: SparklineAttribute - """List of sparkline values to chart""" - sparkline: [SparklineValue!]! -} - -"""Input type of `tokenSparkline`.""" -input TokenSparklineInput { - """The contract address & networkId of the token, joined by a colon. ex: 0xbe042e9d09cb588331ff911c2b46fd833a3e5bd6:1""" - ids: [String!]! - """The unix timestamp for the start of the requested range. Defaults to 1 week ago.""" - from: Int - """The unix timestamp for the end of the requested range. Defaults to current time.""" - to: Int - """The time frame for each candle. Available options are `1S`, `5S`, `15S`, `30S`, `1`, `5`, `15`, `30`, `60`, `240`, `720`, `1D`, `7D`. Defaults to `60` (1 hour)""" - resolution: String - """Whether to add empty bars to the response, populated with the previous bar's value. Default is `false`""" - fillMissingBars: Boolean -} - -"""A page of recorded analysis results returned by `getSimulateTokenContractResults`.""" -type GetSimulateTokenContractResultsConnection { - """The recorded analyses in this page.""" - results: [SimulateTokenContractResult!]! - """Opaque pagination cursor. Pass as cursor on the next query; null when no further page is available.""" - cursor: String -} - -"""Error codes for a token contract buy/sell.""" -enum SimulateTokenContractBuySellErrorEnum { - INSUFFICIENT_OUTPUT_AMOUNT - INSUFFICIENT_LIQUIDITY - TRANSFER_FAILED - UNKNOWN_ERROR -} - -"""Analysis pipeline status. SUCCESS means processing completed, including honeypot and indeterminate outcomes; inspect verdict for the finding. FAILURE means processing failed, and PENDING means the request is awaiting a recorded outcome.""" -enum SimulateTokenContractResultStatusEnum { - SUCCESS - FAILURE - PENDING -} - -"""Verdict of a completed analysis, orthogonal to status (the pipeline lifecycle). TRADEABLE / HONEYPOT are decisive; INDETERMINATE means the analysis ran but couldn't reach a decisive verdict (no/low liquidity, unswappable/unsupported venue, no native route, timeout) — see verdictReason.""" -enum AnalysisVerdictEnum { - TRADEABLE - HONEYPOT - INDETERMINATE -} - -"""Errors for a token contract buy/sell.""" -type SimulateTokenContractErrors { - simulatorError: String - tokenErrors: SimulateTokenErrorsType! - deployErrors: SimulateDeployErrorsType! - contractBalanceErrors: SimulateContractBalanceErrorsType! - liquidityErrors: SimulateLiquidityErrorsType! - transferErrors: SimulateTransferErrorsType! - swapErrors: SimulateSwapErrorsType! - ownerErrors: SimulateOwnerErrorsType! - creatorErrors: SimulateCreatorErrorsType! -} - -"""A recorded token analysis. Inspect verdict rather than status or individual swap flags to interpret the outcome. Nullable measurements can be unavailable, unsupported or not attempted; null does not mean zero or safe. Legacy rows may omit verdict.""" -type SimulateTokenContractResult { - id: String! - sortKey: String! - contractHashKey: String! - uuidHashKey: String! - """Recorded analysis block number, encoded as a string. An empty string indicates an unavailable block number.""" - blockNumber: String! - networkId: Int! - """Analysis input mode: 0 for deployment input, 1 for creation transaction, and 2 for a live contract.""" - analysisType: Int! - """Unix timestamp in seconds recorded when the analysis request was created.""" - timestamp: Int! - status: SimulateTokenContractResultStatusEnum! - """Analysis verdict (orthogonal to status). Null on legacy rows written before verdicts existed.""" - verdict: AnalysisVerdictEnum - """Human-readable reason a verdict is INDETERMINATE (e.g. low/no liquidity). Null otherwise.""" - verdictReason: String - errors: SimulateTokenContractErrors! - """The simulationId returned when the request was submitted.""" - uuid: String! - token: SimulateTokenType! - deploy: SimulateDeployType! - contractBalance: SimulateContractBalanceType! - liquidity: SimulateLiquidityType! - transfer: SimulateTransferType! - swap: SimulateSwapType! - owner: SimulateOwnerType! - creator: SimulateCreatorType! -} - -"""Result of a token contract deploy.""" -type SimulateDeployType { - deploySuccess: Boolean - """Legacy simulation: tokens minted to the deployer in decimal-adjusted token units. Check deployErrors because zero can also accompany a failed measurement.""" - tokenMintedToDeployer: String -} - -"""Errors for a token contract deploy.""" -type SimulateDeployErrorsType { - deployError: String - tokenMintedToDeployerError: String -} - -"""Result of a token contract liquidity.""" -type SimulateLiquidityType { - """Trading pool identifier, when available. Usually an address; Uniswap V4 results can contain a 32-byte pool ID. Null when no single pool is reported.""" - pairAddress: String - """Liquidity-token supply in raw liquidity-token units. Null when unavailable.""" - lpTotalSupply: String - preLiquidityEnableTradingCall: String - preLiquidityEnableTradingSuccess: Boolean - preLiquidityEnableTradingSupportsTransfer: Boolean - liquiditySetByPreLiquidityOpenTradingCall: Boolean - postLiquidityEnableTradingCall: String - postLiquidityEnableTradingSuccess: Boolean - addLiquiditySuccess: Boolean -} - -"""Errors for a token contract liquidity.""" -type SimulateLiquidityErrorsType { - lpTotalSupplyError: String - preLiquidityEnableTradingError: String - postLiquidityEnableTradingError: String - addLiquidityError: String -} - -"""Result of a token contract transfer.""" -type SimulateTransferType { - tokenContractApprovalSuccess: Boolean - tokenTransferredToContractSuccess: Boolean - userApprovalSuccess: Boolean -} - -"""Errors for a token contract transfer.""" -type SimulateTransferErrorsType { - tokenContractApprovalError: String - tokenTransferredToContractError: String - userApprovalError: String -} - -"""Result of a token contract swap.""" -type SimulateSwapType { - """Buy outcome inferred from recorded errors. Do not use this flag alone: pending or incomplete records may have no errors. Inspect verdict and status.""" - buySuccess: Boolean - """Current analyzer: tax on the simulated buy alone, excluding pool fees, as a decimal fraction encoded as a string (0.05 means 5%). Legacy simulation rows used percentage values and a different sign convention; values are returned without normalization. Null when the buy could not be measured on its own.""" - buyTax: String - """Gas units consumed by the simulated buy, encoded as an integer string. Null when not recorded.""" - buyGasUsed: String - """Legacy detected buy limit in decimal-adjusted token units. Null when a limit was not recorded; this does not prove unrestricted buying.""" - maxBuyAmount: String - """Sell outcome inferred from recorded errors. Do not use this flag alone: pending or incomplete records may have no errors. Inspect verdict and status.""" - sellSuccess: Boolean - """Current analyzer: tax on the simulated sell alone, excluding pool fees, as a decimal fraction encoded as a string (0.05 means 5%). Null when the sell could not be measured on its own, or when the sale failed by reverting or returning almost nothing; a sell cap stores the tax measured on the smaller sale that went through. Older records can instead hold an estimate from the whole buy-and-sell round trip, or `1` for a failed sell; `TokenRisk.sellTax` returns measured values only. Legacy simulation rows used percentage values and a different sign convention; values are returned without normalization.""" - sellTax: String - """Gas units consumed by the simulated sell, encoded as an integer string. Null when not recorded.""" - sellGasUsed: String - """Current analyzer: detected sell limit in raw token units. Legacy simulations used decimal-adjusted token units. Null when a limit was not recorded; this does not prove unrestricted selling.""" - maxSellAmount: String -} - -"""Errors for a token contract swap.""" -type SimulateSwapErrorsType { - buyError: String - buyErrorEnum: SimulateTokenContractBuySellErrorEnum - sellError: String - sellErrorEnum: SimulateTokenContractBuySellErrorEnum -} - -"""Result of a token contract.""" -type SimulateTokenType { - contractAddress: String! - tokenSymbol: String - decimals: Int - tokenName: String - """Token supply in raw token units, encoded as an integer string. Divide by 10^decimals for whole tokens. Null when unavailable.""" - totalSupply: String - canTransferOwnership: Boolean - canRenounceOwnership: Boolean - isOwnerRenounced: Boolean -} - -"""Errors for a token contract.""" -type SimulateTokenErrorsType { - tokenSymbolError: String - decimalsError: String - tokenNameError: String - totalSupplyError: String - canTransferOwnershipError: String - canRenounceOwnershipError: String -} - -"""Result of a token contract owner.""" -type SimulateOwnerType { - ownerAddress: String - """Token balance in raw token units, encoded as an integer string. Null when not measured.""" - ownerTokenBalance: String - """Native-currency balance in wei for EVM analysis, encoded as an integer string. Null when not measured.""" - ownerEthBalance: String -} - -"""Errors for a token contract owner.""" -type SimulateOwnerErrorsType { - ownerAddressError: String - ownerTokenBalanceError: String - ownerEthBalanceError: String -} - -"""Result of a token contract balance.""" -type SimulateContractBalanceType { - """Token balance in raw token units, encoded as an integer string. Null when not measured.""" - tokenContractTokenBalance: String - """Native-currency balance in wei for EVM analysis, encoded as an integer string. Null when not measured.""" - tokenContractEthBalance: String -} - -"""Errors for a token contract balance.""" -type SimulateContractBalanceErrorsType { - tokenContractTokenBalanceError: String - tokenContractEthBalanceError: String -} - -"""Result of a token contract creator.""" -type SimulateCreatorType { - creatorAddress: String - """Token balance in raw token units, encoded as an integer string. Null when not measured.""" - creatorTokenBalance: String - """Native-currency balance in wei for EVM analysis, encoded as an integer string. Null when not measured.""" - creatorEthBalance: String -} - -"""Errors for a token contract creator.""" -type SimulateCreatorErrorsType { - creatorTokenBalanceError: String - creatorEthBalanceError: String -} - -"""Response returned by `simulateTokenContract`.""" -type SimulateTokenContractResponse { - """Whether the request was queued and its pending record saved. This does not indicate analysis completion or token safety.""" - result: Boolean! - """The request identifier. Match it against a result uuid, or pass it to getSimulateTokenContractResults.""" - simulationId: String - """Submission failure message when result is false. Cooldown errors are returned as GraphQL errors instead.""" - error: String -} - -"""Legacy deployment simulation input. The current analyzer records a failure for this mode.""" -input SimulateDeployInput { - """The network ID of the token. Analysis availability depends on the network and supported trading venues.""" - networkId: Int! - """The block number to simulate the contract at.""" - blockNumber: Int! - """The contract address of the token.""" - contractAddress: String! - """The contract creation transaction input to simulate.""" - contractInput: String! -} - -"""Legacy creation-transaction simulation input. The current analyzer records a failure for this mode.""" -input SimulateCreateTransactionInput { - """The network ID of the token. Analysis availability depends on the network and supported trading venues.""" - networkId: Int! - """The block number to simulate the contract at.""" - blockNumber: Int! - """The contract creation transaction hash from the live network.""" - createTransactionHash: String! - """The contract address of the token.""" - contractAddress: String! -} - -"""Input type of `simulateTokenContract`.""" -input SimulateLiveContractInput { - """The network ID of the token. Analysis availability depends on the network and supported trading venues.""" - networkId: Int! - """Requested block number. When omitted, submission derives a recent block from indexed data and fails if none is available. The current live analyzer probes latest state rather than replaying this block.""" - blockNumber: Int - """The contract address of the token.""" - contractAddress: String! -} - -"""Provide one input mode. Use simulateLiveContractInput for the current analyzer. Legacy modes remain for compatibility. If several are supplied, the resolver selects deployment, then live contract, then creation transaction; no mode returns result: false.""" -input SimulateTokenContractInput { - """Input for a token contract deploy simulation.""" - simulateDeployInput: SimulateDeployInput - """Input for a token contract create transaction simulation.""" - simulateCreateTransactionInput: SimulateCreateTransactionInput - """Input for a live token contract simulation.""" - simulateLiveContractInput: SimulateLiveContractInput -} - -"""Response returned by `getLatestTokens`.""" -type LatestTokenConnection { - """A list of newly created tokens.""" - items: [LatestToken!]! -} - -"""Metadata for a newly created token.""" -type LatestToken { - """The id of the new token. (tokenAddress:networkId)""" - id: String! - """The contract address of the new token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The block number of the token contract's creation.""" - blockNumber: Int! - """The index of the transaction within the block.""" - transactionIndex: Int! - """The index of the trace within the token contract's creation transaction.""" - traceIndex: Int! - """The unique hash for the token contract's creation transaction.""" - transactionHash: String! - """The unique hash for the token contract's creation block.""" - blockHash: String! - """The unix timestamp for the creation of the token.""" - timeCreated: Int! - """The address of the token creator.""" - creatorAddress: String! - """The token creator's network token balance.""" - creatorBalance: String! - """The name of the token.""" - tokenName: String! - """The total supply of the token.""" - totalSupply: String! - """The symbol of the token.""" - tokenSymbol: String! - """The token's number of decimals.""" - decimals: Int! - """Simulated token contract results, if available.""" - simulationResults: [LatestTokenSimResults!]! -} - -"""Metadata for a newly created token.""" -type LatestTokenSimResults { - """Whether or not a token was able to be succesfully bought during simulation.""" - buySuccess: Boolean - """Tax paid for a buy transaction during simulation.""" - buyTax: String - """Gas used for a buy transaction during simulation.""" - buyGasUsed: String - """The maximum token amount an address can buy during simulation.""" - maxBuyAmount: String - """Whether or not a token was able to be succesfully sold during simulation.""" - sellSuccess: Boolean - """Tax paid for a sell transaction during simulation.""" - sellTax: String - """Gas used for a sell transaction during simulation.""" - sellGasUsed: String - """The maximum token amount an address can sell during simulation.""" - maxSellAmount: String - """Whether or not the contract ownership was able to be transferred during simulation.""" - canTransferOwnership: Boolean - """Whether or not the contract ownership was able to be renounced during simulation.""" - canRenounceOwnership: Boolean - """Whether or not the contract ownership is already renounced during simulation (owner is 0x0).""" - isOwnerRenounced: Boolean - """If a call was found to trigger liquidity & trading, this is the call name.""" - openTradingCall: String -} - -input RefreshBalancesInput { - """The ID of the wallet to refresh (`walletAddress:networkId`).""" - walletId: String! - """The ID of the token to refresh (`tokenAddress:networkId`), or `native:<networkId>` to refresh the wallet's native token balance.""" - tokenId: String! -} - -"""Response returned by `onEventsCreated`.""" -type AddEventsOutput { - """The contract address of the pair.""" - address: String! - """The network ID that the token is deployed on.""" - networkId: Int! - """The ID of the event (`address`:`networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """A list of transactions for the token.""" - events: [Event]! -} - -"""Response returned by `onEventsCreatedByMaker`.""" -type AddEventsByMakerOutput { - """The address of the maker.""" - makerAddress: String! - """A list of transactions for the maker.""" - events: [Event!]! -} - -"""Response returned by `onTokenEventsCreated`.""" -type AddTokenEventsOutput { - """The ID of the event (`address`:`networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """A list of transactions for the token.""" - events: [Event!]! -} - -"""Response returned by deprecated `onUnconfirmedEventsCreated`. Prefer `onEventsCreated`.""" -type AddUnconfirmedEventsOutput { - """The contract address of the pair.""" - address: String! - """The network ID that the token is deployed on.""" - networkId: Int! - """The ID of the event (`address`:`networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The token of interest within the pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """A list of transactions for the token.""" - events: [UnconfirmedEvent]! -} - -"""Response returned by deprecated `onUnconfirmedEventsCreatedByMaker`. Prefer `onEventsCreatedByMaker`.""" -type AddUnconfirmedEventsByMakerOutput { - """The wallet address of the maker.""" - makerAddress: String! - """A list of transactions for the maker.""" - events: [UnconfirmedEvent!]! -} - -"""The protocol of the token.""" -enum LaunchpadTokenProtocol { - """Launchpad protocol for ArenaTrade.""" - ArenaTrade - """Launchpad protocol for Argus.""" - Argus - """Launchpad protocol for Ascend.""" - Ascend - """Launchpad protocol for BAGS.""" - Bags - """Launchpad protocol for Baseapp.""" - Baseapp - """Launchpad protocol for Baseapp Creator.""" - BaseappCreator - """Older BONAD.fun tokens carry this protocol.""" - BonadFun - """Launchpad protocol for boop.""" - BoopFun - """Launchpad protocol for bow.fun.""" - BowFun - """Launchpad protocol for Clanker.""" - Clanker - """Launchpad protocol for Clanker V4.""" - ClankerV4 - """Launchpad protocol for Coinbarrel.""" - Coinbarrel - """Launchpad protocol for c8ntinuum Launchpad.""" - ContinuumLaunchpad - """Launchpad protocol for c8ntinuum Pledge.""" - ContinuumPledge - """Launchpad protocol for BONAD.fun, Bankr, Noice, LONG, Feel.cash, Doppler.""" - Doppler - """Launchpad protocol for Doppler.""" - DopplerSVM - """Launchpad protocol for EgoTech.""" - EgoTech - """Launchpad protocol for Faze.""" - Faze - """Launchpad protocol for Flap.""" - Flap - """Launchpad protocol for Flaunch.""" - Flaunch - """Launchpad protocol for Flywheel.""" - Flywheel - """Launchpad protocol for foci.""" - Foci - """Launchpad protocol for Four.meme, Four.meme Fair.""" - FourMeme - """Launchpad protocol for Heaven.""" - HeavenAMM - """Launchpad protocol for hood.fun.""" - HoodFun - """Launchpad protocol for Kumbaya.""" - Kumbaya - """Launchpad protocol for Launchfair.""" - LaunchFair - """Launchpad protocol for Lift.""" - Lift - """Launchpad protocol for Liquid.""" - Liquid - """Launchpad protocol for Livo.""" - Livo - """Launchpad protocol for meme.fun.""" - MemeFun - """Launchpad protocol for Metaplex.""" - MetaplexGenesis - """Launchpad protocol for Meteora Alpha Vault.""" - MeteoraAlphaVault - """Launchpad protocol for Believe, Moonshot, Jupiter Studio, MeteoraDBC, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Printr, Blowfish, Eitherway, EasyA Kickstart, Candle.TV, subs.fun, Fairly.""" - MeteoraDBC - """Launchpad protocol for minara.fun.""" - Minara - """Launchpad protocol for Montra.""" - Montra - """Kept for compatibility.""" - Moonit @deprecated(reason: "No launchpad is indexed with this protocol.") - """Launchpad protocol for Moonit.""" - Moonshot - """Launchpad protocol for moto.fun.""" - MotoFun - """Launchpad protocol for Nad.Fun.""" - NadFun - """Launchpad protocol for NOXA Fun.""" - Noxa - """Launchpad protocol for o1.exchange.""" - O1Exchange - """Launchpad protocol for Peach.""" - Peach - """Launchpad protocol for pons.""" - Pons - """Launchpad protocol for pons, Genius.""" - PonsV2 - """Launchpad protocol for Printr.""" - Printr - """Launchpad protocol for Pump.fun, Pump Mayhem.""" - Pump - """Kept for compatibility.""" - PumpMayhem @deprecated(reason: "No launchpad is indexed with this protocol.") - """Launchpad protocol for Rainbow.""" - Rainbow - """Launchpad protocol for Bonk, LaunchLab, MeMoo, Feel.cash, StonkFun.""" - RaydiumLaunchpad - """Launchpad protocol for Realm.""" - Realm - """Launchpad protocol for Scale.""" - ScaleVmm - """Launchpad protocol for send.fun, hostile.xyz.""" - SendFun - """Launchpad protocol for SomniaMeme.""" - SomniaMeme - """Launchpad protocol for StonkFun.""" - StonkFun - """Launchpad protocol for Sushi Launch.""" - SushiLaunchpad - """Launchpad protocol for TokenMill V2.""" - TokenMillEVM - """Launchpad protocol for TokenMill V2.""" - TokenMillV2 - """Launchpad protocol for Tolly.""" - Tolly - """Launchpad protocol for Trench.""" - Trench - """Launchpad protocol for tren.ch.""" - Trenches - """Launchpad protocol for UniswapCCA.""" - UniswapCCA - """Launchpad protocol for Zora Solana.""" - Vertigo - """Launchpad protocol for Virtuals.""" - Virtuals - """Launchpad protocol for Zora Creator.""" - ZoraCreatorV4 - """Launchpad protocol for Zora.""" - ZoraV4 -} - -"""The type of event. Note that associated statistics such as `buyCount1`, `price`, etc. are only available for `Updated` events.""" -enum LaunchpadTokenEventType { - """The token has been discovered""" - Deployed - """The token has been created with metadata""" - Created - """The token's statistics have been updated""" - Updated - """The token has been completed""" - Completed - """The token has been migrated""" - Migrated - """The token has been discovered (not finalized)""" - UnconfirmedDeployed - """The token's metadata has been processed (not finalized)""" - UnconfirmedMetadata - """The token has graduated off its bonding curve (not finalized)""" - UnconfirmedCompleted -} - -"""Response returned by `onLaunchpadTokenEvent`.""" -type LaunchpadTokenEventOutput { - """The contract address of the token.""" - address: String! - """The network ID that the token is deployed on.""" - networkId: Int! - """The protocol of the token.""" - protocol: String! - """The name of the launchpad.""" - launchpadName: String! - """Metadata for the token.""" - token: EnhancedToken! - """The number of buys in the last hour.""" - buyCount1: Int - """The type of event.""" - eventType: LaunchpadTokenEventType! - """The number of holders.""" - holders: Int - """The market cap of the token.""" - marketCap: String - """The price of the token.""" - price: Float - """The number of sells in the last hour.""" - sellCount1: Int - """The volume of the token in the last hour.""" - volume1: Int - """The number of transactions in the last hour.""" - transactions1: Int - """The liquidity of the token's top pair.""" - liquidity: String - """Pool fees (DEX protocol revenue) in the last hour, USD.""" - poolFees1: String - """Network base fees in the last hour, USD.""" - baseFees1: String - """EIP-1559 priority fees (tips to validators) in the last hour, USD.""" - priorityFees1: String - """Builder tips (MEV activity indicator) in the last hour, USD.""" - builderTips1: String - """L1 data fees (cost of posting rollup data to L1, applies to all L2 rollups) in the last hour, USD.""" - l1DataFees1: String - """The total fees (pool + base + priority + builder tips + L1 data) in the last hour, denominated in USD.""" - totalFees1: String - """The ratio of total fees to volume in the last hour.""" - feeToVolumeRatio1: Float - """The number of snipers that bought the token""" - sniperCount: Float - """The percentage of the token that is held by snipers""" - sniperHeldPercentage: Float - """The number of bundlers that bought the token""" - bundlerCount: Float - """The percentage of the token that is held by bundlers""" - bundlerHeldPercentage: Float - """The number of insiders that bought the token""" - insiderCount: Float - """The percentage of the token that is held by insiders""" - insiderHeldPercentage: Float - """The number of suspicious wallets (deduplicated union of snipers, bundlers, and insiders) that bought the token""" - suspiciousCount: Float - """The percentage of the token that is held by suspicious wallets""" - suspiciousHeldPercentage: Float - """The percentage of the token that is held by developers""" - devHeldPercentage: Float - """The percentage of total supply held by the top 10 holders.""" - top10HoldersPercent: Float - """Resolved profile and token-creator stats for the deployer wallet.""" - devWallet: Wallet -} - -"""Input for `onLaunchpadTokenEvent`.""" -input OnLaunchpadTokenEventInput { - """The launchpad protocol.""" - protocol: LaunchpadTokenProtocol - """A list of launchpad protocols.""" - protocols: [LaunchpadTokenProtocol!] - """The name of the launchpad. One of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpadName: String - """A list of launchpad names. Any of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpadNames: [String!] - """The type of event.""" - eventType: LaunchpadTokenEventType - """The contract address of the token. Requires `networkId`.""" - address: String - """The network ID that the token is deployed on.""" - networkId: Int -} - -"""Response returned by `onBarsUpdated`.""" -type OnBarsUpdatedResponse { - """The contract address for the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The ID for the pair (`pairAddress`:`networkId`).""" - pairId: String! - """The unix timestamp for the new bar.""" - timestamp: Int! - """The type of statistics used. Can be `FILTERED` or `UNFILTERED`.""" - statsType: TokenPairStatisticsType! - """The sortKey for the bar (`blockNumber`#`transactionIndex`#`logIndex`, zero padded). For example, `0000000016414564#00000224#00000413`.""" - eventSortKey: String! - """The commitment level of the bar update within the live stream.""" - commitmentLevel: BarCommitmentLevel! - """Price data broken down by resolution. For processed updates, this is a confirmed-shaped compatibility projection.""" - aggregates: ResolutionBarData! - """The quote token within the pair.""" - quoteToken: QuoteToken - """The address of the token being quoted""" - quoteTokenAddress: String! -} - -"""Response returned by `onBarsUpdated`.""" -type OnTokenBarsUpdatedResponse { - """The commitment level of the bar within the live stream.""" - commitmentLevel: BarCommitmentLevel! - """The contract address for the pair.""" - pairAddress: String @deprecated(reason: "pairs are no longer used for pricing") - """The network ID the pair is deployed on.""" - networkId: Int! - """The ID for the pair (`pairAddress`:`networkId`).""" - pairId: String @deprecated(reason: "pairs are no longer used for pricing") - """The unix timestamp for the new bar.""" - timestamp: Int! - """The type of statistics used. Only `FILTERED`.""" - statsType: TokenPairStatisticsType! - """The sortKey for the bar (`blockNumber`#`transactionIndex`#`logIndex`, zero padded). For example, `0000000016414564#00000224#00000413`.""" - eventSortKey: String! - """Price data broken down by resolution.""" - aggregates: ResolutionBarData! - """The quote token within the pair.""" - quoteToken: QuoteToken @deprecated(reason: "pairs are no longer used for pricing") - """The address of the token being quoted""" - tokenAddress: String! - """The address of the token being quoted""" - tokenId: String! -} - -"""Price data for each supported resolution.""" -type ResolutionBarData { - """1 second resolution.""" - r1S: CurrencyBarData - """5 second resolution.""" - r5S: CurrencyBarData - """15 second resolution.""" - r15S: CurrencyBarData - """30 second resolution.""" - r30S: CurrencyBarData - """1 minute resolution.""" - r1: CurrencyBarData - """5 minute resolution.""" - r5: CurrencyBarData - """15 minute resolution.""" - r15: CurrencyBarData - """30 minute resolution.""" - r30: CurrencyBarData - """60 minute resolution.""" - r60: CurrencyBarData - """4 hour resolution.""" - r240: CurrencyBarData - """12 hour resolution.""" - r720: CurrencyBarData - """1 day resolution.""" - r1D: CurrencyBarData - """1 week resolution.""" - r7D: CurrencyBarData -} - -"""Price data for a bar at a specific resolution.""" -type CurrencyBarData { - """The timestamp for the bar.""" - t: Int! - """Bar chart data in USD.""" - usd: IndividualBarData! - """Bar chart data in the network's base token.""" - token: IndividualBarData! -} - -"""Bar chart data.""" -type IndividualBarData { - """The opening price.""" - o: Float! - """The high price.""" - h: Float! - """The low price.""" - l: Float! - """The closing price.""" - c: Float! - """The volume.""" - v: Int - """The timestamp for the bar.""" - t: Int! - """The volume with higher precision.""" - volume: String! - """The volume in the network's base token""" - volumeNativeToken: String! - """The number of unique buyers""" - buyers: Int! - """The number of buys""" - buys: Int! - """The buy volume in USD""" - buyVolume: String! - """The number of unique sellers""" - sellers: Int! - """The number of sells""" - sells: Int! - """The sell volume in USD""" - sellVolume: String! - """Liquidity in USD""" - liquidity: String! - """The number of traders""" - traders: Int! - """The number of transactions""" - transactions: Int! - """The USD value of pool fees collected""" - poolFees: String - """The USD value of base fees (gas) paid""" - baseFees: String - """The USD value of priority fees (tips) paid""" - priorityFees: String - """The USD value of builder tips (MEV) paid""" - builderTips: String - """The USD value of L1 data posting fees (L2 rollups only)""" - l1DataFees: String -} - -"""Response returned by deprecated `onUnconfirmedBarsUpdated`. Prefer `onBarsUpdated`.""" -type OnUnconfirmedBarsUpdated { - """The contract address for the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The ID for the pair (`pairAddress`:`networkId`).""" - pairId: String! - """The unix timestamp for the new bar.""" - timestamp: Int! - """The sortKey for the bar (`blockNumber`#`transactionIndex`#`logIndex`, zero padded). For example, `0000000016414564#00000224#00000413`.""" - eventSortKey: String! - """Price data broken down by resolution.""" - aggregates: UnconfirmedResolutionBarData! - """The quote token within the pair.""" - quoteToken: QuoteToken - """The address of the token being quoted""" - quoteTokenAddress: String! -} - -"""Unconfirmed price data for each supported resolution.""" -type UnconfirmedResolutionBarData { - """1 second resolution.""" - r1S: UnconfirmedIndividualBarData - """5 second resolution.""" - r5S: UnconfirmedIndividualBarData - """15 second resolution.""" - r15S: UnconfirmedIndividualBarData - """1 minute resolution.""" - r1: UnconfirmedIndividualBarData - """5 minute resolution.""" - r5: UnconfirmedIndividualBarData - """15 minute resolution.""" - r15: UnconfirmedIndividualBarData - """60 minute resolution.""" - r60: UnconfirmedIndividualBarData - """4 hour resolution.""" - r240: UnconfirmedIndividualBarData - """12 hour resolution.""" - r720: UnconfirmedIndividualBarData - """1 day resolution.""" - r1D: UnconfirmedIndividualBarData - """1 week resolution.""" - r7D: UnconfirmedIndividualBarData -} - -"""Unconfirmed bar chart data.""" -type UnconfirmedIndividualBarData { - """The opening price.""" - o: Float! - """The high price.""" - h: Float! - """The low price.""" - l: Float! - """The closing price.""" - c: Float! - """The volume.""" - v: Int - """The volume with higher precision.""" - volume: String! - """The timestamp for the bar.""" - t: Int! -} - -input OnLaunchpadTokenEventBatchInput { - """The launchpad protocol.""" - protocol: LaunchpadTokenProtocol - """A list of launchpad protocols.""" - protocols: [LaunchpadTokenProtocol!] - """The network ID that the token is deployed on.""" - networkId: Int - """The name of the launchpad. One of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpadName: String - """A list of launchpad names. Any of the following: Pump.fun, Pump Mayhem, Bonk, BONAD.fun, Nad.Fun, Baseapp, Baseapp Creator, Zora, Zora Creator, Four.meme, Four.meme Fair, Believe, Moonshot, Jupiter Studio, boop, Heaven, TokenMill V2, Virtuals, Clanker, Clanker V4, ArenaTrade, Moonit, LaunchLab, MeteoraDBC, Meteora Alpha Vault, Zora Solana, Cooking.City, time.fun, BAGS, Circus, Dealr, OhFuckFun, PrintFun, Trends, shout.fun, xApple, Sendshot, DubDub, cults, OpenGameProtocol, AMERICA.fun, Kumbaya, bow.fun, Sushi Launch, Printr, Bankr, Liquid, Noice, Flaunch, Coinbarrel, Blowfish, MeMoo, Metaplex, Scale, Eitherway, Livo, Trench, Flap, NOXA Fun, hood.fun, moto.fun, pons, Genius, Peach, LONG, Feel.cash, EasyA Kickstart, Doppler, o1.exchange, minara.fun, UniswapCCA, tren.ch, StonkFun, Tolly, Launchfair, send.fun, hostile.xyz, Argus, Faze, Lift, meme.fun, Flywheel, Realm, Ascend, Montra, c8ntinuum Pledge, c8ntinuum Launchpad, foci, SomniaMeme, Rainbow, EgoTech, Candle.TV, subs.fun, Fairly.""" - launchpadNames: [String!] - """The type of event.""" - eventType: LaunchpadTokenEventType -} - -"""Input for `onEventsCreatedByMaker`.""" -input OnEventsCreatedByMakerInput { - """The wallet address of the maker.""" - makerAddress: String! -} - -"""Input for deprecated `onUnconfirmedEventsCreatedByMaker`.""" -input OnUnconfirmedEventsCreatedByMakerInput { - """The wallet address of the maker.""" - makerAddress: String! -} - -"""Wallet labels. Used for filtering wallets with `includeLabels` and `excludeLabels`.""" -enum WalletLabel { - """On our internal blacklist.""" - BLACKLISTED - """Automated trading bot: proven by arbitrage inside its own transactions, or inferred from its trading cadence. Its confidence is `botScore`. In `includeLabels` and `excludeLabels`, `BOT` also matches `MEV_BOT`, `SNIPER_BOT`, `VOLUME_BOT` and `BUNDLER`, and `botScore` is the highest of their scores.""" - BOT - """Cross-chain bridge contract.""" - BRIDGE - """Wallet a bundling tool runs for a token's own team: it buys or holds the team's supply while posing as an independent holder. Part of the `BOT` family.""" - BUNDLER - """Centralized exchange wallet.""" - CEX - """Decentralized exchange wallet.""" - DEX - """Skilled trader with $25k+ net profit over a year, a record chance rarely produces, and a 60%+ win rate. Recomputed weekly on Solana, Robinhood, Ethereum, BSC and Base.""" - ELITE_TRADER - """Project founder wallet.""" - FOUNDER - """Exploited a contract.""" - HACKER - """Pre-launch insider buyer.""" - INSIDER - """Wallet is interesting (based on a number of factors).""" - INTERESTING - """Key opinion leader / influencer.""" - KOL - """Wallet holds $5M+ in assets.""" - MEDIUM_WEALTHY - """Wallet holds $10M+ in assets.""" - MEGA_WEALTHY - """MEV extraction bot.""" - MEV_BOT - """Privacy mixer.""" - MIXER - """Known rug-puller.""" - RUG_PULLER - """OFAC sanctioned.""" - SANCTIONED - """Wallet behind token scams: a serial rug deployer, its launch crew, or a honeypot creator. Its confidence is `scammerScore`.""" - SCAMMER - """Wallet has launched 20 or more tokens on launchpads. It says nothing about whether they were scams: a wallet behind scam launches is `SCAMMER`.""" - SERIAL_DEPLOYER - """Skilled trader with $5k+ net profit over a year and a record chance rarely produces. Recomputed weekly on Solana, Robinhood, Ethereum, BSC and Base.""" - SMART_TRADER - """Wallet has made over $7.5K profit in the last 90 days trading tokens that are older than 2 days.""" - SMART_TRADER_TOKENS_OVER_TWO_DAYS_OLD @deprecated(reason: "Use ELITE_TRADER or SMART_TRADER, which test that the profit isn't luck. Still written while both run side by side; it will be removed.") - """Wallet has made over $5K profit in the last 90 days trading tokens that are between 1 hour and 2 days old.""" - SMART_TRADER_TOKENS_UNDER_TWO_DAYS_OLD @deprecated(reason: "Use ELITE_TRADER or SMART_TRADER, which test that the profit isn't luck. Still written while both run side by side; it will be removed.") - """Wallet has made over $3K profit in the last 90 days trading tokens that were launched within their first hour.""" - SNIPER - """Automated launch sniper: buys a hundred newly created pools a day within a minute of each pool's first swap. Part of the `BOT` family.""" - SNIPER_BOT - """Venture capital fund.""" - VC - """Operator-run wallet that trades to manufacture a token's volume: one a volume-bot platform runs, or one of hundreds a single funder seeded to churn one pool.""" - VOLUME_BOT - """Wallet holds $1M+ in assets.""" - WEALTHY - """High-balance / high-volume wallet.""" - WHALE -} - -"""Response returned by `onHoldersUpdated`.""" -type HoldersUpdate { - """The number of different wallets holding the token.""" - holders: Int! - """The ID of the token (`tokenAddress:networkId`).""" - tokenId: String! - """The token's contract address.""" - tokenAddress: String! - """The network ID that the token is deployed on.""" - networkId: Int! - """The list of wallets holding the token.""" - balances: [Balance!]! -} - -"""Response returned by `liquidityLocks`.""" -type LiquidityLockConnection { - """A list of liquidity locks.""" - items: [LiquidityLock!]! - """A cursor for use in pagination.""" - cursor: String - """Liquidity data for each unique pair in the locks.""" - pairLiquidityData: [PairLiquidityData!]! -} - -"""Response returned by `liquidityLocksV2`.""" -type LiquidityLockV2Connection { - """Lock state per pair.""" - items: [PairLockSummary!]! - """A cursor for use in pagination.""" - cursor: String -} - -"""Current lock state of one pair.""" -type PairLockSummary { - """The pair address.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The protocol that created the pair.""" - liquidityProtocol: String! - """Total pool liquidity, raw units — the denominator.""" - liquidity: String! - """Liquidity currently locked, with vesting matured to now.""" - locked: String! - """Locked share of the pool, 0-100. Null when the pool carries no usable signal.""" - lockedPercent: Float - """Liquidity locked permanently (burned or locked forever).""" - permanentLocked: String! - """Liquidity locked behind a vesting schedule.""" - vestedLocked: String! - """Liquidity not locked.""" - unlocked: String! - """Who holds the locked liquidity.""" - holders: [PairLockHolder!]! - """Next point at which vested liquidity matures, in the pool's own clock units.""" - nextReleasePoint: String - """The unix timestamp of the state read this was served from.""" - updatedAt: Int! - """False when vesting could not be matured to now and the figures are as of the last refresh.""" - current: Boolean! -} - -"""One holder's share of a pair's locked liquidity.""" -type PairLockHolder { - """Attribution registry entity id, e.g. `uncx` or `burn:0x...`. Null when the position holds itself.""" - entityId: String - """Registry display name, when known.""" - displayName: String - """The locking protocol, where the entity maps onto the enum. Null for lockers the enum cannot name.""" - lockProtocol: LiquidityLockProtocol - """The amount of liquidity locked, raw units.""" - amount: String! - """True when the lock can never be withdrawn.""" - permanent: Boolean! - """The unix timestamp for when the lock expires, in seconds as a string — lock dates can exceed the 32-bit range. Null for permanent locks.""" - unlockAt: String - """True when several holders name the same liquidity; count it once.""" - shared: Boolean -} - -"""Liquidity data for a specific pair.""" -type PairLiquidityData { - """The ID of the pair (`address:networkId`).""" - pairId: String! - """The address of the pair.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The total liquidity in the pair.""" - totalLiquidity: String! -} - -"""A record of locked liquidity.""" -type LiquidityLock { - """The pair address.""" - pairAddress: String! - """The network ID the pair is deployed on.""" - networkId: Int! - """The wallet address of the owner.""" - ownerAddress: String! - """The address of the locker contract.""" - lockerAddress: String! - """The unix timestamp for when the lock was created.""" - createdAt: Int! - """The unix timestamp for when the lock expires.""" - unlockAt: Int - """The protocol with which the liquidity is locked.""" - lockProtocol: LiquidityLockProtocol! - """The protocol that created the pair""" - liquidityProtocol: LiquidityProtocol! @deprecated(reason: "Use liquidityProtocolV2 instead") - """The protocol that created the pair""" - liquidityProtocolV2: String! - """The amount of liquidity locked.""" - liquidityAmount: String! - """The inital amount of token0 locked.""" - initialAmountToken0: String! - """The inital amount of token1 locked.""" - initialAmountToken1: String! - """If the liquidity position is represented by an NFT, this will contain the NFT data.""" - liquidityNftData: LiquidityNftData -} - -"""Protocols that can lock liquidity.""" -enum LiquidityLockProtocol { - BASECAMP_V1 - UNCX_V2 - UNCX_V3 - BURN - BITBOND - METEORA_DAMM_V2 - DOPPLER - O1_EXCHANGE - MINARA - PONS_V2 - METAPLEX_GENESIS - PINKSALE - TEAM_FINANCE - LAUNCH_FAIR - BAGS - RAYDIUM_LOCK - LETSCASH - PAIR - LAUNCH_HOOK - LUNCH_FUN - LAUNCH_TAX_HOOK - PEACH - FOCI - LIFT - LONG_SUPPLY - TOLLY - FLYWHEEL - REALM - ASCEND - MONTRA -} - -"""Protocols that create trading pairs.""" -enum LiquidityProtocol { - UNISWAP_V3 - UNISWAP_V2 - RAYDIUM_V4 - PUMP_V1 - USE_LIQUIDITY_PROTOCOL_V2 -} - -"""Liquidity NFT position data.""" -type LiquidityNftData { - """The tokenId of the liquidity position nft.""" - nftTokenId: String! - """The address of the nft position manager contract.""" - nftPositionManagerAddress: String! -} - -"""Metadata about a token's liquidity. Includes locked liquidity data for up to 100 pairs that the token is in.""" -type LiquidityMetadataByToken { - """The address of the token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The token's total liquidity in USD. On networks where the real-money total is enabled, this is `totalLiquidityUsd` from `filterTokens` (the combined liquidity of its 15 deepest pools) once the token has one; elsewhere, or until then, it is the value of the token's own side across the pairs below at its current price. `lockedLiquidityPercentage` is always measured across the pairs below, not against this figure.""" - totalLiquidityUsd: String! - """The locked liquidity in USD.""" - lockedLiquidityUsd: String! - """The total amount of tokens in pairs.""" - totalTokenLiquidity: String! - """The total amount of tokens in pairs shifted by number of decimals the token has.""" - totalTokenLiquidityShifted: String! - """The locked amount of tokens in pairs.""" - lockedTokenLiquidity: String! - """The locked amount of tokens in pairs shifted by number of decimals the token has.""" - lockedTokenLiquidityShifted: String! - """The percentage of liquidity that is locked.""" - lockedLiquidityPercentage: Float! - """A breakdown of how much and where liquidity is locked.""" - lockBreakdown: [LiquidityLockBreakdownForToken]! -} - -"""A breakdown of how much and where liquidity is locked.""" -type LiquidityLockBreakdownForToken { - """The protocol with which the liquidity is locked.""" - lockProtocol: LiquidityLockProtocol! - """The amount of liquidity locked in USD.""" - amountLockedUsd: String! - """The amount of tokens locked in the protocol.""" - amountLockedTokens: String! - """The amount of tokens locked in the protocol shifted by number of decimals the token has.""" - amountLockedTokensShifted: String! -} - -"""Metadata about a pair's liquidity. Includes locked liquidity data.""" -type LiquidityMetadata { - """Data about locked liquidity.""" - lockedLiquidity: LockedLiquidityData! - """Data about unlocked liquidity.""" - liquidity: LiquidityData! -} - -"""Data about liquidity in a pair.""" -type LiquidityData { - """The active liquidity in the pair.""" - active: String! - """The inactive liquidity in the pair.""" - inactive: String! -} - -"""Data about locked liquidity.""" -type LockedLiquidityData { - """The amount of active liquidity locked.""" - active: String! - """The amount of inactive liquidity locked.""" - inactive: String! - """A breakdown of how much and where liquidity is locked.""" - lockBreakdown: [LockBreakdown]! -} - -"""Breakdown of how much and where liquidity is locked.""" -type LockBreakdown { - """The protocol with which the liquidity is locked.""" - lockProtocol: LiquidityLockProtocol! - """The amount of active liquidity locked.""" - active: String! - """The amount of inactive liquidity locked.""" - inactive: String! -} - -"""Response returned by `onTokenLifecycleEventsCreated`.""" -type AddTokenLifecycleEventsOutput { - id: String! - events: [TokenLifecycleEvent!]! -} - -"""Event types for a token. Mint or Burn.""" -enum TokenLifecycleEventType { - MINT - BURN -} - -"""Events that occur during a token's lifecycle. Only Mint and Burn events right now.""" -type TokenLifecycleEvent { - """The token's contract address.""" - tokenAddress: String! - """The network ID that the token is deployed on.""" - networkId: Int! - """The hash of the block where the transaction occurred.""" - blockHash: String! - """The block number for the transaction.""" - blockNumber: Int! - """The ID of the event (`address:networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The index of the log in the block.""" - logIndex: Int! - """The wallet address that performed the transaction.""" - maker: String - """The unix timestamp for when the transaction occurred.""" - timestamp: Int! - """The unique hash for the transaction.""" - transactionHash: String! - """The index of the transaction within the block.""" - transactionIndex: Int! - """The type of event.""" - eventType: TokenLifecycleEventType! - """The event data, depends on the type of event""" - data: TokenLifecycleEventData! -} - -"""Event data for a token's lifecycle.""" -union TokenLifecycleEventData = TokenBurnEventData | TokenMintEventData - -"""Token burn event data.""" -type TokenBurnEventData { - """The amount of tokens burned.""" - amount: String! - """The new total supply for the token.""" - totalSupply: String - """The new circulating supply for the token.""" - circulatingSupply: String -} - -"""Token mint event data.""" -type TokenMintEventData { - """The amount of tokens minted.""" - amount: String! - """The new total supply for the token.""" - totalSupply: String - """The new circulating supply for the token.""" - circulatingSupply: String -} - -"""A top trader for a token.""" -type TokenTopTrader { - """The wallet address of the trader.""" - walletAddress: String! - """The token address.""" - tokenAddress: String! - """The network ID.""" - networkId: Int! - """The amount of tokens bought.""" - tokenAmountBought: String! - """The amount of tokens sold.""" - tokenAmountSold: String! - """The amount of tokens bought in USD.""" - amountBoughtUsd: String! - """The amount of tokens sold in USD.""" - amountSoldUsd: String! - """The volume of tokens bought and sold in USD.""" - volumeUsd: String! - """The realized profit in USD.""" - realizedProfitUsd: String! - """The realized profit percentage.""" - realizedProfitPercentage: Float! - """The single token acquisition cost in USD.""" - singleTokenAcquisitionCostUsd: String! - """The number of buys.""" - buys: Int! - """The number of sells.""" - sells: Int! - """The token balance of the trader.""" - tokenBalance: String! - """The unix timestamp for the first transaction from this wallet.""" - firstTransactionAt: Int - """The unix timestamp for the last transaction from this wallet.""" - lastTransactionAt: Int! - """The labels associated with the wallet""" - labels: [String!]! - """The scammer score for the wallet.""" - scammerScore: Int - """The bot score for the wallet.""" - botScore: Int - """The wallet identity and profile data""" - wallet: Wallet -} - -"""A time period used when calculating wallet trading data.""" -enum TradingPeriod { - DAY - WEEK - MONTH - YEAR -} - -"""A paginated list of top traders for a token.""" -type TokenTopTradersConnection { - """The token address.""" - tokenAddress: String! - """The network ID.""" - networkId: Int! - """The trading period.""" - tradingPeriod: TradingPeriod! - """The list of top traders.""" - items: [TokenTopTrader]! - """The offset of the first trader in the connection.""" - offset: Int -} - -"""Filters for a wallet.""" -input WalletFilters { - """The unix timestamp for the last transaction from this wallet.""" - lastTransactionAt: NumberFilter - """The unix timestamp for the first transaction from this wallet.""" - firstTransactionAt: NumberFilter - """Volume in USD in the past day""" - volumeUsd1d: NumberFilter - """Total volume in USD in the past day including all tokens""" - volumeUsdAll1d: NumberFilter - """Realized profit in USD in the past day""" - realizedProfitUsd1d: NumberFilter - """Realized profit in USD excluding native tokens in the past day""" - realizedProfitUsdExNative1d: NumberFilter - """Average profit in USD per trade in the past day""" - averageProfitUsdPerTrade1d: NumberFilter - """Average swap amount in USD in the past day""" - averageSwapAmountUsd1d: NumberFilter - """Realized profit percentage in the past day""" - realizedProfitPercentage1d: NumberFilter - """Realized profit percentage excluding native tokens in the past day""" - realizedProfitPercentageExNative1d: NumberFilter - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: NumberFilter - """Number of swaps in the past day""" - swaps1d: NumberFilter - """Total number of swaps in the past day including all tokens""" - swapsAll1d: NumberFilter - """Number of unique tokens traded in the past day""" - uniqueTokens1d: NumberFilter - """Win rate in the past day""" - winRate1d: NumberFilter - """Volume in USD in the past week""" - volumeUsd1w: NumberFilter - """Total volume in USD in the past week including all tokens""" - volumeUsdAll1w: NumberFilter - """Realized profit in USD in the past week""" - realizedProfitUsd1w: NumberFilter - """Realized profit in USD excluding native tokens in the past week""" - realizedProfitUsdExNative1w: NumberFilter - """Average profit in USD per trade in the past week""" - averageProfitUsdPerTrade1w: NumberFilter - """Average swap amount in USD in the past week""" - averageSwapAmountUsd1w: NumberFilter - """Realized profit percentage in the past week""" - realizedProfitPercentage1w: NumberFilter - """Realized profit percentage excluding native tokens in the past week""" - realizedProfitPercentageExNative1w: NumberFilter - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: NumberFilter - """Number of swaps in the past week""" - swaps1w: NumberFilter - """Total number of swaps in the past week including all tokens""" - swapsAll1w: NumberFilter - """Number of unique tokens traded in the past week""" - uniqueTokens1w: NumberFilter - """Win rate in the past week""" - winRate1w: NumberFilter - """Volume in USD in the past 30 days""" - volumeUsd30d: NumberFilter - """Total volume in USD in the past 30 days including all tokens""" - volumeUsdAll30d: NumberFilter - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d: NumberFilter - """Realized profit in USD excluding native tokens in the past 30 days""" - realizedProfitUsdExNative30d: NumberFilter - """Average profit in USD per trade in the past 30 days""" - averageProfitUsdPerTrade30d: NumberFilter - """Average swap amount in USD in the past 30 days""" - averageSwapAmountUsd30d: NumberFilter - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: NumberFilter - """Realized profit percentage excluding native tokens in the past 30 days""" - realizedProfitPercentageExNative30d: NumberFilter - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: NumberFilter - """Number of swaps in the past 30 days""" - swaps30d: NumberFilter - """Total number of swaps in the past 30 days including all tokens""" - swapsAll30d: NumberFilter - """Number of unique tokens traded in the past 30 days""" - uniqueTokens30d: NumberFilter - """Win rate in the past 30 days""" - winRate30d: NumberFilter - """Volume in USD in the past year""" - volumeUsd1y: NumberFilter - """Total volume in USD in the past year including all tokens""" - volumeUsdAll1y: NumberFilter - """Realized profit in USD in the past year""" - realizedProfitUsd1y: NumberFilter - """Average profit in USD per trade in the past year""" - averageProfitUsdPerTrade1y: NumberFilter - """Average swap amount in USD in the past year""" - averageSwapAmountUsd1y: NumberFilter - """Realized profit percentage in the past year""" - realizedProfitPercentage1y: NumberFilter - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: NumberFilter - """Number of swaps in the past year""" - swaps1y: NumberFilter - """Total number of swaps in the past year including all tokens""" - swapsAll1y: NumberFilter - """Number of unique tokens traded in the past year""" - uniqueTokens1y: NumberFilter @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - """Win rate in the past year""" - winRate1y: NumberFilter - """The scammer score for the wallet.""" - scammerScore: NumberFilter - """The bot score for the wallet.""" - botScore: NumberFilter - """Ethos credibility score (0-2800)""" - ethosScore: NumberFilter - """Number of tokens created by this wallet across all networks.""" - tokensCreatedCount: NumberFilter - """Number of launchpad tokens migrated (graduated) by this wallet across all networks.""" - tokensMigratedCount: NumberFilter - """Filter by wallet behavior category. Wallets with no category are treated as NORMIE.""" - categories: [WalletCategory!] - """The network ID to filter by.""" - networkId: Int - """The native token balance of the wallet. Can only be used in conjunction with `networkId` filter.""" - nativeTokenBalance: NumberFilter - """Filter by whether the wallet has a Twitter/X account""" - hasTwitter: Boolean - """Filter by whether the wallet has a Discord account""" - hasDiscord: Boolean - """Filter by whether the wallet has a Telegram account""" - hasTelegram: Boolean - """Filter by whether the wallet has a Farcaster account""" - hasFarcaster: Boolean - """Filter by whether the wallet has a GitHub account""" - hasGithub: Boolean - """Filter by whether the wallet has a display name set""" - hasDisplayName: Boolean - """Filter by whether the wallet has any linked social account""" - hasSocials: Boolean - """Filter by whether any ENS or SNS name points at the wallet""" - hasDomain: Boolean -} - -"""Attributes for a wallet ranking.""" -enum WalletRankingAttribute { - firstTransactionAt - lastTransactionAt - volumeUsd1d - volumeUsdAll1d - realizedProfitUsd1d - realizedProfitUsdExNative1d - averageProfitUsdPerTrade1d - averageSwapAmountUsd1d - realizedProfitPercentage1d - realizedProfitPercentageExNative1d - avgHoldPeriodSec1d - swaps1d - swapsAll1d - uniqueTokens1d - winRate1d - volumeUsd1w - volumeUsdAll1w - realizedProfitUsd1w - realizedProfitUsdExNative1w - averageProfitUsdPerTrade1w - averageSwapAmountUsd1w - realizedProfitPercentage1w - realizedProfitPercentageExNative1w - avgHoldPeriodSec1w - swaps1w - swapsAll1w - uniqueTokens1w - winRate1w - volumeUsd30d - volumeUsdAll30d - realizedProfitUsd30d - realizedProfitUsdExNative30d - averageProfitUsdPerTrade30d - averageSwapAmountUsd30d - realizedProfitPercentage30d - realizedProfitPercentageExNative30d - avgHoldPeriodSec30d - swaps30d - swapsAll30d - uniqueTokens30d - winRate30d - volumeUsd1y - volumeUsdAll1y - realizedProfitUsd1y - averageProfitUsdPerTrade1y - averageSwapAmountUsd1y - realizedProfitPercentage1y - avgHoldPeriodSec1y - swaps1y - swapsAll1y - uniqueTokens1y @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - winRate1y - nativeTokenBalance - scammerScore - botScore - ethosScore -} - -"""A wallet ranking.""" -input WalletRanking { - """The attribute to rank wallets by.""" - attribute: WalletRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Filters for a wallet on a specific network.""" -input WalletNetworkFilters { - """The unix timestamp for the last transaction from this wallet.""" - lastTransactionAt: NumberFilter - """The unix timestamp for the first transaction from this wallet.""" - firstTransactionAt: NumberFilter - """Volume in USD in the past day""" - volumeUsd1d: NumberFilter - """Total volume in USD in the past day including all tokens""" - volumeUsdAll1d: NumberFilter - """Realized profit in USD in the past day""" - realizedProfitUsd1d: NumberFilter - """Realized profit in USD excluding native tokens in the past day""" - realizedProfitUsdExNative1d: NumberFilter - """Average profit in USD per trade in the past day""" - averageProfitUsdPerTrade1d: NumberFilter - """Average swap amount in USD in the past day""" - averageSwapAmountUsd1d: NumberFilter - """Realized profit percentage in the past day""" - realizedProfitPercentage1d: NumberFilter - """Realized profit percentage excluding native tokens in the past day""" - realizedProfitPercentageExNative1d: NumberFilter - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: NumberFilter - """Number of swaps in the past day""" - swaps1d: NumberFilter - """Total number of swaps in the past day including all tokens""" - swapsAll1d: NumberFilter - """Number of unique tokens traded in the past day""" - uniqueTokens1d: NumberFilter - """Win rate in the past day""" - winRate1d: NumberFilter - """Volume in USD in the past week""" - volumeUsd1w: NumberFilter - """Total volume in USD in the past week including all tokens""" - volumeUsdAll1w: NumberFilter - """Realized profit in USD in the past week""" - realizedProfitUsd1w: NumberFilter - """Realized profit in USD excluding native tokens in the past week""" - realizedProfitUsdExNative1w: NumberFilter - """Average profit in USD per trade in the past week""" - averageProfitUsdPerTrade1w: NumberFilter - """Average swap amount in USD in the past week""" - averageSwapAmountUsd1w: NumberFilter - """Realized profit percentage in the past week""" - realizedProfitPercentage1w: NumberFilter - """Realized profit percentage excluding native tokens in the past week""" - realizedProfitPercentageExNative1w: NumberFilter - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: NumberFilter - """Number of swaps in the past week""" - swaps1w: NumberFilter - """Total number of swaps in the past week including all tokens""" - swapsAll1w: NumberFilter - """Number of unique tokens traded in the past week""" - uniqueTokens1w: NumberFilter - """Win rate in the past week""" - winRate1w: NumberFilter - """Volume in USD in the past 30 days""" - volumeUsd30d: NumberFilter - """Total volume in USD in the past 30 days including all tokens""" - volumeUsdAll30d: NumberFilter - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d: NumberFilter - """Realized profit in USD excluding native tokens in the past 30 days""" - realizedProfitUsdExNative30d: NumberFilter - """Average profit in USD per trade in the past 30 days""" - averageProfitUsdPerTrade30d: NumberFilter - """Average swap amount in USD in the past 30 days""" - averageSwapAmountUsd30d: NumberFilter - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: NumberFilter - """Realized profit percentage excluding native tokens in the past 30 days""" - realizedProfitPercentageExNative30d: NumberFilter - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: NumberFilter - """Number of swaps in the past 30 days""" - swaps30d: NumberFilter - """Total number of swaps in the past 30 days including all tokens""" - swapsAll30d: NumberFilter - """Number of unique tokens traded in the past 30 days""" - uniqueTokens30d: NumberFilter - """Win rate in the past 30 days""" - winRate30d: NumberFilter - """Volume in USD in the past year""" - volumeUsd1y: NumberFilter - """Total volume in USD in the past year including all tokens""" - volumeUsdAll1y: NumberFilter - """Realized profit in USD in the past year""" - realizedProfitUsd1y: NumberFilter - """Average profit in USD per trade in the past year""" - averageProfitUsdPerTrade1y: NumberFilter - """Average swap amount in USD in the past year""" - averageSwapAmountUsd1y: NumberFilter - """Realized profit percentage in the past year""" - realizedProfitPercentage1y: NumberFilter - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: NumberFilter - """Number of swaps in the past year""" - swaps1y: NumberFilter - """Total number of swaps in the past year including all tokens""" - swapsAll1y: NumberFilter - """Number of unique tokens traded in the past year""" - uniqueTokens1y: NumberFilter @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - """Win rate in the past year""" - winRate1y: NumberFilter - """The native token balance of the wallet.""" - nativeTokenBalance: NumberFilter - """The scammer score for the wallet. Indicates the likelihood of the wallet being a scammer. Zero being not a scammer and 100 being a definite scammer.""" - scammerScore: NumberFilter - """The bot score for the wallet. Indicates the likelihood of the wallet being a bot. Zero being not a bot and 100 being a definite bot.""" - botScore: NumberFilter - """Ethos credibility score (0-2800)""" - ethosScore: NumberFilter - """Filter by whether the wallet has a Twitter/X account""" - hasTwitter: Boolean - """Filter by whether the wallet has a Discord account""" - hasDiscord: Boolean - """Filter by whether the wallet has a Telegram account""" - hasTelegram: Boolean - """Filter by whether the wallet has a Farcaster account""" - hasFarcaster: Boolean - """Filter by whether the wallet has a GitHub account""" - hasGithub: Boolean - """Filter by whether the wallet has a display name set""" - hasDisplayName: Boolean - """Filter by whether the wallet has any linked social account""" - hasSocials: Boolean - """Filter by whether any ENS or SNS name points at the wallet""" - hasDomain: Boolean -} - -"""Attributes for a wallet ranking on a specific network.""" -enum WalletNetworkRankingAttribute { - firstTransactionAt - lastTransactionAt - volumeUsd1d - volumeUsdAll1d - realizedProfitUsd1d - realizedProfitUsdExNative1d - averageProfitUsdPerTrade1d - averageSwapAmountUsd1d - realizedProfitPercentage1d - realizedProfitPercentageExNative1d - """Average hold period, in seconds, for positions sold during the past day.""" - avgHoldPeriodSec1d - swaps1d - swapsAll1d - uniqueTokens1d - winRate1d - volumeUsd1w - volumeUsdAll1w - realizedProfitUsd1w - realizedProfitUsdExNative1w - averageProfitUsdPerTrade1w - averageSwapAmountUsd1w - realizedProfitPercentage1w - realizedProfitPercentageExNative1w - """Average hold period, in seconds, for positions sold during the past week.""" - avgHoldPeriodSec1w - swaps1w - swapsAll1w - uniqueTokens1w - winRate1w - volumeUsd30d - volumeUsdAll30d - realizedProfitUsd30d - realizedProfitUsdExNative30d - averageProfitUsdPerTrade30d - averageSwapAmountUsd30d - realizedProfitPercentage30d - realizedProfitPercentageExNative30d - """Average hold period, in seconds, for positions sold during the past 30 days.""" - avgHoldPeriodSec30d - swaps30d - swapsAll30d - uniqueTokens30d - winRate30d - volumeUsd1y - volumeUsdAll1y - realizedProfitUsd1y - averageProfitUsdPerTrade1y - averageSwapAmountUsd1y - realizedProfitPercentage1y - """Average hold period, in seconds, for positions sold during the past year.""" - avgHoldPeriodSec1y - swaps1y - swapsAll1y - uniqueTokens1y @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - winRate1y - nativeTokenBalance - scammerScore - botScore - ethosScore -} - -"""A wallet ranking on a specific network.""" -input WalletNetworkRanking { - """The attribute to rank wallets by.""" - attribute: WalletNetworkRankingAttribute - """The direction to apply to the ranking attribute.""" - direction: RankingDirection -} - -"""Attributes for a wallet ranking on a specific token.""" -enum WalletTokenRankingAttribute { - """The first transaction timestamp""" - firstTransactionAt - """The last transaction timestamp""" - lastTransactionAt - """Token amount bought in the past day""" - tokenAmountBought1d - """Token amount sold in the past day""" - tokenAmountSold1d - """Amount bought in USD in the past day""" - amountBoughtUsd1d - """Amount sold in USD in the past day""" - amountSoldUsd1d - """Realized profit in USD in the past day""" - realizedProfitUsd1d - """Realized profit percentage in the past day""" - realizedProfitPercentage1d - """Average hold period, in seconds, for positions sold during the past day.""" - avgHoldPeriodSec1d - """Number of buys in the past day""" - buys1d - """Number of sells in the past day""" - sells1d - """Token amount bought in the past week""" - tokenAmountBought1w - """Token amount sold in the past week""" - tokenAmountSold1w - """Amount bought in USD in the past week""" - amountBoughtUsd1w - """Amount sold in USD in the past week""" - amountSoldUsd1w - """Realized profit in USD in the past week""" - realizedProfitUsd1w - """Realized profit percentage in the past week""" - realizedProfitPercentage1w - """Average hold period, in seconds, for positions sold during the past week.""" - avgHoldPeriodSec1w - """Number of buys in the past week""" - buys1w - """Number of sells in the past week""" - sells1w - """Token amount bought in the past 30 days""" - tokenAmountBought30d - """Token amount sold in the past 30 days""" - tokenAmountSold30d - """Amount bought in USD in the past 30 days""" - amountBoughtUsd30d - """Amount sold in USD in the past 30 days""" - amountSoldUsd30d - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d - """Average hold period, in seconds, for positions sold during the past 30 days.""" - avgHoldPeriodSec30d - """Number of buys in the past 30 days""" - buys30d - """Number of sells in the past 30 days""" - sells30d - """Token amount bought in the past year""" - tokenAmountBought1y - """Token amount sold in the past year""" - tokenAmountSold1y - """Amount bought in USD in the past year""" - amountBoughtUsd1y - """Amount sold in USD in the past year""" - amountSoldUsd1y - """Realized profit in USD in the past year""" - realizedProfitUsd1y - """Realized profit percentage in the past year""" - realizedProfitPercentage1y - """Average hold period, in seconds, for positions sold during the past year.""" - avgHoldPeriodSec1y - """Number of buys in the past year""" - buys1y - """Number of sells in the past year""" - sells1y - """The total balance of tokens held by the user, reflecting the most recent update to the record. This balance includes all tokens, even those transferred in through unsupported methods or DEXs that are not tracked by our system.""" - tokenBalance - """The total balance of tokens that the user has bought or sold. This value does not include tokens acquired through external transfers or unsupported methods.""" - purchasedTokenBalance - """Token acquisition cost in USD""" - tokenAcquisitionCostUsd - """The scammer score for the wallet.""" - scammerScore - """The bot score for the wallet.""" - botScore -} - -"""A wallet ranking on a specific token.""" -input WalletTokenRanking { - """The attribute to rank wallets by""" - attribute: WalletTokenRankingAttribute! - """The direction to apply to the ranking attribute""" - direction: RankingDirection! -} - -"""A range for a wallet token filter.""" -input WalletTokenFilterRange { - """The minimum value (inclusive)""" - min: String - """The maximum value (inclusive)""" - max: String -} - -"""Filters for a wallet on a specific token.""" -input WalletTokenFilters { - """Filter by last transaction timestamp""" - lastTransactionAt: WalletTokenFilterRange - """Filter by first transaction timestamp""" - firstTransactionAt: WalletTokenFilterRange - """Filter by token amount bought in the past day""" - tokenAmountBought1d: WalletTokenFilterRange - """Filter by token amount sold in the past day""" - tokenAmountSold1d: WalletTokenFilterRange - """Filter by amount bought in USD in the past day""" - amountBoughtUsd1d: WalletTokenFilterRange - """Filter by amount sold in USD in the past day""" - amountSoldUsd1d: WalletTokenFilterRange - """Filter by realized profit in USD in the past day""" - realizedProfitUsd1d: WalletTokenFilterRange - """Filter by realized profit percentage in the past day""" - realizedProfitPercentage1d: WalletTokenFilterRange - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: WalletTokenFilterRange - """Filter by number of buys in the past day""" - buys1d: WalletTokenFilterRange - """Filter by number of sells in the past day""" - sells1d: WalletTokenFilterRange - """Filter by token amount bought in the past week""" - tokenAmountBought1w: WalletTokenFilterRange - """Filter by token amount sold in the past week""" - tokenAmountSold1w: WalletTokenFilterRange - """Filter by amount bought in USD in the past week""" - amountBoughtUsd1w: WalletTokenFilterRange - """Filter by amount sold in USD in the past week""" - amountSoldUsd1w: WalletTokenFilterRange - """Filter by realized profit in USD in the past week""" - realizedProfitUsd1w: WalletTokenFilterRange - """Filter by realized profit percentage in the past week""" - realizedProfitPercentage1w: WalletTokenFilterRange - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: WalletTokenFilterRange - """Filter by number of buys in the past week""" - buys1w: WalletTokenFilterRange - """Filter by number of sells in the past week""" - sells1w: WalletTokenFilterRange - """Filter by token amount bought in the past 30 days""" - tokenAmountBought30d: WalletTokenFilterRange - """Filter by token amount sold in the past 30 days""" - tokenAmountSold30d: WalletTokenFilterRange - """Filter by amount bought in USD in the past 30 days""" - amountBoughtUsd30d: WalletTokenFilterRange - """Filter by amount sold in USD in the past 30 days""" - amountSoldUsd30d: WalletTokenFilterRange - """Filter by realized profit in USD in the past 30 days""" - realizedProfitUsd30d: WalletTokenFilterRange - """Filter by realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: WalletTokenFilterRange - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: WalletTokenFilterRange - """Filter by number of buys in the past 30 days""" - buys30d: WalletTokenFilterRange - """Filter by number of sells in the past 30 days""" - sells30d: WalletTokenFilterRange - """Filter by token amount bought in the past year""" - tokenAmountBought1y: WalletTokenFilterRange - """Filter by token amount sold in the past year""" - tokenAmountSold1y: WalletTokenFilterRange - """Filter by amount bought in USD in the past year""" - amountBoughtUsd1y: WalletTokenFilterRange - """Filter by amount sold in USD in the past year""" - amountSoldUsd1y: WalletTokenFilterRange - """Filter by realized profit in USD in the past year""" - realizedProfitUsd1y: WalletTokenFilterRange - """Filter by realized profit percentage in the past year""" - realizedProfitPercentage1y: WalletTokenFilterRange - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: WalletTokenFilterRange - """Filter by number of buys in the past year""" - buys1y: WalletTokenFilterRange - """Filter by number of sells in the past year""" - sells1y: WalletTokenFilterRange - """Filter by token balance""" - tokenBalance: WalletTokenFilterRange - """Filter by purchased token balance""" - purchasedTokenBalance: WalletTokenFilterRange - """Filter by token acquisition cost in USD""" - tokenAcquisitionCostUsd: WalletTokenFilterRange - """Filter by scammer score""" - scammerScore: WalletTokenFilterRange - """Filter by bot score""" - botScore: WalletTokenFilterRange -} - -"""Filters for a wallet on a specific token.""" -input WalletTokenFiltersV2 { - """Filter by last transaction timestamp""" - lastTransactionAt: NumberFilter - """Filter by first transaction timestamp""" - firstTransactionAt: NumberFilter - """Filter by token amount bought in the past day""" - tokenAmountBought1d: NumberFilter - """Filter by token amount sold in the past day""" - tokenAmountSold1d: NumberFilter - """Filter by amount bought in USD in the past day""" - amountBoughtUsd1d: NumberFilter - """Filter by amount sold in USD in the past day""" - amountSoldUsd1d: NumberFilter - """Filter by realized profit in USD in the past day""" - realizedProfitUsd1d: NumberFilter - """Filter by realized profit percentage in the past day""" - realizedProfitPercentage1d: NumberFilter - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: NumberFilter - """Filter by number of buys in the past day""" - buys1d: NumberFilter - """Filter by number of sells in the past day""" - sells1d: NumberFilter - """Filter by number of trades (buys plus sells) in the past day. Like sells1d, zero-amount adjusted sells are not counted. A token with no buys or sells recorded counts as 0 trades, so upper bounds (lte, lt) also match it.""" - trades1d: NumberFilter - """Filter by token amount bought in the past week""" - tokenAmountBought1w: NumberFilter - """Filter by token amount sold in the past week""" - tokenAmountSold1w: NumberFilter - """Filter by amount bought in USD in the past week""" - amountBoughtUsd1w: NumberFilter - """Filter by amount sold in USD in the past week""" - amountSoldUsd1w: NumberFilter - """Filter by realized profit in USD in the past week""" - realizedProfitUsd1w: NumberFilter - """Filter by realized profit percentage in the past week""" - realizedProfitPercentage1w: NumberFilter - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: NumberFilter - """Filter by number of buys in the past week""" - buys1w: NumberFilter - """Filter by number of sells in the past week""" - sells1w: NumberFilter - """Filter by number of trades (buys plus sells) in the past week. Like sells1w, zero-amount adjusted sells are not counted. A token with no buys or sells recorded counts as 0 trades, so upper bounds (lte, lt) also match it.""" - trades1w: NumberFilter - """Filter by token amount bought in the past 30 days""" - tokenAmountBought30d: NumberFilter - """Filter by token amount sold in the past 30 days""" - tokenAmountSold30d: NumberFilter - """Filter by amount bought in USD in the past 30 days""" - amountBoughtUsd30d: NumberFilter - """Filter by amount sold in USD in the past 30 days""" - amountSoldUsd30d: NumberFilter - """Filter by realized profit in USD in the past 30 days""" - realizedProfitUsd30d: NumberFilter - """Filter by realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: NumberFilter - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: NumberFilter - """Filter by number of buys in the past 30 days""" - buys30d: NumberFilter - """Filter by number of sells in the past 30 days""" - sells30d: NumberFilter - """Filter by number of trades (buys plus sells) in the past 30 days. Like sells30d, zero-amount adjusted sells are not counted. A token with no buys or sells recorded counts as 0 trades, so upper bounds (lte, lt) also match it.""" - trades30d: NumberFilter - """Filter by token amount bought in the past year""" - tokenAmountBought1y: NumberFilter - """Filter by token amount sold in the past year""" - tokenAmountSold1y: NumberFilter - """Filter by amount bought in USD in the past year""" - amountBoughtUsd1y: NumberFilter - """Filter by amount sold in USD in the past year""" - amountSoldUsd1y: NumberFilter - """Filter by realized profit in USD in the past year""" - realizedProfitUsd1y: NumberFilter - """Filter by realized profit percentage in the past year""" - realizedProfitPercentage1y: NumberFilter - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: NumberFilter - """Filter by number of buys in the past year""" - buys1y: NumberFilter - """Filter by number of sells in the past year""" - sells1y: NumberFilter - """Filter by number of trades (buys plus sells) in the past year. Like sells1y, zero-amount adjusted sells are not counted. A token with no buys or sells recorded counts as 0 trades, so upper bounds (lte, lt) also match it.""" - trades1y: NumberFilter - """Filter by token balance""" - tokenBalance: NumberFilter - """Filter by purchased token balance""" - purchasedTokenBalance: NumberFilter - """Filter by token acquisition cost in USD""" - tokenAcquisitionCostUsd: NumberFilter - """Filter by scammer score""" - scammerScore: NumberFilter - """Filter by bot score""" - botScore: NumberFilter -} - -"""A connection of wallets matching a filter.""" -type WalletFilterConnection { - """The list of wallets matching the filter parameters.""" - results: [WalletFilterResult!]! - """The number of wallets returned.""" - count: Int! - """Where in the list the server started when returning items.""" - offset: Int! -} - -"""A wallet matching a filter on a specific network.""" -type NetworkWalletFilterResult { - """The wallet address""" - address: String! - """The network ID of the wallet""" - networkId: Int! - """The unix timestamp for the first transaction from this wallet""" - firstTransactionAt: Int - """The unix timestamp for the last transaction from this wallet""" - lastTransactionAt: Int! - """The native token balance of the wallet""" - nativeTokenBalance: String! - """The labels associated with the wallet""" - labels: [String!]! - """Labels on the wallet's profile: identity (e.g. WHALE, KOL) and the behaviour our labelling jobs write (BOT, SCAMMER, VOLUME_BOT). See [`WalletLabel`](/api-reference/enums/walletlabel).""" - identityLabels: [String!] - """Registry entity ids of the apps this wallet trades through — e.g. `defined` for defined.fi, or `axiom`. Means "trades through", never "is owned by": one routed trade is enough to appear here.""" - tradeSourceIds: [String!] - """Volume in USD in the past day""" - volumeUsd1d: String! - """Total volume in USD in the past day including all tokens""" - volumeUsdAll1d: String! - """Realized profit in USD in the past day""" - realizedProfitUsd1d: String! - """Realized profit in USD excluding native tokens in the past day. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative1d: String - """Average profit in USD per trade in the past day""" - averageProfitUsdPerTrade1d: String! - """Average swap amount in USD in the past day""" - averageSwapAmountUsd1d: String! - """Realized profit percentage in the past day""" - realizedProfitPercentage1d: Float! - """Realized profit percentage excluding native tokens in the past day. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative1d: Float - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: Float - """Number of swaps in the past day""" - swaps1d: Int! - """Total number of swaps in the past day including all tokens""" - swapsAll1d: Int! - """Number of unique tokens traded in the past day""" - uniqueTokens1d: Int! - """Win rate in the past day""" - winRate1d: Float! - """Volume in USD in the past week""" - volumeUsd1w: String! - """Total volume in USD in the past week including all tokens""" - volumeUsdAll1w: String! - """Realized profit in USD in the past week""" - realizedProfitUsd1w: String! - """Realized profit in USD excluding native tokens in the past week. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative1w: String - """Average profit in USD per trade in the past week""" - averageProfitUsdPerTrade1w: String! - """Average swap amount in USD in the past week""" - averageSwapAmountUsd1w: String! - """Realized profit percentage in the past week""" - realizedProfitPercentage1w: Float! - """Realized profit percentage excluding native tokens in the past week. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative1w: Float - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: Float - """Number of swaps in the past week""" - swaps1w: Int! - """Total number of swaps in the past week including all tokens""" - swapsAll1w: Int! - """Number of unique tokens traded in the past week""" - uniqueTokens1w: Int! - """Win rate in the past week""" - winRate1w: Float! - """Volume in USD in the past 30 days""" - volumeUsd30d: String! - """Total volume in USD in the past 30 days including all tokens""" - volumeUsdAll30d: String! - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d: String! - """Realized profit in USD excluding native tokens in the past 30 days. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitUsdExNative30d: String - """Average profit in USD per trade in the past 30 days""" - averageProfitUsdPerTrade30d: String! - """Average swap amount in USD in the past 30 days""" - averageSwapAmountUsd30d: String! - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: Float! - """Realized profit percentage excluding native tokens in the past 30 days. Tracking began July 2, 2026; null for index records written before then.""" - realizedProfitPercentageExNative30d: Float - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: Float - """Number of swaps in the past 30 days""" - swaps30d: Int! - """Total number of swaps in the past 30 days including all tokens""" - swapsAll30d: Int! - """Number of unique tokens traded in the past 30 days""" - uniqueTokens30d: Int! - """Win rate in the past 30 days""" - winRate30d: Float! - """Volume in USD in the past year""" - volumeUsd1y: String! - """Total volume in USD in the past year including all tokens""" - volumeUsdAll1y: String! - """Realized profit in USD in the past year""" - realizedProfitUsd1y: String! - """Average profit in USD per trade in the past year""" - averageProfitUsdPerTrade1y: String! - """Average swap amount in USD in the past year""" - averageSwapAmountUsd1y: String! - """Realized profit percentage in the past year""" - realizedProfitPercentage1y: Float! - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: Float - """Number of swaps in the past year""" - swaps1y: Int! - """Total number of swaps in the past year including all tokens""" - swapsAll1y: Int! - """Number of unique tokens traded in the past year""" - uniqueTokens1y: Int! @deprecated(reason: "uniqueTokens1y is no longer available as a distinct 1-year value; it now reflects the 30-day value (uniqueTokens30d).") - """Win rate in the past year""" - winRate1y: Float! - """The scammer score for the wallet.""" - scammerScore: Int - """The bot score for the wallet.""" - botScore: Int - """The backfill state of the wallet.""" - backfillState: WalletAggregateBackfillState - """The wallet identity and profile data""" - wallet: Wallet -} - -"""A connection of wallets matching a filter on a specific network.""" -type NetworkWalletFilterConnection { - """The list of wallets matching the filter parameters.""" - results: [NetworkWalletFilterResult!]! - """The number of wallets returned.""" - count: Int! - """Where in the list the server started when returning items.""" - offset: Int! -} - -"""A connection of wallets matching a filter on a specific token.""" -type TokenWalletFilterConnection { - """The list of wallets matching the filter parameters.""" - results: [TokenWalletFilterResult!]! - """The number of wallets returned.""" - count: Int! - """Where in the list the server started when returning items.""" - offset: Int! -} - -"""The result for filtering wallets for a token.""" -type TokenWalletFilterResult { - """The wallet address""" - address: String! - """The token address""" - tokenAddress: String! - """The network ID""" - networkId: Int! - """The unix timestamp for the first transaction from this wallet""" - firstTransactionAt: Int - """The unix timestamp for the last transaction from this wallet""" - lastTransactionAt: Int! - """The labels associated with the wallet""" - labels: [String!]! - """Registry entity ids of the apps this wallet trades through — e.g. `defined` for defined.fi, or `axiom`. A property of the WALLET, not of its activity on this token: a wallet that trades most tokens through one app and this one through another lists both. Means "trades through", never "is owned by".""" - walletTradeSourceIds: [String!] - """Token amount bought in the past day""" - tokenAmountBought1d: String! - """Token amount sold in the past day""" - tokenAmountSold1d: String! - """Token amount sold all in the past day""" - tokenAmountSoldAll1d: String! - """Amount bought in USD in the past day""" - amountBoughtUsd1d: String! - """Amount sold in USD in the past day""" - amountSoldUsd1d: String! - """Amount sold USD all in the past day""" - amountSoldUsdAll1d: String! - """Realized profit in USD in the past day""" - realizedProfitUsd1d: String! - """Realized profit percentage in the past day""" - realizedProfitPercentage1d: Float! - """Average hold period, in seconds, for positions sold during the past day. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1d: Float - """Number of buys in the past day""" - buys1d: Int! - """Number of sells in the past day""" - sells1d: Int! - """Number of sells all in the past day""" - sellsAll1d: Int! - """Token amount bought in the past week""" - tokenAmountBought1w: String! - """Token amount sold in the past week""" - tokenAmountSold1w: String! - """Token amount sold all in the past week""" - tokenAmountSoldAll1w: String! - """Amount bought in USD in the past week""" - amountBoughtUsd1w: String! - """Amount sold in USD in the past week""" - amountSoldUsd1w: String! - """Amount sold USD all in the past week""" - amountSoldUsdAll1w: String! - """Realized profit in USD in the past week""" - realizedProfitUsd1w: String! - """Realized profit percentage in the past week""" - realizedProfitPercentage1w: Float! - """Average hold period, in seconds, for positions sold during the past week. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1w: Float - """Number of buys in the past week""" - buys1w: Int! - """Number of sells in the past week""" - sells1w: Int! - """Number of sells all in the past week""" - sellsAll1w: Int! - """Token amount bought in the past 30 days""" - tokenAmountBought30d: String! - """Token amount sold in the past 30 days""" - tokenAmountSold30d: String! - """Token amount sold all in the past 30 days""" - tokenAmountSoldAll30d: String! - """Amount bought in USD in the past 30 days""" - amountBoughtUsd30d: String! - """Amount sold in USD in the past 30 days""" - amountSoldUsd30d: String! - """Amount sold USD all in the past 30 days""" - amountSoldUsdAll30d: String! - """Realized profit in USD in the past 30 days""" - realizedProfitUsd30d: String! - """Realized profit percentage in the past 30 days""" - realizedProfitPercentage30d: Float! - """Average hold period, in seconds, for positions sold during the past 30 days. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec30d: Float - """Number of buys in the past 30 days""" - buys30d: Int! - """Number of sells in the past 30 days""" - sells30d: Int! - """Number of sells all in the past 30 days""" - sellsAll30d: Int! - """Token amount bought in the past year""" - tokenAmountBought1y: String! - """Token amount sold in the past year""" - tokenAmountSold1y: String! - """Token amount sold all in the past year""" - tokenAmountSoldAll1y: String! - """Amount bought in USD in the past year""" - amountBoughtUsd1y: String! - """Amount sold in USD in the past year""" - amountSoldUsd1y: String! - """Amount sold USD all in the past year""" - amountSoldUsdAll1y: String! - """Realized profit in USD in the past year""" - realizedProfitUsd1y: String! - """Realized profit percentage in the past year""" - realizedProfitPercentage1y: Float! - """Average hold period, in seconds, for positions sold during the past year. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold.""" - avgHoldPeriodSec1y: Float - """Number of buys in the past year""" - buys1y: Int! - """Number of sells in the past year""" - sells1y: Int! - """Number of sells all in the past year""" - sellsAll1y: Int! - """The token acquisition cost in USD""" - tokenAcquisitionCostUsd: String! - """The total balance of tokens that the user has bought or sold. This value does not include tokens acquired through external transfers or unsupported methods.""" - purchasedTokenBalance: String! - """The total balance of tokens held by the user, reflecting the most recent update to the record. This balance includes all tokens, even those transferred in through unsupported methods or DEXs that are not tracked by our system. This value does not update with every transfer and can be slightly stale. Use tokenBalanceLive for live data.""" - tokenBalance: String! - """The current token balance in the wallet. This value is updated with every transfer and is therefore more accurate than tokenBalance.""" - tokenBalanceLive: String - """The current USD value of the token balance.""" - tokenBalanceLiveUsd: String - """The token metadata""" - token: EnhancedToken! - """The scammer score for the wallet.""" - scammerScore: Int - """The bot score for the wallet.""" - botScore: Int - """The backfill state of the wallet.""" - backfillState: WalletAggregateBackfillState -} - -"""Attributes for ranking top traders. Each attribute applies to the stats for the requested trading period.""" -enum TokenTopTradersRankingAttribute { - """Realized profit in USD for the trading period""" - realizedProfitUsd - """Trading volume in USD (amount bought plus amount sold) for the trading period""" - volumeUsd -} - -"""A ranking for top traders.""" -input TokenTopTradersRanking { - """The attribute to rank top traders by""" - attribute: TokenTopTradersRankingAttribute! - """The direction to apply to the ranking attribute""" - direction: RankingDirection! -} - -"""Input arguments for the `tokenTopTraders` query.""" -input TokenTopTradersInput { - """The token address""" - tokenAddress: String! - """The network ID""" - networkId: Int! - """The trading period""" - tradingPeriod: TradingPeriod! - """How to rank the results. Defaults to `realizedProfitUsd` descending. Note: when ranking by `realizedProfitUsd`, descending returns only wallets with positive realized profit, and ascending returns only wallets with negative realized profit (the biggest losers first).""" - ranking: TokenTopTradersRanking - """The number of traders to return""" - limit: Int - """Where in the list the server started when returning items""" - offset: Int -} - -"""The input for filtering wallets.""" -input FilterWalletsInput { - """A set of filters to apply.""" - filters: WalletFilters - """A list of wallet addresses to filter by.""" - wallets: [String] - """A phrase to search for. Matches wallet address, display name, or social usernames (Twitter, Discord, Telegram, Farcaster, GitHub).""" - phrase: String - """Exclude wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - excludeLabels: [String] - """Include wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - includeLabels: [String] - """Include only wallets that have traded through any of these apps, by registry entity id — e.g. `defined` for defined.fi, or `axiom`.""" - includeTradeSourceIds: [String] - """Exclude wallets that have traded through any of these apps, by registry entity id.""" - excludeTradeSourceIds: [String] - """Only wallets that one of these ENS or SNS names points at, matched exactly and case-insensitively (e.g. `caladan.eth`, `caladan.sns`). Finds wallets that have traded. At most 100.""" - domains: [String!] - """A list of ranking attributes to apply.""" - rankings: [WalletRanking] - """The maximum number of wallets to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int -} - -"""The input for filtering wallets for a network.""" -input FilterNetworkWalletsInput { - """The network ID to filter wallets for""" - networkId: Int! - """A set of filters to apply.""" - filters: WalletNetworkFilters - """A list of wallet addresses to filter by.""" - wallets: [String] - """Exclude wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - excludeLabels: [String] - """Include wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - includeLabels: [String] - """Only wallets that one of these ENS or SNS names points at, matched exactly and case-insensitively (e.g. `caladan.eth`, `caladan.sns`). Finds wallets that have traded. At most 100.""" - domains: [String!] - """A list of ranking attributes to apply.""" - rankings: [WalletNetworkRanking] - """The maximum number of wallets to return.""" - limit: Int - """Where in the list the server should start when returning items. Use `count`+`offset` from the previous query to request the next page of results.""" - offset: Int -} - -"""The input for filtering wallets for a token.""" -input FilterTokenWalletsInput { - """The ID of the token to filter wallets for""" - tokenId: String @deprecated(reason: "Use tokenIds instead") - """The IDs of the tokens to filter wallets for. Maximum 50 tokenIds. If you provide more than one tokenId, you must also provide at least one walletAddress in the wallets list.""" - tokenIds: [String] - """The wallet address to filter wallets for""" - walletAddress: String @deprecated(reason: "Use wallets instead") - """A list of wallet addresses to filter wallets for""" - wallets: [String] - """The network ID to filter wallets for""" - networkId: Int - """A set of filters to apply""" - filters: WalletTokenFilters @deprecated(reason: "Use filtersV2 instead") - """A set of filters to apply""" - filtersV2: WalletTokenFiltersV2 - """A phrase to search for in token symbol and name""" - phrase: String - """A list of ranking attributes to apply""" - rankings: [WalletTokenRanking] - """Exclude wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - excludeLabels: [String] - """Include wallets with these labels. See [`WalletLabel`](/api-reference/enums/walletlabel) for possible values.""" - includeLabels: [String] - """Include only wallets that have traded through any of these apps, by registry entity id — e.g. `defined` for defined.fi, or `axiom`. Matches the wallet's apps overall, not the apps it used for this token.""" - includeTradeSourceIds: [String] - """Exclude wallets that have traded through any of these apps, by registry entity id.""" - excludeTradeSourceIds: [String] - """The maximum number of wallets to return""" - limit: Int - """Where in the list the server should start when returning items""" - offset: Int -} - -"""The input for detailed wallet stats.""" -input DetailedWalletStatsInput { - """The wallet address""" - walletAddress: String! - """The network ID""" - networkId: Int - """The timestamp to get stats for""" - timestamp: Int - """Whether to include network breakdown stats""" - includeNetworkBreakdown: Boolean -} - -"""The period the wallet stats are for.""" -enum WalletStatsDuration { - year1 - day30 - week1 - day1 -} - -"""The currency stats for a wallet over a time window.""" -type WindowedDetailedCurrencyWalletStats { - """The volume in USD""" - volumeUsd: String! - """The volume in USD including tokens sold for which we do not have a price""" - volumeUsdAll: String! - """The cost of tokens held in the wallet""" - heldTokenAcquisitionCostUsd: String! - """The cost of tokens sold during the period""" - soldTokenAcquisitionCostUsd: String! - """The realized profit in USD""" - realizedProfitUsd: String! - """The realized profit in USD excluding native tokens. Tracking began July 2, 2026; null on statsYear since a full year of data does not exist yet.""" - realizedProfitUsdExNative: String - """The average profit in USD per trade""" - averageProfitUsdPerTrade: String! - """The average swap amount in USD""" - averageSwapAmountUsd: String! - """The realized profit percentage""" - realizedProfitPercentage: Float! - """The realized profit percentage excluding native tokens. Tracking began July 2, 2026; null on statsYear since a full year of data does not exist yet.""" - realizedProfitPercentageExNative: Float -} - -"""The non-currency stats for a wallet over a time window.""" -type WindowedDetailedNonCurrencyWalletStats { - """The number of swaps""" - swaps: Int! - """The number of unique tokens""" - uniqueTokens: Int! - """The number of wins""" - wins: Int! - """The number of losses""" - losses: Int! - """Average hold period, in seconds, for positions sold during the window. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold in the window.""" - avgHoldPeriodSec: Float -} - -"""The stats for a wallet over a time window.""" -type WindowedWalletStats { - """The wallet address""" - walletAddress: String! - """The network ID""" - networkId: Int - """The start timestamp""" - start: Int! - """The end timestamp""" - end: Int! - """The last transaction timestamp""" - lastTransactionAt: Int! - """The stats related to currency""" - statsUsd: WindowedDetailedCurrencyWalletStats! - """The stats related to non-currency""" - statsNonCurrency: WindowedDetailedNonCurrencyWalletStats! -} - -"""The non-currency stats for a wallet over the 1-year window. Mirrors `WindowedDetailedNonCurrencyWalletStats`, but scopes the deprecation of `uniqueTokens` to the 1-year window only.""" -type WindowedDetailedNonCurrencyWalletStatsYear { - """The number of swaps""" - swaps: Int! - """The number of wins""" - wins: Int! - """The number of losses""" - losses: Int! - """Average hold period, in seconds, for positions sold during the window. Estimated with average-cost accounting: sells realize the age of the sold cost basis, so unsold holdings do not affect the result. A lower bound, capped at the window length. Returns null when under $1 of cost basis was sold in the window.""" - avgHoldPeriodSec: Float -} - -"""The stats for a wallet over the 1-year window. Mirrors `WindowedWalletStats`, but exposes 1-year-scoped non-currency stats so `uniqueTokens` can be deprecated for the 1-year window only.""" -type WindowedWalletStatsYear { - """The wallet address""" - walletAddress: String! - """The network ID""" - networkId: Int - """The start timestamp""" - start: Int! - """The end timestamp""" - end: Int! - """The last transaction timestamp""" - lastTransactionAt: Int! - """The stats related to currency""" - statsUsd: WindowedDetailedCurrencyWalletStats! - """The stats related to non-currency""" - statsNonCurrency: WindowedDetailedNonCurrencyWalletStatsYear! -} - -"""The detailed stats for a wallet.""" -type DetailedWalletStats { - """The wallet address""" - walletAddress: String! - """The last transaction timestamp""" - lastTransactionAt: Int! - """The network specific stats""" - networkSpecificStats: [NetworkWalletStats!] @deprecated(reason: "Use networkBreakdown instead") - """The network breakdown""" - networkBreakdown: [NetworkBreakdown!] - """The labels associated with the wallet. `BOT` and `SCAMMER` are left out when a score backs them: read `botScore` and `scammerScore` instead.""" - labels: [String!]! - """The likelihood of the wallet being a scammer""" - scammerScore: Int - """The likelihood of the wallet being a bot""" - botScore: Int - """The stats for the last day""" - statsDay1: WindowedWalletStats - """The stats for the last week""" - statsWeek1: WindowedWalletStats - """The stats for the last 30 days""" - statsDay30: WindowedWalletStats - """The stats for the last year""" - statsYear1: WindowedWalletStats @deprecated(reason: "Unique tokens traded is not available as a distinct 1-year value and reflects the 30-day value here; use statsYear instead.") - """The stats for the last year""" - statsYear: WindowedWalletStatsYear - """The wallet record""" - wallet: Wallet! -} - -"""A breakdown of the wallet's activity by network.""" -type NetworkBreakdown { - """The network ID""" - networkId: Int! - """The native token balance""" - nativeTokenBalance: String! - """The stats for the last day""" - statsDay1: WindowedWalletStats - """The stats for the last week""" - statsWeek1: WindowedWalletStats - """The stats for the last 30 days""" - statsDay30: WindowedWalletStats - """The stats for the last year""" - statsYear1: WindowedWalletStats @deprecated(reason: "Unique tokens traded is not available as a distinct 1-year value and reflects the 30-day value here; use statsYear instead.") - """The stats for the last year""" - statsYear: WindowedWalletStatsYear -} - -"""Native token balance for a wallet on a network.""" -type NetworkWalletStats { - """The network ID""" - networkId: Int! - """The native token balance""" - nativeTokenBalance: String! -} - -"""The range of time for a chart.""" -input RangeInput { - start: Int! - end: Int! -} - -"""The range of time for a chart.""" -type WalletChartRange { - start: Int! - end: Int! -} - -"""The input for a chart of a wallet's activity.""" -input WalletChartInput { - """The wallet address""" - walletAddress: String! - """The network ID""" - networkId: Int - """The range of time for the chart""" - range: RangeInput! - """The time frame for each candle. Available options are `60`, `240`, `1D`, `7D`.""" - resolution: String! -} - -"""The response for a chart of a wallet's activity.""" -type WalletChartResponse { - """The wallet address""" - walletAddress: String! - """The network ID""" - networkId: Int - """The range of time for the chart""" - range: WalletChartRange! - """The resolution of the chart""" - resolution: String! - """The data for the chart""" - data: [WalletChartData!]! - """The backfill state of the wallet.""" - backfillState: WalletAggregateBackfillState -} - -"""The data for a chart of a wallet's activity.""" -type WalletChartData { - """The timestamp""" - timestamp: Int! - """The resolution""" - resolution: String! - """The volume in USD""" - volumeUsd: String! - """The volume in USD including tokens sold for which we do not have a price""" - volumeUsdAll: String! - """The realized profit in USD""" - realizedProfitUsd: String! - """The realized profit in USD excluding native tokens. Tracking began July 2, 2026; chart buckets before that date read as 0.""" - realizedProfitUsdExNative: String! - """The number of swaps""" - swaps: Int! -} - -"""Input arguments for the `backfillWalletAggregates` mutation.""" -input WalletAggregateBackfillInput { - walletAddress: String! -} - -"""The state of the wallet backfill.""" -enum WalletAggregateBackfillState { - """Historical stats calculations for this wallet have been successfully processed""" - BackfillComplete - """Historical stats calculations for this wallet are being processed""" - BackfillInProgress - """Historical stats calculations were started, then canceled for this wallet. It may have been flagged as a bot""" - BackfillCanceled - """Historical stats calculations have been blocked for this wallet. It may have been flagged as a bot""" - BackfillBlocked - """Historical stats calculations for this wallet are queued and will be processed soon""" - BackfillRequestReceived - """Historical stats calculations for this wallet have not been started, nor attempted""" - BackfillNotFound -} - -"""Wallet behavior classification.""" -enum WalletCategory { - NORMIE - TOKEN_CREATOR - EXCHANGE - DEFI_EXCHANGE - PAIR - PAIR_TOKEN_HOLDER - POOL_AUTHORITY - STAKING_VAULT - NOTORIOUS - BURN - LOCKER -} - -"""The response for the `walletAggregateBackfillState` mutation.""" -type WalletAggregateBackfillStateResponse { - walletAddress: String! - status: WalletAggregateBackfillState! -} - -"""Input arguments for the `walletAggregateBackfillState` mutation.""" -input WalletAggregateBackfillStateInput { - walletAddress: String! -} - -"""Response returned by `usageData`: the compute units charged for the request that carried the field.""" -type UsageData { - """Each priced component of the request: one entry per operation, per-object type, or priced field.""" - items: [UsageDataItem!]! - """Totals across all items.""" - total: UsageDataMetrics! -} - -"""Usage metrics for one priced component, or for the whole request. Values are integers returned as strings.""" -type UsageDataMetrics { - """Billable units, not requests: 1 per call of a priced field, or the number of objects returned for a per-object cost.""" - count: String! - """Response bytes measured for this component. Reported for reference; standard pricing does not bill it.""" - bytes: String! - """Processing time in milliseconds measured for this component. Reported for reference; standard pricing does not bill it.""" - durationMs: String! - """Compute units charged, with six decimals of precision: 1,000,000 = 1 CU.""" - computeUnits: String! -} - -"""One priced component of a request.""" -type UsageDataItem { - """The operation or field that was priced, for example `filterTokens` or `filterTokens.results.token`.""" - resource: String! - """For a per-object cost, the type of the objects counted (for example `EnhancedToken`). Null for operation and field costs.""" - entityType: String - """The metrics charged for this component.""" - metrics: UsageDataMetrics! -} - -"""Input for `tokenWalletStats`.""" -input TokenWalletStatsInput { - """The contract address of the token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! -} - -"""The sniper, bundler and insider wallets that still hold a token. Counts, amounts and addresses cover current holders only: a labelled wallet that has sold its whole balance is left out, so every figure falls as those wallets sell. Each label reads at most 1,000 holders; past that, its count reads 1,000 and its amount and percentage cover those holders only. Available for launchpad tokens on every network, and for EVM tokens without a launchpad that have a known creator and were created since 2025-10-08. Read `covered` first: for any other token it is false, and every figure is 0 because nothing was measured.""" -type TokenWalletStats { - """The ID of the token (`address:networkId`).""" - tokenId: String! - """The contract address of the token.""" - tokenAddress: String! - """The network ID the token is deployed on.""" - networkId: Int! - """The total supply of the token, unshifted. Every held percentage is measured against it.""" - tokenTotalSupply: String! - """Whether Codex tracks snipers, bundlers and insiders for this token. When false, every count and percentage is 0 because nothing was measured, not because none were found.""" - covered: Boolean! - """The number of sniper wallets that hold this token. A sniper bought within the first 5 seconds of trading. The creator's own buy at launch counts.""" - sniperCount: Int! - """The percentage of token supply held by sniper wallets.""" - sniperHeldPercentage: Float! - """The sniper wallets that hold this token. Limited to 200.""" - sniperAddresses: [String!]! - """The amount of the token held by sniper wallets, unshifted.""" - sniperHeldAmount: String! - """The number of bundler wallets that hold this token. A bundler is one of 4 or more wallets that bought the token in the same block while it was on its launchpad, or in its first hour when it has none. A wallet one sender bought a large share for, alongside other wallets in the same block, is a bundler too.""" - bundlerCount: Int! - """The percentage of token supply held by bundler wallets.""" - bundlerHeldPercentage: Float! - """The bundler wallets that hold this token. Limited to 200.""" - bundlerAddresses: [String!]! - """The amount of the token held by bundler wallets, unshifted.""" - bundlerHeldAmount: String! - """The number of insider wallets that hold this token. An insider got the token through a link to its creator rather than by buying it on the open market: it bought in the creation transaction, received the token from the creator, or was first funded by the creator. On Solana, a wallet seeded with the token in its first minutes without buying it is an insider too.""" - insiderCount: Int! - """The percentage of token supply held by insider wallets.""" - insiderHeldPercentage: Float! - """The insider wallets that hold this token. Limited to 200.""" - insiderAddresses: [String!]! - """The amount of the token held by insider wallets, unshifted.""" - insiderHeldAmount: String! - """The number of suspicious wallets — the deduplicated union of snipers, bundlers, and insiders — that hold this token.""" - suspiciousCount: Int! - """The percentage of token supply held by suspicious wallets (deduplicated union of snipers, bundlers, and insiders).""" - suspiciousHeldPercentage: Float! - """The suspicious wallets that hold this token. Limited to 200.""" - suspiciousAddresses: [String!]! - """The amount of the token held by suspicious wallets, unshifted.""" - suspiciousHeldAmount: String! - """The percentage of token supply held by the developer/creator wallet.""" - devHeldPercentage: Float! - """The developer/creator wallet. Empty when the creator is unknown.""" - devAddress: String! - """The amount of the token held by the developer/creator wallet, unshifted.""" - devHeldAmount: String! -} - -type Wallet { - address: String! - category: WalletCategory - firstSeenTimestamp: Int - firstFunding: WalletFunding - """Labels on the wallet's profile: identity (e.g. CEX, DEX, KOL) and the behaviour our labelling jobs write (BOT, SCAMMER, VOLUME_BOT). See [`WalletLabel`](/api-reference/enums/walletlabel).""" - identityLabels: [String!] - """Resolved profile avatar URL (best available source)""" - avatarUrl: String - """A human-readable display name for the wallet""" - displayName: String - """Twitter/X numeric ID""" - twitterId: String - """Twitter/X username""" - twitterUsername: String - """Telegram numeric ID""" - telegramId: String - """Telegram username""" - telegramUsername: String - """Website URL""" - website: String - """Discord numeric ID""" - discordId: String - """Discord username""" - discordUsername: String - """GitHub numeric ID""" - githubId: String - """GitHub username""" - githubUsername: String - """Farcaster numeric ID""" - farcasterId: String - """Farcaster username""" - farcasterUsername: String - """A community-contributed description of the wallet""" - description: String - """Ethos credibility score (0-2800, higher = more trustworthy)""" - ethosScore: Int - """Ethos credibility tier (1-10)""" - ethosLevel: String - """Ethos Network verification status""" - ethosVerified: Boolean - """Registry entity ids of the apps this wallet trades through — e.g. `defined` for defined.fi, or `axiom`. Means "trades through", never "is owned by": one routed trade is enough to appear here.""" - tradeSourceIds: [String!] - """ENS and SNS names that point at this wallet: ENS then SNS, each with its primary first, then A to Z. Refreshed weekly. Null when the wallet has none.""" - domains: [WalletDomain!] - """Source of identity data (e.g. ethos, manual, polymarket-backfill)""" - identitySource: String - """When identity data was last updated (unix timestamp)""" - identityUpdatedAt: Int - """Raw Polymarket profile data when this wallet is a Polymarket proxy. Polymarket takes priority over contributed/ethos for resolved displayName, twitterUsername, and avatarUrl.""" - polymarket: WalletPolymarketProfile - """Total number of tokens created by this wallet across all networks (where the creator is known).""" - tokensCreatedCount: Int - """Total number of launchpad tokens migrated (graduated) by this wallet across all networks.""" - tokensMigratedCount: Int -} - -"""Polymarket public profile. proxyWallet is a Polymarket-managed proxy, not the user's signing wallet.""" -type WalletPolymarketProfile { - """On-chain proxy wallet address used by Polymarket to represent the user.""" - proxyWallet: String! - """Self-claimed X (Twitter) username on Polymarket, if set by the user.""" - xUsername: String - """Display name set by the user on Polymarket.""" - displayName: String - """Auto-generated pseudonym assigned by Polymarket (e.g. Incompatible-Standoff).""" - pseudonym: String - """Profile image URL set by the user on Polymarket.""" - profileImageUrl: String - """Whether the user has a verified badge on Polymarket.""" - verifiedBadge: Boolean - """Whether the user has opted to display their username publicly.""" - displayUsernamePublic: Boolean - """Unix timestamp of when this Polymarket profile was last fetched.""" - fetchedAt: Int! -} - -"""The name service a wallet name belongs to.""" -enum DomainType { - """Ethereum Name Service (.eth and other ENS names)""" - ENS - """Solana Name Service (.sns names)""" - SNS -} - -"""A name that points at a wallet.""" -type WalletDomain { - type: DomainType! - """The full name, lowercased (e.g. caladan.eth).""" - domain: String! - """Whether this is the wallet's primary name: the one its reverse record names.""" - primary: Boolean! -} - -type WalletFunding { - fundedByAddress: String! - fundedByLabel: String - fundedAt: Int! - tokenAddress: String! - networkId: Int! - amount: String! - transactionHash: String! -} - -"""An NFT collection transaction.""" -type NftEvent { - """The ID of the NFT event (`contractAddress`:`tokenId`:`networkId`).""" - id: String! - """The contract address of the NFT collection.""" - contractAddress: String! - """The network ID the NFT collection is deployed on.""" - networkId: Int! - """The token ID of the NFT asset involved in the transaction.""" - tokenId: String! - """The wallet address of the buyer.""" - maker: String! - """The wallet address of the seller.""" - taker: String! - tokenPrice: String! @deprecated(reason: "Some events may lack this value - use the nullable totalTradePrice. tokenPrice will return null values as an empty string.") - totalPrice: String! @deprecated(reason: "Some events may lack this value - use the nullable totalTradePrice. totalPrice will return null values as an empty string.") - """The total trade price for the transaction in the purchasing token. (The transaction can include more than 1 token).""" - totalTradePrice: String - individualTokenPrice: String @deprecated(reason: "Some events may lack this value - use the nullable individualTradePrice. individualTokenPrice will return null values as an empty string.") - individualPrice: String @deprecated(reason: "Some events may lack this value - use the nullable individualTradePrice. individualPrice will return null values as an empty string.") - """The price of each individual NFT in the purchasing token.""" - individualTradePrice: String - baseTokenAddress: String! @deprecated(reason: "No longer supported") - """The contract address of the purchasing token.""" - paymentTokenAddress: String! - baseTokenPrice: String @deprecated(reason: "No longer supported") - """The total trade price for the transaction in USD. (The transaction can include more than 1 token).""" - totalPriceUsd: String - individualBaseTokenPrice: String @deprecated(reason: "No longer supported") - """The price of each individual NFT in USD.""" - individualPriceUsd: String - networkBaseTokenPrice: String @deprecated(reason: "No longer supported") - """The total trade price for the transaction in the network's base token. (The transaction can include more than 1 token).""" - totalPriceNetworkBaseToken: String - individualNetworkBaseTokenPrice: String @deprecated(reason: "No longer supported") - """The price of each individual NFT in the network's base token.""" - individualPriceNetworkBaseToken: String - """The event type of the transaction.""" - eventType: String! - """The NFT marketplace address of the transaction.""" - exchangeAddress: String! - """The sortKey for the event (`blockNumber`#`transactionIndex`#`logIndex` (+ #`marketplaceEventLogIndex` if applicable), zero padded). For example, `0000000016414564#00000224#00000413#00000414`.""" - sortKey: String! - """The block number for the transaction.""" - blockNumber: Int! - """The index of the transaction within the block.""" - transactionIndex: Int! - """The index of the log in the block.""" - logIndex: Int! - """The unique hash for the transaction.""" - transactionHash: String! - """The unix timestamp for the transaction.""" - timestamp: Int! - """The number of assets involved in the transaction.""" - numberOfTokens: String - """The contract address of the marketplace aggregator that routed the transaction.""" - aggregatorAddress: String - """The contract address of the NFT pool, if applicable.""" - poolAddress: String - """The name of the marketplace that processed the transaction.""" - fillSource: String - """The reason for the price error, if applicable. Can be `NO_TOKEN_DATA`, `NO_TOKEN_PRICE`, or `LOW_LIQUIDITY_PAIR`.""" - priceError: String - """The tokens/NFTs that were offered to make this transaction occur.""" - tradeOffer: [NftEventTradeItem!] - """The tokens/NFTs that were received in this transaction.""" - tradeReceived: [NftEventTradeItem!] - """The direction of the order. One of 'BUY', 'SELL', or 'OFFER_ACCEPTED'.""" - orderDirection: NftEventOrderDirection -} - -"""Details for an NFT offered or received as part of an nft trade.""" -type NftEventNftTradeItem { - """The contract address for the NFT.""" - address: String! - """The number of tokens transferred. (Always 1 for ERC721 NFTs)""" - amount: String! - """The recipient of the NFT.""" - recipient: String - """The type of item involved in the trade. (Always NFT)""" - type: NftEventTradeItemType! - """The token ID of the exchanged NFT""" - tokenId: String! -} - -"""Details for a token(s) offered or received as part of an nft trade.""" -type NftEventTokenTradeItem { - """The contract address for the token.""" - address: String! - """The number of tokens transferred.""" - amount: String! - """The recipient of the tokens.""" - recipient: String - """The type of item involved in the trade. (Always TOKEN)""" - type: NftEventTradeItemType! - """Whether this should be summed to calculate the price of the NFT received in the base event. Tokens that are payment fees or involved with other sales in the transaction are often represented in sales and would have a value of `false`.""" - isPrice: Boolean! - """The total trade price for the transaction in the purchasing token. (The transaction can include more than 1 token).""" - totalTradePrice: String - """The price of each individual NFT in the purchasing token.""" - individualTradePrice: String - """The total trade price for the transaction in USD. (The transaction can include more than 1 token).""" - totalPriceUsd: String - """The price of each individual NFT in USD.""" - individualPriceUsd: String - """The total trade price for the transaction in the network's base token. (The transaction can include more than 1 token).""" - totalPriceNetworkBaseToken: String - """The price of each individual NFT in the network's base token.""" - individualPriceNetworkBaseToken: String - """The reason for the price error, if applicable. Can be `NO_TOKEN_DATA`, `NO_TOKEN_PRICE`, or `LOW_LIQUIDITY_PAIR`.""" - priceError: String -} - -type EvmNetworkConfig { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - stableCoinAddresses: [String!] - wrappedBaseTokenSymbol: String! - """The network's native currency descriptor, when it has one. Native balances scale by its decimals; token metadata keeps the ERC-20 decimals.""" - nativeCurrency: NativeCurrency -} - -type SolanaNetworkConfig { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - stableCoinAddresses: [String!] - wrappedBaseTokenSymbol: String! -} - -type AptosNetworkConfig { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - stableCoinAddresses: [String!] - wrappedBaseTokenSymbol: String! -} - -type SuiNetworkConfig { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - stableCoinAddresses: [String!] - wrappedBaseTokenSymbol: String! -} - -type StarknetNetworkConfig { - id: ID! - networkId: Int! - baseTokenAddress: String! - baseTokenSymbol: String! - color: String - defaultPairAddress: String! - defaultPairQuoteToken: QuoteToken! - enabled: Boolean! - newTokensEnabled: Boolean - explorer: ExplorerConfig! - mainnet: Boolean! - name: String! - networkIconUrl: String! - networkName: String! - networkShortName: String! - networkType: NetworkConfigType! - stableCoinAddresses: [String!] - wrappedBaseTokenSymbol: String! -} - -"""A token transaction.""" -type Event { - """The contract address of the token's top pair.""" - address: String! - """The commitment level of the event within the live stream.""" - commitmentLevel: EventCommitmentLevel! - """The price of the network's base token.""" - baseTokenPrice: String - """The hash of the block where the transaction occurred.""" - blockHash: String! - """The block number for the transaction.""" - blockNumber: Int! - """The event-specific data for the transaction. Can be `BurnEventData` or `MintEventData` or `SwapEventData`.""" - data: EventData - """The type of transaction event. Can be `Burn`, `Mint`, `Swap`, `Sync`, `Collect`, or `CollectProtocol`.""" - eventType: EventType! - """The ID of the event (`address:networkId`). For example, `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2:1`.""" - id: String! - """The contract address of the token with higher liquidity in the token's top pair.""" - liquidityToken: String - """The index of the log in the block.""" - logIndex: Int! - """The wallet address that performed the transaction.""" - maker: String - """The network ID that the token is deployed on.""" - networkId: Int! - """The token of interest within the token's top pair. Can be `token0` or `token1`.""" - quoteToken: QuoteToken - """The unix timestamp for when the transaction occurred.""" - timestamp: Int! - """The address of the event's token0.""" - token0Address: String - """The address of the event's token1.""" - token1Address: String - """The price of `token0` paid/received in USD, including any fees.""" - token0SwapValueUsd: String - """The price of `token1` paid/received in USD, including any fees.""" - token1SwapValueUsd: String - """The price of `token0` paid/received in the network's base token, including fees.""" - token0ValueBase: String - """The price of `token1` paid/received in the network's base token, including fees.""" - token1ValueBase: String - """The updated price of `token0` in USD, calculated after the transaction.""" - token0PoolValueUsd: String - """The updated price of `token1` in USD, calculated after the transaction.""" - token1PoolValueUsd: String - """The unique hash for the transaction.""" - transactionHash: String! - """The index of the transaction within the block.""" - transactionIndex: Int! - """An optional unique identifier describing where the event appears within the transaction.""" - supplementalIndex: Int - """A more specific breakdown of `eventType`. Splits `Swap` into `Buy` or `Sell`.""" - eventDisplayType: EventDisplayType - """Labels attributed to the event.""" - labels: LabelsForEvent - """Fee breakdown for this event.""" - feeData: EventFeeData - """The age of the wallet in seconds.""" - walletAge: Int - """Labels attributed to the wallet.""" - walletLabels: [String!] - """The app the trade was placed through, when it could be determined. Null for the majority of events — most on-chain trades carry no identifying signal. Currently populated for Solana swaps only.""" - tradeSource: TradeSource - """The measurement units of the raw side amounts in `data` (`amount0`, `amount1`, …); null when the pool measures in its tokens' metadata.""" - currencyUnits: CurrencyUnits -} - -type TokenFilterEventWebhookCondition { - """Seconds a token must wait after it stops matching before it can fire again.""" - cooldownSeconds: Int! - """Whether tokens that already matched when the webhook was created sent an alert.""" - alertOnExistingMatches: Boolean! - """Seconds after creation during which a token already matching was not alerted on.""" - warmUpSeconds: Int! - """The token contract address. Requires exactly one `networkId`.""" - tokenAddress: StringEqualsCondition - """The network IDs to listen on.""" - networkId: OneOfNumberCondition - """Include tokens flagged as scams. Scams are excluded by default.""" - includeScams: Boolean - """Match only tokens whose potential scam flag equals this value.""" - potentialScam: Boolean - """The token creator's wallet address.""" - creatorAddress: StringEqualsCondition - """The launchpad names to match, case-insensitive.""" - launchpadName: OneOfStringCondition - """Match only tokens whose launchpad completion equals this value.""" - launchpadCompleted: Boolean - """Match only tokens whose launchpad migration equals this value.""" - launchpadMigrated: Boolean - """The launchpad graduation percent.""" - launchpadGraduationPercent: ComparisonOperator - """The price in USD.""" - priceUsd: ComparisonOperator - """The liquidity in USD.""" - liquidityUsd: ComparisonOperator - """The fully diluted market cap in USD.""" - fdvMarketCapUsd: ComparisonOperator - """The circulating market cap in USD.""" - circulatingMarketCapUsd: ComparisonOperator - """The number of holders.""" - holders: ComparisonOperator - """Seconds since the token's first pair was created.""" - ageSeconds: ComparisonOperator - """The number of sniper wallets.""" - sniperCount: ComparisonOperator - """The percentage of supply held by snipers.""" - sniperHeldPercentage: ComparisonOperator - """The number of bundler wallets.""" - bundlerCount: ComparisonOperator - """The percentage of supply held by bundlers.""" - bundlerHeldPercentage: ComparisonOperator - """The number of insider wallets.""" - insiderCount: ComparisonOperator - """The percentage of supply held by insiders.""" - insiderHeldPercentage: ComparisonOperator - """The percentage of supply held by the developer.""" - devHeldPercentage: ComparisonOperator - """The percentage of supply held by the top 10 holders.""" - top10HoldersPercent: ComparisonOperator - """Conditions for the 5-minute window.""" - min5: WindowedTokenFilterEventWebhookCondition - """Conditions for the 1-hour window.""" - hour1: WindowedTokenFilterEventWebhookCondition - """Conditions for the 4-hour window.""" - hour4: WindowedTokenFilterEventWebhookCondition - """Conditions for the 12-hour window.""" - hour12: WindowedTokenFilterEventWebhookCondition - """Conditions for the 1-day window.""" - day1: WindowedTokenFilterEventWebhookCondition -} - -type WindowedTokenFilterEventWebhookCondition { - """The price change over the window, as a fraction: 0.25 is 25%.""" - priceChange: TokenFilterEventChangeCondition - """The volume change against the previous window, as a fraction.""" - volumeChange: TokenFilterEventChangeCondition - """The volume in USD.""" - volumeUsd: ComparisonOperator - """The buy volume in USD.""" - buyVolumeUsd: ComparisonOperator - """The sell volume in USD.""" - sellVolumeUsd: ComparisonOperator - """The number of buys.""" - buys: ComparisonOperator - """The number of sells.""" - sells: ComparisonOperator - """The number of transactions.""" - transactions: ComparisonOperator - """The number of unique buyers.""" - uniqueBuys: ComparisonOperator - """The number of unique sellers.""" - uniqueSells: ComparisonOperator - """The number of unique traders.""" - uniqueTransactions: ComparisonOperator - """The trending score.""" - trendingScore: ComparisonOperator -} - -type TokenFilterEventChangeCondition { - """Greater than.""" - gt: String - """Greater than or equal to.""" - gte: String - """Less than.""" - lt: String - """Less than or equal to.""" - lte: String - """Equal to.""" - eq: String - """Compare the size of the change, ignoring whether it went up or down.""" - absolute: Boolean -} - diff --git a/src/scripts/generateGraphql.ts b/src/scripts/generateGraphql.ts index ae93a06..3d1fa9c 100644 --- a/src/scripts/generateGraphql.ts +++ b/src/scripts/generateGraphql.ts @@ -2,6 +2,7 @@ import chalk from "chalk"; import fs from "fs"; import * as gql from "gql-query-builder"; import VariableOptions from "gql-query-builder/build/VariableOptions"; +import { buildSchema, introspectionFromSchema } from "graphql"; import { mkdirp } from "mkdirp"; import ora from "ora"; import path from "path"; @@ -159,20 +160,17 @@ export function parseVariables(args: SchemaType[]) { } /** - * Runs a query against the currently published graphql schema, - * and generates a query ts file for query. + * Generates operations from the fetched schema used by codegen. */ async function run() { const brand = chalk.hex("#EAFE77"); console.log(brand.bold("\n📝 Generating GraphQL Operations\n")); - // Fetch schema from remote - const fetchSpinner = ora("Fetching schema from remote").start(); - const res = await fetch(`https://graph.codex.io/schema/latest.json`, { - method: "GET", - }); - const schemaJson = await res.json(); - fetchSpinner.succeed(`Fetched schema from ${brand("graph.codex.io")}`); + const schemaSpinner = ora("Loading fetched schema").start(); + const schemaPath = path.join(__dirname, "..", "resources", "schema.graphql"); + const schema = buildSchema(fs.readFileSync(schemaPath, "utf8")); + const schemaJson = introspectionFromSchema(schema); + schemaSpinner.succeed("Loaded fetched schema"); // Clear previously generated operations so that anything removed from the // schema doesn't linger as an orphaned .graphql file and break codegen.