changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "coverage": {
- "const": "full",
- "title": "Coverage",
- "type": "string"
- },
- "data": {
- "properties": {
- "age_s": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Age S"
- },
- "concentration": {
- "properties": {
- "bundle_share": {
- "title": "Bundle Share",
- "type": "number"
- },
- "dev_share": {
- "title": "Dev Share",
- "type": "number"
- },
- "hhi": {
- "description": "Herfindahl index of the holder balances (sum of squared shares of the held tokens).",
- "title": "Hhi",
- "type": "number"
- },
- "insider_share": {
- "description": "dev_share + bundle_share, as the compact check reports it.",
- "title": "Insider Share",
- "type": "number"
- },
- "listed_share": {
- "description": "Share of supply held by the rows listed in this answer.",
- "title": "Listed Share",
- "type": "number"
- },
- "n_bundle_wallets": {
- "minimum": 0,
- "title": "N Bundle Wallets",
- "type": "integer"
- },
- "n_holders": {
- "minimum": 0,
- "title": "N Holders",
- "type": "integer"
- },
- "top10_share": {
- "title": "Top10 Share",
- "type": "number"
- },
- "top5_share": {
- "title": "Top5 Share",
- "type": "number"
- }
- },
- "required": [
- "n_holders",
- "top5_share",
- "top10_share",
- "hhi",
- "dev_share",
- "bundle_share",
- "insider_share",
- "n_bundle_wallets",
- "listed_share"
- ],
- "title": "Concentration",
- "type": "object"
- },
- "count": {
- "maximum": 100,
- "minimum": 0,
- "title": "Count",
- "type": "integer"
- },
- "created_at": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Created At"
- },
- "creator": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Creator"
- },
- "holders": {
- "items": {
- "properties": {
- "balance_share": {
- "description": "Tokens held / total supply.",
- "title": "Balance Share",
- "type": "number"
- },
- "buys": {
- "minimum": 0,
- "title": "Buys",
- "type": "integer"
- },
- "first_buy_at": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Time of the wallet's first buy on the tape; null when its first tokens came in another wallet's transaction or left the tape.",
- "title": "First Buy At"
- },
- "first_buy_slot": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "First Buy Slot"
- },
- "labels": {
- "items": {
- "type": "string"
- },
- "title": "Labels",
- "type": "array"
- },
- "last_trade_at": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Last Trade At"
- },
- "leaderboard_rank": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Leaderboard Rank"
- },
- "rank": {
- "minimum": 1,
- "title": "Rank",
- "type": "integer"
- },
- "route": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "How the wallet's first tokens moved (/v1/labels holders_flow.route).",
- "title": "Route"
- },
- "sells": {
- "minimum": 0,
- "title": "Sells",
- "type": "integer"
- },
- "tokens": {
- "title": "Tokens",
- "type": "number"
- },
- "wallet": {
- "title": "Wallet",
- "type": "string"
- },
- "wallet_class": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "The first of labels in the order dev, bundle, mayhem_agent, insider, latency_bot, skilled; null when none applies.",
- "title": "Wallet Class"
- }
- },
- "required": [
- "rank",
- "wallet",
- "balance_share",
- "tokens",
- "buys",
- "sells",
- "labels"
- ],
- "title": "HolderRow",
- "type": "object"
- },
- "maxItems": 100,
- "title": "Holders",
- "type": "array"
- },
- "leaderboard": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Leaderboard"
- },
- "limit": {
- "title": "Limit",
- "type": "integer"
- },
- "migrated": {
- "title": "Migrated",
- "type": "boolean"
- },
- "mint": {
- "title": "Mint",
- "type": "string"
- },
- "n_holders": {
- "minimum": 0,
- "title": "N Holders",
- "type": "integer"
- },
- "name": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Name"
- },
- "note": {
- "title": "Note",
- "type": "string"
- },
- "supply_tokens": {
- "title": "Supply Tokens",
- "type": "number"
- },
- "symbol": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Symbol"
- },
- "tape": {
- "properties": {
- "complete_from_launch": {
- "title": "Complete From Launch",
- "type": "boolean"
- },
- "dropped_oldest": {
- "description": "Oldest trades dropped from a busy mint's tape (at most max_rows are kept).",
- "minimum": 0,
- "title": "Dropped Oldest",
- "type": "integer"
- },
- "max_rows": {
- "title": "Max Rows",
- "type": "integer"
- },
- "trades_on_tape": {
- "minimum": 0,
- "title": "Trades On Tape",
- "type": "integer"
- }
- },
- "required": [
- "trades_on_tape",
- "dropped_oldest",
- "max_rows",
- "complete_from_launch"
- ],
- "title": "TapeInfo",
- "type": "object"
- },
- "untracked_wallets": {
- "minimum": 0,
- "title": "Untracked Wallets",
- "type": "integer"
- }
- },
- "required": [
- "mint",
- "migrated",
- "supply_tokens",
- "count",
- "limit",
- "n_holders",
- "untracked_wallets",
- "concentration",
- "holders",
- "tape",
- "note"
- ],
- "title": "HoldersData",
- "type": "object"
- },
- "generated_at": {
- "title": "Generated At",
- "type": "string"
- },
- "meta": {
- "additionalProperties": true,
- "title": "Meta",
- "type": "object"
- },
- "ok": {
- "const": true,
- "title": "Ok",
- "type": "boolean"
- },
- "schema_version": {
- "const": "2.0",
- "title": "Schema Version",
- "type": "string"
- },
- "t": {
- "title": "T",
- "type": "number"
- }
- },
- "required": [
- "ok",
- "schema_version",
- "generated_at",
- "t",
- "coverage",
- "data",
- "meta"
- ],
- "title": "HoldersEnvelope",
- "type": "object"
- },
- {
- "description": "isError: the x402 v2 payment requirements. Pay one accepts entry and call again with _meta['x402/payment']. error says why when a payment was sent and rejected; a failed settlement adds x402/payment-response. Nothing is charged.",
- "properties": {
- "accepts": {
- "items": {
- "properties": {
- "amount": {
- "type": "string"
- },
- "asset": {
- "type": "string"
- },
- "extra": {
- "type": "object"
- },
- "maxTimeoutSeconds": {
- "type": "integer"
- },
- "network": {
- "type": "string"
- },
- "payTo": {
- "type": "string"
- },
- "scheme": {
- "type": "string"
- }
- },
- "required": [
- "scheme",
- "network",
- "amount",
- "asset",
- "payTo"
- ],
- "type": "object"
- },
- "minItems": 1,
- "type": "array"
- },
- "error": {
- "type": "string"
- },
- "extensions": {
- "type": "object"
- },
- "resource": {
- "properties": {
- "description": {
- "type": "string"
- },
- "mimeType": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "type": "object"
- },
- "x402/payment-response": {
- "properties": {
- "errorReason": {
- "type": "string"
- },
- "network": {
- "type": "string"
- },
- "success": {
- "type": "boolean"
- },
- "transaction": {
- "type": "string"
- }
- },
- "required": [
- "success"
- ],
- "type": "object"
- },
- "x402Version": {
- "const": 2
- }
- },
- "required": [
- "x402Version",
- "resource",
- "accepts"
- ],
- "title": "PaymentRequired",
- "type": "object"
- },
- {
- "description": "isError: a refusal answered without charging (invalid or uncovered arguments, stale feed, nothing new since the cursor, a payment that cannot be matched to this request). error is a stable code; live_examples name mints covered now.",
- "properties": {
- "address": {
- "type": "string"
- },
- "avoid_skipped": {
- "type": "integer"
- },
- "case_mangled_mints": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "charged": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "curve": {
- "type": "string"
- },
- "error": {
- "type": "string"
- },
- "feed_lag_s": {
- "type": [
- "number",
- "null"
- ]
- },
- "free_check": {
- "type": "string"
- },
- "got": {
- "type": [
- "string",
- "integer"
- ]
- },
- "hint": {
- "type": "string"
- },
- "invalid": {
- "type": "object"
- },
- "live_examples": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "max_feed_lag_s": {
- "type": "number"
- },
- "max_mints": {
- "type": "integer"
- },
- "max_table_lag_s": {
- "type": "number"
- },
- "message": {
- "type": "string"
- },
- "mint": {
- "type": "string"
- },
- "missing": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "newest_cursor": {
- "type": "string"
- },
- "ok": {
- "const": false
- },
- "payment_status": {
- "type": "string"
- },
- "scanned": {
- "type": "integer"
- },
- "schema": {
- "type": "object"
- },
- "since": {
- "type": [
- "string",
- "null"
- ]
- },
- "table_lag_s": {
- "type": [
- "number",
- "null"
- ]
- },
- "tool": {
- "type": "string"
- },
- "unavailable_mints": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "unverified_event": {
- "type": [
- "object",
- "null"
- ]
- },
- "window_s": {
- "type": "number"
- }
- },
- "required": [
- "ok",
- "error"
- ],
- "title": "Refusal",
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "coverage": {
+ "const": "full",
+ "title": "Coverage",
+ "type": "string"
+ },
+ "data": {
+ "properties": {
+ "age_s": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Age S"
+ },
+ "cohorts": {
+ "anyOf": [
+ {
+ "properties": {
+ "bundlers": {
+ "properties": {
+ "buy_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that entered the curve on the cohort's buys (fees paid outside the curve are not in it).",
+ "title": "Buy Sol"
+ },
+ "n_holding": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets of the cohort still holding tokens.",
+ "title": "N Holding"
+ },
+ "n_wallets": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets in the cohort, sold-out ones included.",
+ "title": "N Wallets"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "buy_sol - sell_sol: negative when the cohort took out more SOL than it put in; null when sol_complete is false for it.",
+ "title": "Net Sol"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why the cohort's figures are null.",
+ "title": "Reason"
+ },
+ "sell_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that left the curve on the cohort's sells.",
+ "title": "Sell Sol"
+ },
+ "share_of_supply": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Tokens the cohort's wallets hold now / total supply (1B; 2B on a mayhem launch).",
+ "title": "Share Of Supply"
+ },
+ "source": {
+ "enum": [
+ "tape",
+ "tape+funding_capture",
+ "unavailable"
+ ],
+ "title": "Source",
+ "type": "string"
+ },
+ "wallets": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "first_slot_offset": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Slots after the create slot when the wallet's first tokens of this mint arrived; null when it never received any.",
+ "title": "First Slot Offset"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL it put into the curve on its buys minus SOL it took out on its sells; null when the tape cannot give it exactly.",
+ "title": "Net Sol"
+ },
+ "share_of_supply": {
+ "description": "Tokens this wallet holds now / total supply.",
+ "title": "Share Of Supply",
+ "type": "number"
+ },
+ "wallet": {
+ "title": "Wallet",
+ "type": "string"
+ }
+ },
+ "required": [
+ "wallet",
+ "share_of_supply"
+ ],
+ "title": "CohortWallet",
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 of the cohort's wallets, largest holding first.",
+ "title": "Wallets"
+ }
+ },
+ "required": [
+ "share_of_supply",
+ "source"
+ ],
+ "title": "Cohort",
+ "type": "object"
+ },
+ "dev": {
+ "properties": {
+ "buy_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that entered the curve on the cohort's buys (fees paid outside the curve are not in it).",
+ "title": "Buy Sol"
+ },
+ "n_funded_by_creator": {
+ "description": "Wallets in the dev cohort because our funding capture saw the creator fund them.",
+ "minimum": 0,
+ "title": "N Funded By Creator",
+ "type": "integer"
+ },
+ "n_holding": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets of the cohort still holding tokens.",
+ "title": "N Holding"
+ },
+ "n_wallets": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets in the cohort, sold-out ones included.",
+ "title": "N Wallets"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "buy_sol - sell_sol: negative when the cohort took out more SOL than it put in; null when sol_complete is false for it.",
+ "title": "Net Sol"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why the cohort's figures are null.",
+ "title": "Reason"
+ },
+ "sell_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that left the curve on the cohort's sells.",
+ "title": "Sell Sol"
+ },
+ "share_of_supply": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Tokens the cohort's wallets hold now / total supply (1B; 2B on a mayhem launch).",
+ "title": "Share Of Supply"
+ },
+ "source": {
+ "enum": [
+ "tape",
+ "tape+funding_capture",
+ "unavailable"
+ ],
+ "title": "Source",
+ "type": "string"
+ },
+ "wallets": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "first_slot_offset": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Slots after the create slot when the wallet's first tokens of this mint arrived; null when it never received any.",
+ "title": "First Slot Offset"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL it put into the curve on its buys minus SOL it took out on its sells; null when the tape cannot give it exactly.",
+ "title": "Net Sol"
+ },
+ "share_of_supply": {
+ "description": "Tokens this wallet holds now / total supply.",
+ "title": "Share Of Supply",
+ "type": "number"
+ },
+ "wallet": {
+ "title": "Wallet",
+ "type": "string"
+ }
+ },
+ "required": [
+ "wallet",
+ "share_of_supply"
+ ],
+ "title": "CohortWallet",
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 of the cohort's wallets, largest holding first.",
+ "title": "Wallets"
+ }
+ },
+ "required": [
+ "share_of_supply",
+ "source",
+ "n_funded_by_creator"
+ ],
+ "title": "DevCohort",
+ "type": "object"
+ },
+ "fresh_wallets": {
+ "properties": {
+ "buy_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that entered the curve on the cohort's buys (fees paid outside the curve are not in it).",
+ "title": "Buy Sol"
+ },
+ "n_holding": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets of the cohort still holding tokens.",
+ "title": "N Holding"
+ },
+ "n_wallets": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets in the cohort, sold-out ones included.",
+ "title": "N Wallets"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "buy_sol - sell_sol: negative when the cohort took out more SOL than it put in; null when sol_complete is false for it.",
+ "title": "Net Sol"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why the cohort's figures are null.",
+ "title": "Reason"
+ },
+ "sell_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that left the curve on the cohort's sells.",
+ "title": "Sell Sol"
+ },
+ "share_of_supply": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Tokens the cohort's wallets hold now / total supply (1B; 2B on a mayhem launch).",
+ "title": "Share Of Supply"
+ },
+ "source": {
+ "enum": [
+ "tape",
+ "tape+funding_capture",
+ "unavailable"
+ ],
+ "title": "Source",
+ "type": "string"
+ },
+ "wallets": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "first_slot_offset": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Slots after the create slot when the wallet's first tokens of this mint arrived; null when it never received any.",
+ "title": "First Slot Offset"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL it put into the curve on its buys minus SOL it took out on its sells; null when the tape cannot give it exactly.",
+ "title": "Net Sol"
+ },
+ "share_of_supply": {
+ "description": "Tokens this wallet holds now / total supply.",
+ "title": "Share Of Supply",
+ "type": "number"
+ },
+ "wallet": {
+ "title": "Wallet",
+ "type": "string"
+ }
+ },
+ "required": [
+ "wallet",
+ "share_of_supply"
+ ],
+ "title": "CohortWallet",
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 of the cohort's wallets, largest holding first.",
+ "title": "Wallets"
+ }
+ },
+ "required": [
+ "share_of_supply",
+ "source"
+ ],
+ "title": "Cohort",
+ "type": "object"
+ },
+ "omitted": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Cohorts not served, with the reason.",
+ "title": "Omitted",
+ "type": "object"
+ },
+ "shares_complete": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "True when the booked trades account for the curve's SOL (within 0.001 SOL); false when trades are missing, so every share here is a lower bound; null when it cannot be checked.",
+ "title": "Shares Complete"
+ },
+ "slot_windows": {
+ "properties": {
+ "bundlers": {
+ "description": "Inclusive slot offsets from the create slot.",
+ "items": {
+ "type": "integer"
+ },
+ "maxItems": 2,
+ "minItems": 2,
+ "title": "Bundlers",
+ "type": "array"
+ },
+ "snipers": {
+ "description": "Inclusive slot offsets from the create slot.",
+ "items": {
+ "type": "integer"
+ },
+ "maxItems": 2,
+ "minItems": 2,
+ "title": "Snipers",
+ "type": "array"
+ }
+ },
+ "required": [
+ "bundlers",
+ "snipers"
+ ],
+ "title": "SlotWindows",
+ "type": "object"
+ },
+ "snipers": {
+ "properties": {
+ "buy_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that entered the curve on the cohort's buys (fees paid outside the curve are not in it).",
+ "title": "Buy Sol"
+ },
+ "n_holding": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets of the cohort still holding tokens.",
+ "title": "N Holding"
+ },
+ "n_wallets": {
+ "anyOf": [
+ {
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Wallets in the cohort, sold-out ones included.",
+ "title": "N Wallets"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "buy_sol - sell_sol: negative when the cohort took out more SOL than it put in; null when sol_complete is false for it.",
+ "title": "Net Sol"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why the cohort's figures are null.",
+ "title": "Reason"
+ },
+ "sell_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL that left the curve on the cohort's sells.",
+ "title": "Sell Sol"
+ },
+ "share_of_supply": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Tokens the cohort's wallets hold now / total supply (1B; 2B on a mayhem launch).",
+ "title": "Share Of Supply"
+ },
+ "source": {
+ "enum": [
+ "tape",
+ "tape+funding_capture",
+ "unavailable"
+ ],
+ "title": "Source",
+ "type": "string"
+ },
+ "wallets": {
+ "anyOf": [
+ {
+ "items": {
+ "properties": {
+ "first_slot_offset": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Slots after the create slot when the wallet's first tokens of this mint arrived; null when it never received any.",
+ "title": "First Slot Offset"
+ },
+ "net_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL it put into the curve on its buys minus SOL it took out on its sells; null when the tape cannot give it exactly.",
+ "title": "Net Sol"
+ },
+ "share_of_supply": {
+ "description": "Tokens this wallet holds now / total supply.",
+ "title": "Share Of Supply",
+ "type": "number"
+ },
+ "wallet": {
+ "title": "Wallet",
+ "type": "string"
+ }
+ },
+ "required": [
+ "wallet",
+ "share_of_supply"
+ ],
+ "title": "CohortWallet",
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 of the cohort's wallets, largest holding first.",
+ "title": "Wallets"
+ }
+ },
+ "required": [
+ "share_of_supply",
+ "source"
+ ],
+ "title": "Cohort",
+ "type": "object"
+ },
+ "sol_complete": {
+ "description": "True when every cohort SOL figure is exact; false names the reason in sol_reason.",
+ "title": "Sol Complete",
+ "type": "boolean"
+ },
+ "sol_reason": {
+ "anyOf": [
+ {
+ "enum": [
+ "tape_truncated",
+ "quote_not_sol",
+ "trades_unbooked",
+ "create_sol_unknown"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Sol Reason"
+ },
+ "top10_share": {
+ "description": "Share of total supply held by the 10 largest wallets in our ledger (the bonding curve and the mayhem agent are not holders).",
+ "title": "Top10 Share",
+ "type": "number"
+ },
+ "top1_share": {
+ "description": "Share of total supply held by the largest wallet in our ledger (the bonding curve and the mayhem agent are not holders).",
+ "title": "Top1 Share",
+ "type": "number"
+ },
+ "unbooked_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The curve's own SOL after the last booked trade minus the net SOL of every booked trade since launch: SOL that moved in trades our tape does not hold; null when it cannot be checked.",
+ "title": "Unbooked Sol"
+ },
+ "union_share": {
+ "description": "Share of supply held by wallets in at least one cohort, each wallet counted once.",
+ "title": "Union Share",
+ "type": "number"
+ },
+ "version": {
+ "const": "cohorts-1",
+ "title": "Version",
+ "type": "string"
+ }
+ },
+ "required": [
+ "version",
+ "top1_share",
+ "top10_share",
+ "union_share",
+ "slot_windows",
+ "sol_complete",
+ "dev",
+ "bundlers",
+ "snipers",
+ "fresh_wallets",
+ "omitted"
+ ],
+ "title": "CohortBlock",
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Who holds the supply now by launch-time role, from our own holder ledger and trade tape: top1_share, top10_share, and the dev, bundlers and snipers cohorts (share_of_supply, n_wallets, SOL in and out of the curve, up to 10 wallets each); fresh_wallets is null and insiders is omitted, each with its reason. shares_complete false = the curve's SOL shows trades missing from our tape, so every share is a lower bound and the SOL figures are null. Definitions at /v1/labels (cohorts). Null when the block could not be built for this answer; the rest of the answer stands."
+ },
+ "concentration": {
+ "properties": {
+ "bundle_share": {
+ "title": "Bundle Share",
+ "type": "number"
+ },
+ "dev_share": {
+ "title": "Dev Share",
+ "type": "number"
+ },
+ "hhi": {
+ "description": "Herfindahl index of the holder balances (sum of squared shares of the held tokens).",
+ "title": "Hhi",
+ "type": "number"
+ },
+ "insider_share": {
+ "description": "dev_share + bundle_share, as the compact check reports it.",
+ "title": "Insider Share",
+ "type": "number"
+ },
+ "listed_share": {
+ "description": "Share of supply held by the rows listed in this answer.",
+ "title": "Listed Share",
+ "type": "number"
+ },
+ "n_bundle_wallets": {
+ "minimum": 0,
+ "title": "N Bundle Wallets",
+ "type": "integer"
+ },
+ "n_holders": {
+ "minimum": 0,
+ "title": "N Holders",
+ "type": "integer"
+ },
+ "top10_share": {
+ "title": "Top10 Share",
+ "type": "number"
+ },
+ "top5_share": {
+ "title": "Top5 Share",
+ "type": "number"
+ }
+ },
+ "required": [
+ "n_holders",
+ "top5_share",
+ "top10_share",
+ "hhi",
+ "dev_share",
+ "bundle_share",
+ "insider_share",
+ "n_bundle_wallets",
+ "listed_share"
+ ],
+ "title": "Concentration",
+ "type": "object"
+ },
+ "count": {
+ "maximum": 100,
+ "minimum": 0,
+ "title": "Count",
+ "type": "integer"
+ },
+ "created_at": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Created At"
+ },
+ "creator": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Creator"
+ },
+ "holders": {
+ "items": {
+ "properties": {
+ "balance_share": {
+ "description": "Tokens held / total supply.",
+ "title": "Balance Share",
+ "type": "number"
+ },
+ "buys": {
+ "minimum": 0,
+ "title": "Buys",
+ "type": "integer"
+ },
+ "cohorts": {
+ "description": "The cohorts of data.cohorts this wallet belongs to (/v1/labels, cohorts).",
+ "items": {
+ "enum": [
+ "dev",
+ "bundlers",
+ "snipers"
+ ],
+ "type": "string"
+ },
+ "title": "Cohorts",
+ "type": "array"
+ },
+ "first_buy_at": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Time of the wallet's first buy on the tape; null when its first tokens came in another wallet's transaction or left the tape.",
+ "title": "First Buy At"
+ },
+ "first_buy_slot": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "First Buy Slot"
+ },
+ "labels": {
+ "items": {
+ "type": "string"
+ },
+ "title": "Labels",
+ "type": "array"
+ },
+ "last_trade_at": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Last Trade At"
+ },
+ "leaderboard_rank": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Leaderboard Rank"
+ },
+ "rank": {
+ "minimum": 1,
+ "title": "Rank",
+ "type": "integer"
+ },
+ "route": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "How the wallet's first tokens moved (/v1/labels holders_flow.route).",
+ "title": "Route"
+ },
+ "sells": {
+ "minimum": 0,
+ "title": "Sells",
+ "type": "integer"
+ },
+ "tokens": {
+ "title": "Tokens",
+ "type": "number"
+ },
+ "wallet": {
+ "title": "Wallet",
+ "type": "string"
+ },
+ "wallet_class": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The first of labels in the order dev, bundle, mayhem_agent, insider, latency_bot, skilled; null when none applies.",
+ "title": "Wallet Class"
+ }
+ },
+ "required": [
+ "rank",
+ "wallet",
+ "balance_share",
+ "tokens",
+ "buys",
+ "sells",
+ "labels"
+ ],
+ "title": "HolderRow",
+ "type": "object"
+ },
+ "maxItems": 100,
+ "title": "Holders",
+ "type": "array"
+ },
+ "leaderboard": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Leaderboard"
+ },
+ "limit": {
+ "title": "Limit",
+ "type": "integer"
+ },
+ "migrated": {
+ "title": "Migrated",
+ "type": "boolean"
+ },
+ "mint": {
+ "title": "Mint",
+ "type": "string"
+ },
+ "n_holders": {
+ "minimum": 0,
+ "title": "N Holders",
+ "type": "integer"
+ },
+ "name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Name"
+ },
+ "note": {
+ "title": "Note",
+ "type": "string"
+ },
+ "supply_tokens": {
+ "title": "Supply Tokens",
+ "type": "number"
+ },
+ "symbol": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Symbol"
+ },
+ "tape": {
+ "properties": {
+ "complete_from_launch": {
+ "title": "Complete From Launch",
+ "type": "boolean"
+ },
+ "dropped_oldest": {
+ "description": "Oldest trades dropped from a busy mint's tape (at most max_rows are kept).",
+ "minimum": 0,
+ "title": "Dropped Oldest",
+ "type": "integer"
+ },
+ "max_rows": {
+ "title": "Max Rows",
+ "type": "integer"
+ },
+ "trades_on_tape": {
+ "minimum": 0,
+ "title": "Trades On Tape",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "trades_on_tape",
+ "dropped_oldest",
+ "max_rows",
+ "complete_from_launch"
+ ],
+ "title": "TapeInfo",
+ "type": "object"
+ },
+ "untracked_wallets": {
+ "minimum": 0,
+ "title": "Untracked Wallets",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "mint",
+ "migrated",
+ "supply_tokens",
+ "count",
+ "limit",
+ "n_holders",
+ "untracked_wallets",
+ "concentration",
+ "holders",
+ "tape",
+ "note"
+ ],
+ "title": "HoldersData",
+ "type": "object"
+ },
+ "generated_at": {
+ "title": "Generated At",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": true,
+ "title": "Meta",
+ "type": "object"
+ },
+ "ok": {
+ "const": true,
+ "title": "Ok",
+ "type": "boolean"
+ },
+ "schema_version": {
+ "const": "2.0",
+ "title": "Schema Version",
+ "type": "string"
+ },
+ "t": {
+ "title": "T",
+ "type": "number"
+ }
+ },
+ "required": [
+ "ok",
+ "schema_version",
+ "generated_at",
+ "t",
+ "coverage",
+ "data",
+ "meta"
+ ],
+ "title": "HoldersEnvelope",
+ "type": "object"
+ },
+ {
+ "description": "isError: the x402 v2 payment requirements. Pay one accepts entry and call again with _meta['x402/payment']. error says why when a payment was sent and rejected; a failed settlement adds x402/payment-response. Nothing is charged.",
+ "properties": {
+ "accepts": {
+ "items": {
+ "properties": {
+ "amount": {
+ "type": "string"
+ },
+ "asset": {
+ "type": "string"
+ },
+ "extra": {
+ "type": "object"
+ },
+ "maxTimeoutSeconds": {
+ "type": "integer"
+ },
+ "network": {
+ "type": "string"
+ },
+ "payTo": {
+ "type": "string"
+ },
+ "scheme": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheme",
+ "network",
+ "amount",
+ "asset",
+ "payTo"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "error": {
+ "type": "string"
+ },
+ "extensions": {
+ "type": "object"
+ },
+ "resource": {
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "type": "object"
+ },
+ "x402/payment-response": {
+ "properties": {
+ "errorReason": {
+ "type": "string"
+ },
+ "network": {
+ "type": "string"
+ },
+ "success": {
+ "type": "boolean"
+ },
+ "transaction": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "success"
+ ],
+ "type": "object"
+ },
+ "x402Version": {
+ "const": 2
+ }
+ },
+ "required": [
+ "x402Version",
+ "resource",
+ "accepts"
+ ],
+ "title": "PaymentRequired",
+ "type": "object"
+ },
+ {
+ "description": "isError: a refusal answered without charging (invalid or uncovered arguments, stale feed, nothing new since the cursor, a payment that cannot be matched to this request). error is a stable code; live_examples name mints covered now.",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "avoid_skipped": {
+ "type": "integer"
+ },
+ "case_mangled_mints": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "charged": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "curve": {
+ "type": "string"
+ },
+ "error": {
+ "type": "string"
+ },
+ "feed_lag_s": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "free_check": {
+ "type": "string"
+ },
+ "got": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "hint": {
+ "type": "string"
+ },
+ "invalid": {
+ "type": "object"
+ },
+ "live_examples": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "max_feed_lag_s": {
+ "type": "number"
+ },
+ "max_mints": {
+ "type": "integer"
+ },
+ "max_table_lag_s": {
+ "type": "number"
+ },
+ "message": {
+ "type": "string"
+ },
+ "mint": {
+ "type": "string"
+ },
+ "missing": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "newest_cursor": {
+ "type": "string"
+ },
+ "ok": {
+ "const": false
+ },
+ "payment_status": {
+ "type": "string"
+ },
+ "scanned": {
+ "type": "integer"
+ },
+ "schema": {
+ "type": "object"
+ },
+ "since": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "table_lag_s": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "tool": {
+ "type": "string"
+ },
+ "unavailable_mints": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "unverified_event": {
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "window_s": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "ok",
+ "error"
+ ],
+ "title": "Refusal",
+ "type": "object"
+ }
+]