{
  "$schema": "https://pointcast.xyz/live-feed-nfts.schema.json",
  "name": "PointCast Live Feed NFTs",
  "description": "Mint-ready preview surface for dynamic PointCast NFTs driven by weather, sea state, competition, and multi-feed snapshots.",
  "generatedAt": "2026-05-16T17:11:47.570Z",
  "canonical": "https://pointcast.xyz/live-feed-nfts",
  "boardSource": {
    "title": "Whimsical To Do List",
    "itemsRead": [
      "LIVE FEED NFTs",
      "Dynamic Competition",
      "Dynamic Backgrounds",
      "Sports/Sea/Weather Data",
      "Single and Multi Data NFTs"
    ]
  },
  "currentStatus": {
    "previewSurface": "built",
    "liveAdapters": [
      "weather",
      "sea",
      "wire-competition"
    ],
    "sportsAdapter": "slot-ready",
    "contract": "pending",
    "signingPolicy": "user signs only; no agent-originated Tezos transactions"
  },
  "rules": [
    {
      "label": "On-chain boundary",
      "value": "Preview and metadata only until Mike signs a Tezos origination or mint transaction."
    },
    {
      "label": "Storage rule",
      "value": "Live feed values are captured into metadata at mint time; the token should not depend on mutable upstream APIs."
    },
    {
      "label": "Single-data NFT",
      "value": "One feed snapshot drives the whole card: weather, sea, or competition."
    },
    {
      "label": "Multi-data NFT",
      "value": "A normalized packet combines feed snapshots and stores the composite checksum."
    }
  ],
  "lanes": [
    {
      "id": "weather",
      "title": "Weather Signal Card",
      "shortLabel": "Weather",
      "status": "live-preview",
      "source": "/api/weather + Open-Meteo",
      "cadence": "10 minute cache",
      "tokenMode": "single-data",
      "accent": "#1b6fa8",
      "background": "marine layer blue, sun edge, city quiet",
      "imageUrl": "/images/morning-ocean/tokens/02-silver-sail.png",
      "fields": [
        "temperature",
        "condition",
        "sunset",
        "updatedAt"
      ],
      "nftHook": "A city-state weather snapshot becomes the collectible trait set.",
      "canonicalUrl": "https://pointcast.xyz/live-feed-nfts#weather",
      "metadataTemplate": {
        "name": "PointCast Live Feed NFT - Weather",
        "symbol": "PCLIVE",
        "decimals": 0,
        "description": "Weather Signal Card. A city-state weather snapshot becomes the collectible trait set. Built as a mint-ready PointCast preview; final on-chain issuance requires a user-signed Tezos transaction.",
        "displayUri": "https://pointcast.xyz/images/morning-ocean/tokens/02-silver-sail.png",
        "artifactUri": "https://pointcast.xyz/images/morning-ocean/tokens/02-silver-sail.png",
        "externalUri": "https://pointcast.xyz/live-feed-nfts#weather",
        "rights": "Creative Commons CC0 1.0 Universal for PointCast-authored metadata and preview composition.",
        "tags": [
          "pointcast",
          "live-feed",
          "nft",
          "tezos",
          "weather",
          "single-data"
        ],
        "attributes": [
          {
            "name": "Feed Lane",
            "value": "Weather"
          },
          {
            "name": "Status",
            "value": "live-preview"
          },
          {
            "name": "Source",
            "value": "/api/weather + Open-Meteo"
          },
          {
            "name": "Cadence",
            "value": "10 minute cache"
          },
          {
            "name": "Token Mode",
            "value": "single-data"
          },
          {
            "name": "Background",
            "value": "marine layer blue, sun edge, city quiet"
          }
        ],
        "feedFields": [
          "temperature",
          "condition",
          "sunset",
          "updatedAt"
        ],
        "previewOnly": true
      }
    },
    {
      "id": "sea",
      "title": "Sea State Card",
      "shortLabel": "Sea",
      "status": "live-preview",
      "source": "Open-Meteo Marine",
      "cadence": "hourly marine model",
      "tokenMode": "single-data",
      "accent": "#317f73",
      "background": "harbor green, swell lines, fogged horizon",
      "imageUrl": "/images/morning-ocean/tokens/24-mist-freighter.png",
      "fields": [
        "waveHeight",
        "swellHeight",
        "wavePeriod",
        "waveDirection"
      ],
      "nftHook": "Wave conditions drive the background bands and rarity copy.",
      "canonicalUrl": "https://pointcast.xyz/live-feed-nfts#sea",
      "metadataTemplate": {
        "name": "PointCast Live Feed NFT - Sea",
        "symbol": "PCLIVE",
        "decimals": 0,
        "description": "Sea State Card. Wave conditions drive the background bands and rarity copy. Built as a mint-ready PointCast preview; final on-chain issuance requires a user-signed Tezos transaction.",
        "displayUri": "https://pointcast.xyz/images/morning-ocean/tokens/24-mist-freighter.png",
        "artifactUri": "https://pointcast.xyz/images/morning-ocean/tokens/24-mist-freighter.png",
        "externalUri": "https://pointcast.xyz/live-feed-nfts#sea",
        "rights": "Creative Commons CC0 1.0 Universal for PointCast-authored metadata and preview composition.",
        "tags": [
          "pointcast",
          "live-feed",
          "nft",
          "tezos",
          "sea",
          "single-data"
        ],
        "attributes": [
          {
            "name": "Feed Lane",
            "value": "Sea"
          },
          {
            "name": "Status",
            "value": "live-preview"
          },
          {
            "name": "Source",
            "value": "Open-Meteo Marine"
          },
          {
            "name": "Cadence",
            "value": "hourly marine model"
          },
          {
            "name": "Token Mode",
            "value": "single-data"
          },
          {
            "name": "Background",
            "value": "harbor green, swell lines, fogged horizon"
          }
        ],
        "feedFields": [
          "waveHeight",
          "swellHeight",
          "wavePeriod",
          "waveDirection"
        ],
        "previewOnly": true
      }
    },
    {
      "id": "competition",
      "title": "Dynamic Competition Card",
      "shortLabel": "Competition",
      "status": "adapter-ready",
      "source": "PointCast wire events now; sports adapter next",
      "cadence": "15 second wire cache",
      "tokenMode": "single-data",
      "accent": "#a34535",
      "background": "scoreboard red, bracket marks, broadcast paper",
      "imageUrl": "/images/agent-derby/trapper-keeper-posters.png",
      "fields": [
        "leader",
        "challenger",
        "spread",
        "eventCount"
      ],
      "nftHook": "The strongest feed becomes the leader; challenger pressure sets the edition mood.",
      "canonicalUrl": "https://pointcast.xyz/live-feed-nfts#competition",
      "metadataTemplate": {
        "name": "PointCast Live Feed NFT - Competition",
        "symbol": "PCLIVE",
        "decimals": 0,
        "description": "Dynamic Competition Card. The strongest feed becomes the leader; challenger pressure sets the edition mood. Built as a mint-ready PointCast preview; final on-chain issuance requires a user-signed Tezos transaction.",
        "displayUri": "https://pointcast.xyz/images/agent-derby/trapper-keeper-posters.png",
        "artifactUri": "https://pointcast.xyz/images/agent-derby/trapper-keeper-posters.png",
        "externalUri": "https://pointcast.xyz/live-feed-nfts#competition",
        "rights": "Creative Commons CC0 1.0 Universal for PointCast-authored metadata and preview composition.",
        "tags": [
          "pointcast",
          "live-feed",
          "nft",
          "tezos",
          "competition",
          "single-data"
        ],
        "attributes": [
          {
            "name": "Feed Lane",
            "value": "Competition"
          },
          {
            "name": "Status",
            "value": "adapter-ready"
          },
          {
            "name": "Source",
            "value": "PointCast wire events now; sports adapter next"
          },
          {
            "name": "Cadence",
            "value": "15 second wire cache"
          },
          {
            "name": "Token Mode",
            "value": "single-data"
          },
          {
            "name": "Background",
            "value": "scoreboard red, bracket marks, broadcast paper"
          }
        ],
        "feedFields": [
          "leader",
          "challenger",
          "spread",
          "eventCount"
        ],
        "previewOnly": true
      }
    },
    {
      "id": "multi",
      "title": "Multi-Data Composite",
      "shortLabel": "Multi",
      "status": "contract-pending",
      "source": "Weather + Sea + Wire + Sports slot",
      "cadence": "mixed live feeds",
      "tokenMode": "multi-data",
      "accent": "#7b5a9e",
      "background": "layered atlas, tide glass, competition overlay",
      "imageUrl": "/images/morning-ocean/series-contact-sheet.png",
      "fields": [
        "weather",
        "marine",
        "competition",
        "editionHash"
      ],
      "nftHook": "One token receives a normalized packet from multiple feeds.",
      "canonicalUrl": "https://pointcast.xyz/live-feed-nfts#multi",
      "metadataTemplate": {
        "name": "PointCast Live Feed NFT - Multi",
        "symbol": "PCLIVE",
        "decimals": 0,
        "description": "Multi-Data Composite. One token receives a normalized packet from multiple feeds. Built as a mint-ready PointCast preview; final on-chain issuance requires a user-signed Tezos transaction.",
        "displayUri": "https://pointcast.xyz/images/morning-ocean/series-contact-sheet.png",
        "artifactUri": "https://pointcast.xyz/images/morning-ocean/series-contact-sheet.png",
        "externalUri": "https://pointcast.xyz/live-feed-nfts#multi",
        "rights": "Creative Commons CC0 1.0 Universal for PointCast-authored metadata and preview composition.",
        "tags": [
          "pointcast",
          "live-feed",
          "nft",
          "tezos",
          "multi",
          "multi-data"
        ],
        "attributes": [
          {
            "name": "Feed Lane",
            "value": "Multi"
          },
          {
            "name": "Status",
            "value": "contract-pending"
          },
          {
            "name": "Source",
            "value": "Weather + Sea + Wire + Sports slot"
          },
          {
            "name": "Cadence",
            "value": "mixed live feeds"
          },
          {
            "name": "Token Mode",
            "value": "multi-data"
          },
          {
            "name": "Background",
            "value": "layered atlas, tide glass, competition overlay"
          }
        ],
        "feedFields": [
          "weather",
          "marine",
          "competition",
          "editionHash"
        ],
        "previewOnly": false
      }
    }
  ],
  "runtimeSources": {
    "weather": "https://pointcast.xyz/api/weather?lat=33.9192&lng=-118.4165&label=El%20Segundo",
    "sea": "https://marine-api.open-meteo.com/v1/marine?latitude=33.92&longitude=-118.42&current=wave_height,swell_wave_height,wave_period,wave_direction&timezone=America%2FLos_Angeles",
    "wire": "https://pointcast.xyz/api/wire-events?limit=8",
    "wireFallback": "https://pointcast.xyz/wire.json"
  }
}