{
  "schemaVersion": "2.0.0",
  "platformId": "programmable",
  "name": "Programmable Developer Platform",
  "description": "Canonical discovery for Programmable Classic and approved Programmable Custom launches.",
  "apiVersion": "2",
  "apiBaseUrl": "https://developers.programmable.family/api/v2",
  "statusUrl": "https://developers.programmable.family/api/v2/status",
  "manifestUrl": "https://developers.programmable.family/api/v2/manifest",
  "launchesUrl": "https://developers.programmable.family/api/v2/launches",
  "tokenListUrl": "https://developers.programmable.family/api/v2/token-list",
  "openApiUrl": "https://developers.programmable.family/openapi/programmable-v2.yaml",
  "schemasBaseUrl": "https://developers.programmable.family/schemas/v2/",
  "documentationUrl": "https://developers.programmable.family/",
  "sourceUrl": "https://github.com/0xprogrammable/developers",
  "chains": [
    {
      "chainId": 1,
      "caip2": "eip155:1",
      "name": "Ethereum Mainnet",
      "explorerUrl": "https://etherscan.io",
      "status": "live"
    }
  ],
  "publicCategories": {
    "classic": {
      "discoveryStatus": "live"
    },
    "custom": {
      "discoveryStatus": "live",
      "publicSubmissionStatus": "prelaunch",
      "registryAddress": "0x17e18c88bda9bfb73924cdc989c07b0707e72671",
      "registryStartBlock": "25701139",
      "registryGeneration": "1",
      "note": "Finalized approved Custom Registry launches are discoverable. General public submissions remain prelaunch."
    }
  },
  "compatibility": {
    "majorVersion": 2,
    "additiveChangesOnly": true,
    "unknownFields": "ignore",
    "unknownCapabilities": "preserve",
    "unknownMarketKinds": "display-as-unsupported",
    "deploymentAddresses": "resolve-from-manifest"
  },
  "extensions": {
    "programmable.legacy-v1": {
      "status": "supported",
      "apiBaseUrl": "https://developers.programmable.family/api/v1",
      "migrationGuideUrl": "https://github.com/0xprogrammable/developers/blob/main/docs/migrations/v1-to-v2.md"
    }
  }
}
