changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "coverage": {
- "const": "full",
- "title": "Coverage",
- "type": "string"
- },
- "data": {
- "properties": {
- "age_s": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "title": "Age S"
- },
- "basis": {
- "description": "Rule ids that fired; empty for no_flags_observed. The rule is published at /v1/labels.",
- "items": {
- "type": "string"
- },
- "title": "Basis",
- "type": "array"
- },
- "coverage": {
- "const": "full",
- "title": "Coverage",
- "type": "string"
- },
- "disclaimer": {
- "title": "Disclaimer",
- "type": "string"
- },
- "fresh_verdict_url": {
- "title": "Fresh Verdict Url",
- "type": "string"
- },
- "generated_at": {
- "title": "Generated At",
- "type": "string"
- },
- "lifecycle": {
- "title": "Lifecycle",
- "type": "string"
- },
- "links": {
- "anyOf": [
- {
- "properties": {
- "axiom": {
- "title": "Axiom",
- "type": "string"
- },
- "dexscreener": {
- "title": "Dexscreener",
- "type": "string"
- },
- "gmgn": {
- "title": "Gmgn",
- "type": "string"
- },
- "jupiter": {
- "title": "Jupiter",
- "type": "string"
- },
- "note": {
- "title": "Note",
- "type": "string"
- },
- "photon": {
- "title": "Photon",
- "type": "string"
- },
- "pumpfun": {
- "title": "Pumpfun",
- "type": "string"
- }
- },
- "required": [
- "pumpfun",
- "dexscreener",
- "jupiter",
- "gmgn",
- "axiom",
- "photon",
- "note"
- ],
- "title": "TradeLinks",
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Open this mint on pump.fun, DexScreener, Jupiter, GMGN, Axiom or Photon through a free redirect; no referral code, no fee."
- },
- "mint": {
- "title": "Mint",
- "type": "string"
- },
- "odds_caveat": {
- "title": "Odds Caveat",
- "type": "string"
- },
- "probabilities": {
- "anyOf": [
- {
- "properties": {
- "base_rate_same_age": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Base Rate Same Age"
- },
- "calibration": {
- "title": "Calibration",
- "type": "string"
- },
- "diagnostics": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Diagnostics"
- },
- "features_used": {
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Features Used"
- },
- "horizon_s": {
- "title": "Horizon S",
- "type": "integer"
- },
- "model": {
- "title": "Model",
- "type": "string"
- },
- "reason": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Reason"
- },
- "recalibration": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Recalibration"
- },
- "rug_within_300s": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Rug Within 300S"
- },
- "rug_within_300s_basis": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Rug Within 300S Basis"
- },
- "rug_within_300s_reason": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Rug Within 300S Reason"
- },
- "true_graduation": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "True Graduation"
- },
- "true_graduation_reason": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "True Graduation Reason"
- }
- },
- "required": [
- "model",
- "calibration",
- "horizon_s"
- ],
- "title": "Probabilities",
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "The calibrated numbers exactly as the compact check publishes them."
- },
- "reason": {
- "title": "Reason",
- "type": "string"
- },
- "reasons": {
- "description": "Up to three observed flags, earliest first.",
- "items": {
- "properties": {
- "code": {
- "title": "Code",
- "type": "string"
- },
- "evidence": {
- "additionalProperties": true,
- "title": "Evidence",
- "type": "object"
- },
- "first_seen_after_launch_s": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "title": "First Seen After Launch S"
- },
- "first_seen_at": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "title": "First Seen At"
- },
- "text": {
- "title": "Text",
- "type": "string"
- }
- },
- "required": [
- "code",
- "text",
- "first_seen_at",
- "first_seen_after_launch_s",
- "evidence"
- ],
- "title": "VerdictReason",
- "type": "object"
- },
- "maxItems": 3,
- "title": "Reasons",
- "type": "array"
- },
- "reasons_total": {
- "minimum": 0,
- "title": "Reasons Total",
- "type": "integer"
- },
- "result_id": {
- "title": "Result Id",
- "type": "string"
- },
- "risk_label": {
- "title": "Risk Label",
- "type": "string"
- },
- "rule": {
- "title": "Rule",
- "type": "string"
- },
- "share_url": {
- "description": "Free card page signed at purchase time; renders this verdict without recomputing or paying.",
- "title": "Share Url",
- "type": "string"
- },
- "t": {
- "title": "T",
- "type": "number"
- },
- "verdict": {
- "enum": [
- "avoid",
- "caution",
- "no_flags_observed"
- ],
- "title": "Verdict",
- "type": "string"
- }
- },
- "required": [
- "mint",
- "verdict",
- "basis",
- "reason",
- "probabilities",
- "odds_caveat",
- "reasons",
- "reasons_total",
- "lifecycle",
- "risk_label",
- "coverage",
- "age_s",
- "generated_at",
- "t",
- "result_id",
- "share_url",
- "fresh_verdict_url",
- "rule",
- "disclaimer"
- ],
- "title": "VerdictData",
- "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": "VerdictEnvelope",
- "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"
+ }
+ ],
+ "title": "Age S"
+ },
+ "authorities": {
+ "anyOf": [
+ {
+ "properties": {
+ "freeze_authority": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "true = set (accounts can be frozen), false = none, null = not read.",
+ "title": "Freeze Authority"
+ },
+ "metadata_mutable": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "true = name, symbol or image can still change, false = immutable, null = not read.",
+ "title": "Metadata Mutable"
+ },
+ "mint_authority": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "true = set (more can be minted), false = none, null = not read.",
+ "title": "Mint Authority"
+ },
+ "source": {
+ "anyOf": [
+ {
+ "enum": [
+ "onchain",
+ "pumpfun_rule"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "pumpfun_rule: pump.fun's program leaves no mint or freeze authority and immutable metadata.",
+ "title": "Source"
+ }
+ },
+ "title": "Authorities",
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Mint, freeze and metadata authorities (/v1/labels authorities)."
+ },
+ "basis": {
+ "description": "Rule ids that fired; empty for no_flags_observed. The rule is published at /v1/labels.",
+ "items": {
+ "type": "string"
+ },
+ "title": "Basis",
+ "type": "array"
+ },
+ "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": "Context for the reasons, not part of the rule: who holds the supply now by launch-time role (dev, bundlers, snipers, top-1 and top-10 share), as the holders answer reports it; definitions at /v1/labels (cohorts). Null when it could not be built; the verdict stands."
+ },
+ "coverage": {
+ "const": "full",
+ "title": "Coverage",
+ "type": "string"
+ },
+ "disclaimer": {
+ "title": "Disclaimer",
+ "type": "string"
+ },
+ "fresh_verdict_url": {
+ "title": "Fresh Verdict Url",
+ "type": "string"
+ },
+ "generated_at": {
+ "title": "Generated At",
+ "type": "string"
+ },
+ "lifecycle": {
+ "title": "Lifecycle",
+ "type": "string"
+ },
+ "links": {
+ "anyOf": [
+ {
+ "properties": {
+ "axiom": {
+ "title": "Axiom",
+ "type": "string"
+ },
+ "dexscreener": {
+ "title": "Dexscreener",
+ "type": "string"
+ },
+ "gmgn": {
+ "title": "Gmgn",
+ "type": "string"
+ },
+ "jupiter": {
+ "title": "Jupiter",
+ "type": "string"
+ },
+ "note": {
+ "title": "Note",
+ "type": "string"
+ },
+ "photon": {
+ "title": "Photon",
+ "type": "string"
+ },
+ "pumpfun": {
+ "title": "Pumpfun",
+ "type": "string"
+ }
+ },
+ "required": [
+ "pumpfun",
+ "dexscreener",
+ "jupiter",
+ "gmgn",
+ "axiom",
+ "photon",
+ "note"
+ ],
+ "title": "TradeLinks",
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Open this mint on pump.fun, DexScreener, Jupiter, GMGN, Axiom or Photon through a free redirect; no referral code, no fee."
+ },
+ "market": {
+ "anyOf": [
+ {
+ "properties": {
+ "as_of": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Unix seconds of that sol_usd read.",
+ "title": "As Of"
+ },
+ "curve_liquidity_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Real SOL held by the bonding curve.",
+ "title": "Curve Liquidity Sol"
+ },
+ "curve_liquidity_usd": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Curve Liquidity Usd"
+ },
+ "market_cap_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Market Cap Sol"
+ },
+ "market_cap_usd": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "price_usd x total supply (1B tokens, 2B on a mayhem launch): the pump.fun and DexScreener convention, equal to FDV.",
+ "title": "Market Cap Usd"
+ },
+ "price_sol": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "SOL per whole token at the bonding curve's marginal price.",
+ "title": "Price Sol"
+ },
+ "price_usd": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Price Usd"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why fields are null; codes at /v1/labels market.reason.",
+ "title": "Reason"
+ },
+ "sol_usd": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The Coinbase SOL-USD spot the USD fields use.",
+ "title": "Sol Usd"
+ }
+ },
+ "title": "Market",
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "USD price, market cap and curve liquidity (/v1/labels market)."
+ },
+ "mint": {
+ "title": "Mint",
+ "type": "string"
+ },
+ "odds_caveat": {
+ "title": "Odds Caveat",
+ "type": "string"
+ },
+ "probabilities": {
+ "anyOf": [
+ {
+ "properties": {
+ "base_rate_same_age": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Base Rate Same Age"
+ },
+ "calibration": {
+ "title": "Calibration",
+ "type": "string"
+ },
+ "diagnostics": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Diagnostics"
+ },
+ "features_used": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Features Used"
+ },
+ "horizon_s": {
+ "title": "Horizon S",
+ "type": "integer"
+ },
+ "model": {
+ "title": "Model",
+ "type": "string"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Reason"
+ },
+ "recalibration": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Recalibration"
+ },
+ "rug_within_300s": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Rug Within 300S"
+ },
+ "rug_within_300s_basis": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Rug Within 300S Basis"
+ },
+ "rug_within_300s_reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Rug Within 300S Reason"
+ },
+ "true_graduation": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "True Graduation"
+ },
+ "true_graduation_reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "True Graduation Reason"
+ }
+ },
+ "required": [
+ "model",
+ "calibration",
+ "horizon_s"
+ ],
+ "title": "Probabilities",
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The calibrated numbers exactly as the compact check publishes them."
+ },
+ "reason": {
+ "title": "Reason",
+ "type": "string"
+ },
+ "reasons": {
+ "description": "Up to three observed flags, earliest first.",
+ "items": {
+ "properties": {
+ "code": {
+ "title": "Code",
+ "type": "string"
+ },
+ "evidence": {
+ "additionalProperties": true,
+ "title": "Evidence",
+ "type": "object"
+ },
+ "first_seen_after_launch_s": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "First Seen After Launch S"
+ },
+ "first_seen_at": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "title": "First Seen At"
+ },
+ "text": {
+ "title": "Text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "text",
+ "first_seen_at",
+ "first_seen_after_launch_s",
+ "evidence"
+ ],
+ "title": "VerdictReason",
+ "type": "object"
+ },
+ "maxItems": 3,
+ "title": "Reasons",
+ "type": "array"
+ },
+ "reasons_total": {
+ "minimum": 0,
+ "title": "Reasons Total",
+ "type": "integer"
+ },
+ "result_id": {
+ "title": "Result Id",
+ "type": "string"
+ },
+ "risk_label": {
+ "title": "Risk Label",
+ "type": "string"
+ },
+ "rule": {
+ "title": "Rule",
+ "type": "string"
+ },
+ "share_url": {
+ "description": "Free card page signed at purchase time; renders this verdict without recomputing or paying.",
+ "title": "Share Url",
+ "type": "string"
+ },
+ "t": {
+ "title": "T",
+ "type": "number"
+ },
+ "verdict": {
+ "enum": [
+ "avoid",
+ "caution",
+ "no_flags_observed"
+ ],
+ "title": "Verdict",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mint",
+ "verdict",
+ "basis",
+ "reason",
+ "probabilities",
+ "odds_caveat",
+ "reasons",
+ "reasons_total",
+ "lifecycle",
+ "risk_label",
+ "coverage",
+ "age_s",
+ "generated_at",
+ "t",
+ "result_id",
+ "share_url",
+ "fresh_verdict_url",
+ "rule",
+ "disclaimer"
+ ],
+ "title": "VerdictData",
+ "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": "VerdictEnvelope",
+ "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"
+ }
+]