loopholetape-com · Schema

VerdictEnvelope

CompanyCryptoSolanaRiskAPI

Properties

Name Type Description
ok boolean
schema_version string
generated_at string
t number
coverage string
data object
meta object
View JSON Schema on GitHub

JSON Schema

loopholetape-com-verdict-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/loopholetape-com/json-schema/loopholetape-com-verdict-schema.json",
  "title": "VerdictEnvelope",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/loopholetape-com-openapi.json#/components/schemas/Verdict",
  "properties": {
    "ok": {
      "const": true,
      "title": "Ok",
      "type": "boolean"
    },
    "schema_version": {
      "const": "2.0",
      "title": "Schema Version",
      "type": "string"
    },
    "generated_at": {
      "title": "Generated At",
      "type": "string"
    },
    "t": {
      "title": "T",
      "type": "number"
    },
    "coverage": {
      "const": "full",
      "title": "Coverage",
      "type": "string"
    },
    "data": {
      "properties": {
        "mint": {
          "title": "Mint",
          "type": "string"
        },
        "verdict": {
          "enum": [
            "avoid",
            "caution",
            "no_flags_observed"
          ],
          "title": "Verdict",
          "type": "string"
        },
        "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"
        },
        "reason": {
          "title": "Reason",
          "type": "string"
        },
        "probabilities": {
          "anyOf": [
            {
              "properties": {
                "model": {
                  "title": "Model",
                  "type": "string"
                },
                "calibration": {
                  "title": "Calibration",
                  "type": "string"
                },
                "horizon_s": {
                  "title": "Horizon S",
                  "type": "integer"
                },
                "rug_within_300s": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rug Within 300S"
                },
                "true_graduation": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "True Graduation"
                },
                "rug_within_300s_reason": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rug Within 300S Reason"
                },
                "true_graduation_reason": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "True Graduation Reason"
                },
                "reason": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Reason"
                },
                "rug_within_300s_basis": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rug Within 300S Basis"
                },
                "base_rate_same_age": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Base Rate Same Age"
                },
                "recalibration": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Recalibration"
                },
                "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"
                }
              },
              "required": [
                "model",
                "calibration",
                "horizon_s"
              ],
              "title": "Probabilities",
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "The calibrated numbers exactly as the compact check publishes them."
        },
        "quote": {
          "anyOf": [
            {
              "properties": {
                "asset": {
                  "description": "The curve's quote asset: sol, usdc, pyusd, stock (an xStocks tokenized equity), other, or unknown (not read from the curve account; is_sol says what our tape shows).",
                  "enum": [
                    "sol",
                    "usdc",
                    "pyusd",
                    "stock",
                    "other",
                    "unknown"
                  ],
                  "title": "Asset",
                  "type": "string"
                },
                "mint": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "The quote_mint the bonding-curve account holds (the all-zero default 11111111111111111111111111111111 on SOL curves); null when not read.",
                  "title": "Mint"
                },
                "modelled": {
                  "description": "True only for a curve shown to be SOL-quoted: our flags, labels, verdict and odds are measured in SOL. False = those are withheld (reason quote_not_modelled).",
                  "title": "Modelled",
                  "type": "boolean"
                },
                "is_sol": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "true = SOL-quoted, false = quoted in another asset, null = not established yet.",
                  "title": "Is Sol"
                },
                "holder_rewards": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "The curve's is_holder_reward flag (pump.fun Holder Rewards: the creator fee goes to holders); null when the account was not read.",
                  "title": "Holder Rewards"
                },
                "basis": {
                  "description": "curve_account = read from the bonding-curve account over RPC; curve_stream = the same account fields as our capture streams them; tape = our capture's evidence; none = no evidence yet.",
                  "enum": [
                    "curve_account",
                    "curve_stream",
                    "tape",
                    "none"
                  ],
                  "title": "Basis",
                  "type": "string"
                },
                "evidence": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "The tape evidence behind is_sol (/v1/labels quote.evidence).",
                  "title": "Evidence"
                },
                "reason": {
                  "anyOf": [
                    {
                      "const": "quote_not_modelled",
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "Set when modelled is false.",
                  "title": "Reason"
                }
              },
              "required": [
                "asset",
                "modelled",
                "basis"
              ],
              "title": "Quote",
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The curve's quote asset (/v1/labels quote); a verdict is sold only for a SOL-quoted curve, any other is refused unpaid (quote_not_modelled)."
        },
        "odds_caveat": {
          "title": "Odds Caveat",
          "type": "string"
        },
        "reasons": {
          "description": "Up to three observed flags, earliest first.",
          "items": {
            "properties": {
              "code": {
                "title": "Code",
                "type": "string"
              },
              "text": {
                "title": "Text",
                "type": "string"
              },
              "first_seen_at": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "First Seen At"
              },
              "first_seen_after_launch_s": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "First Seen After Launch S"
              },
              "evidence": {
                "additionalProperties": true,
                "title": "Evidence",
                "type": "object"
              }
            },
            "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"
        },
        "cohorts": {
          "anyOf": [
            {
              "properties": {
                "version": {
                  "const": "cohorts-1",
                  "title": "Version",
                  "type": "string"
                },
                "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"
                },
                "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"
                },
                "union_share": {
                  "description": "Share of supply held by wallets in at least one cohort, each wallet counted once.",
                  "title": "Union Share",
                  "type": "number"
                },
                "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; the upper end is basis.sniper_max_offset.",
                      "items": {
                        "type": "integer"
                      },
                      "maxItems": 2,
                      "minItems": 2,
                      "title": "Snipers",
                      "type": "array"
                    }
                  },
                  "required": [
                    "bundlers",
                    "snipers"
                  ],
                  "title": "SlotWindows",
                  "type": "object"
                },
                "basis": {
                  "anyOf": [
                    {
                      "properties": {
                        "slot_ms": {
                          "description": "The protocol's target slot duration in the slot regime of the mint's create slot (/v1/labels cohorts.slot_regime).",
                          "title": "Slot Ms",
                          "type": "integer"
                        },
                        "slot_ms_measured": {
                          "description": "That regime's measured mean slot duration, from mainnet block times.",
                          "title": "Slot Ms Measured",
                          "type": "number"
                        },
                        "regime_from_slot": {
                          "description": "First slot of that regime.",
                          "title": "Regime From Slot",
                          "type": "integer"
                        },
                        "regime_from": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Block time of that slot (null for the first regime).",
                          "title": "Regime From"
                        },
                        "regime_by": {
                          "description": "What the regime was read from.",
                          "enum": [
                            "create_slot",
                            "launch_time",
                            "current"
                          ],
                          "title": "Regime By",
                          "type": "string"
                        },
                        "bundle_max_offset": {
                          "description": "N: bundlers are offsets 0-N.",
                          "title": "Bundle Max Offset",
                          "type": "integer"
                        },
                        "sniper_window_s": {
                          "description": "The sniper time window.",
                          "title": "Sniper Window S",
                          "type": "number"
                        },
                        "sniper_max_offset": {
                          "description": "K = round(sniper_window_s / slot_ms): snipers are offsets N+1..K.",
                          "title": "Sniper Max Offset",
                          "type": "integer"
                        },
                        "sniper_window_measured_s": {
                          "description": "When slot K starts after the create slot at the measured slot duration.",
                          "title": "Sniper Window Measured S",
                          "type": "number"
                        }
                      },
                      "required": [
                        "slot_ms",
                        "slot_ms_measured",
                        "regime_from_slot",
                        "regime_by",
                        "bundle_max_offset",
                        "sniper_window_s",
                        "sniper_max_offset",
                        "sniper_window_measured_s"
                      ],
                      "title": "CohortBasis",
                      "type": "object"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "description": "The slot regime the windows come from and the numbers derived from it (/v1/labels cohorts.basis)."
                },
                "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"
                },
                "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"
                },
                "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"
                },
                "dev": {
                  "properties": {
                    "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"
                    },
                    "n_wallets": {
                      "anyOf": [
                        {
                          "minimum": 0,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Wallets in the cohort, sold-out ones included.",
                      "title": "N Wallets"
                    },
                    "n_holding": {
                      "anyOf": [
                        {
                          "minimum": 0,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Wallets of the cohort still holding tokens.",
                      "title": "N Holding"
                    },
                    "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"
                    },
                    "sell_sol": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "SOL that left the curve on the cohort's sells.",
                      "title": "Sell Sol"
                    },
                    "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"
                    },
                    "wallets": {
                      "anyOf": [
                        {
                          "items": {
                            "properties": {
                              "wallet": {
                                "title": "Wallet",
                                "type": "string"
                              },
                              "share_of_supply": {
                                "description": "Tokens this wallet holds now / total supply.",
                                "title": "Share Of Supply",
                                "type": "number"
                              },
                              "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"
                              },
                              "history": {
                                "anyOf": [
                                  {
                                    "description": "One wallet's history on OTHER pump.fun mints in our tape since the seam (the mint answered is never counted).",
                                    "properties": {
                                      "mints": {
                                        "description": "Other pump.fun mints this wallet bought in our tape since 2026-09-27T00:18:34Z (the mint answered is never counted).",
                                        "minimum": 0,
                                        "title": "Mints",
                                        "type": "integer"
                                      },
                                      "bundled": {
                                        "description": "Of those, mints where its first tokens arrived in the create slot or the next one (the bundlers rule of the cohort block).",
                                        "minimum": 0,
                                        "title": "Bundled",
                                        "type": "integer"
                                      },
                                      "quick_sells": {
                                        "description": "Of those, mints it sold within 60 s of its first buy.",
                                        "minimum": 0,
                                        "title": "Quick Sells",
                                        "type": "integer"
                                      },
                                      "settled": {
                                        "description": "Of those, mints whose outcome labels have settled (/v1/labels, outcome).",
                                        "minimum": 0,
                                        "title": "Settled",
                                        "type": "integer"
                                      },
                                      "rugged": {
                                        "description": "Of the settled ones, mints labelled rugged_within_300s by the public rule.",
                                        "minimum": 0,
                                        "title": "Rugged",
                                        "type": "integer"
                                      },
                                      "graduated": {
                                        "description": "Of the settled ones, mints that truly graduated.",
                                        "minimum": 0,
                                        "title": "Graduated",
                                        "type": "integer"
                                      }
                                    },
                                    "required": [
                                      "mints",
                                      "bundled",
                                      "quick_sells",
                                      "settled",
                                      "rugged",
                                      "graduated"
                                    ],
                                    "title": "WalletHistory",
                                    "type": "object"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "default": null,
                                "description": "This wallet's history on other pump.fun mints in our tape (mints, bundled, quick_sells, settled, rugged, graduated); null when the reputation is not ready (/v1/labels, reputation)."
                              }
                            },
                            "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"
                    },
                    "source": {
                      "enum": [
                        "tape",
                        "tape+funding_capture",
                        "unavailable"
                      ],
                      "title": "Source",
                      "type": "string"
                    },
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Why the cohort's figures are null.",
                      "title": "Reason"
                    },
                    "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"
                    }
                  },
                  "required": [
                    "share_of_supply",
                    "source",
                    "n_funded_by_creator"
                  ],
                  "title": "DevCohort",
                  "type": "object"
                },
                "bundlers": {
                  "properties": {
                    "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"
                    },
                    "n_wallets": {
                      "anyOf": [
                        {
                          "minimum": 0,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Wallets in the cohort, sold-out ones included.",
                      "title": "N Wallets"
                    },
                    "n_holding": {
                      "anyOf": [
                        {
                          "minimum": 0,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Wallets of the cohort still holding tokens.",
                      "title": "N Holding"
                    },
                    "buy_sol": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                        

# --- truncated at 32 KB (83 KB total) ---
# Full source: https://artifacts.apis.io/loopholetape-com/json-schema/loopholetape-com-verdict-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/loopholetape-com-verdict"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.