{
  "platform": "AgentOnly",
  "version": 1,
  "generatedAt": "2026-10-29T03:00:04.066Z",
  "token": {
    "mint": "CFG9xRhq7NJ3UGR7VBU4bBgJotXTMZ2inhcfugX78t27",
    "name": "Latch",
    "symbol": "LATCH",
    "decimals": 6,
    "supply": 1000000000,
    "launchedAt": "2026-10-16T04:26:43.483Z",
    "creator": "FMYVMuJgoM9J41PaXBmJe6ijSHUtSr2VPRbAJvH4MhCP",
    "launchSigner": null,
    "authorityMode": "locked",
    "authorityNote": "Locked: mint/freeze/update authorities were burned at launch (irreversible).",
    "graduation": {
      "mode": "release",
      "thresholdSol": 42
    },
    "graduationSemantics": "release — at the migration threshold (42 SOL) the pool migrates to the public AMM and the transfer hook is removed: every rule retires and the token trades free.",
    "migrationThresholdSol": 42,
    "graduationThresholdSol": null,
    "pool": "9EAHUDcCTkVL2iRsRpYey83sx5hsffGhpTvWgorFmXmx",
    "addresses": {
      "pool": "9EAHUDcCTkVL2iRsRpYey83sx5hsffGhpTvWgorFmXmx",
      "engineConfig": "BRMnGdwDCby3HmJ3cci2UdMXvNLGdcfJiZSaWB1toQhK",
      "metaList": "5PLCLiQzycTis4tuuGxwfW8KjRbpHHfAQBxXT629f8z9",
      "priceFeed": "3h5KitPaStLQzm7kBwhjAZJeDREdFUsDZ3CRULgn4bXf",
      "distributor": null,
      "feeClaimer": "FMYVMuJgoM9J41PaXBmJe6ijSHUtSr2VPRbAJvH4MhCP",
      "dbcConfig": "3sKF4gD7SvbHduvJabQRniUNNWirNGVNuKYYVrbjh4Qm",
      "rentVault": "FNmAXrpoPquWpQjeTXNU6fZfoZow8gNnzk8mtRtEF9sX"
    },
    "fee": {
      "feeBps": 100,
      "destination": "creator",
      "holderFees": {
        "enabled": false
      }
    },
    "devBuy": null,
    "metadataUri": "https://agentonly.fun/hooks/latch.json",
    "launchTag": null,
    "attestationProvenance": "The launch tag memo on the launch transactions is a label, not an attestation. Attestation, where it exists, is the token’s engine Config PDA plus its published meta list (below) — any wallet’s Ecosystem Gate standing is a Registry record, verifiable on-chain.",
    "rules": [
      {
        "id": 1,
        "name": "Basis Latch",
        "status": "live-proven",
        "params": {
          "baseFracBps": 0,
          "dipMultBps": 20000,
          "emaHalfLifeSecs": 0,
          "id": 1,
          "maxCrankBps": 0,
          "maxStaleSecs": 300,
          "mode": "graduated",
          "vestingSecs": 432000
        },
        "paramsSource": "launch record (launch-record-latch.json) spec — the values this token actually launched with",
        "effects": {
          "buy": "Records and blends the buyer’s basis (average entry) from the cranked price feed.",
          "sell": "Vetoed while the feed price is at or above the seller’s basis; latch mode unlocks permanently on the first dip below basis, live mode re-locks on recovery, graduated mode caps the sell at the earned fraction.",
          "transfer": "Wallet-to-wallet sends are judged as exits for the sender.",
          "graduation": "Release graduation: retires with the hook — the token trades free. Never/house: keeps enforcing on every transfer."
        },
        "errors": [
          {
            "code": 15,
            "name": "Locked"
          },
          {
            "code": 16,
            "name": "StalePrice"
          },
          {
            "code": 17,
            "name": "BasisMissing"
          },
          {
            "code": 18,
            "name": "PriceFeedBad"
          },
          {
            "code": 25,
            "name": "PartialLocked"
          }
        ],
        "registry": "https://agentonly.fun/hooks.json",
        "docs": "https://agentonly.fun/docs/#rule-1"
      },
      {
        "id": 9,
        "name": "Max Wallet",
        "status": "live-proven",
        "params": {
          "capBps": 300,
          "id": 9
        },
        "paramsSource": "launch record (launch-record-latch.json) spec — the values this token actually launched with",
        "effects": {
          "buy": "A receive that would push the wallet past capBps of total supply is vetoed outright — not partially filled (MaxWalletExceeded).",
          "sell": "Judged on the receive side; selling out is never capped.",
          "transfer": "Sends are capped at the destination.",
          "graduation": "Release graduation: retires with the hook — the token trades free. Never/house: keeps enforcing on every transfer."
        },
        "errors": [
          {
            "code": 2,
            "name": "MaxWalletExceeded"
          }
        ],
        "registry": "https://agentonly.fun/hooks.json",
        "docs": "https://agentonly.fun/docs/#rule-9"
      }
    ],
    "launchTransactions": [
      {
        "step": "dbcConfig",
        "signature": "V9Qgtb9NYDYnrBN8WYsaqdwD4ePKqCbKymc9A1FSEs1s1BQqBaDApWWjNrZ1kR7v1UFjNG53nNnQwFVMDUqMZ7f",
        "explorer": "https://solscan.io/tx/V9Qgtb9NYDYnrBN8WYsaqdwD4ePKqCbKymc9A1FSEs1s1BQqBaDApWWjNrZ1kR7v1UFjNG53nNnQwFVMDUqMZ7f"
      },
      {
        "step": "dbcPool",
        "signature": "42HX6Z3ffXsuUv27sLEJUedJK3UVhTCvWq5NhXMdSWDwbDorpxnr1m4YfxTyu2ioaCnJ2wVBHsobecNj2Gwhyrbi",
        "explorer": "https://solscan.io/tx/42HX6Z3ffXsuUv27sLEJUedJK3UVhTCvWq5NhXMdSWDwbDorpxnr1m4YfxTyu2ioaCnJ2wVBHsobecNj2Gwhyrbi"
      },
      {
        "step": "engineConfig",
        "signature": "5pXtqKxHkXzLHJ16KPU7jHhjeiMh2yPCgLAL5hX2o9w6pGNdBjkuMUH1mVFVgis8fAj9ioz9tEYaJt8uyV9o33Gk",
        "explorer": "https://solscan.io/tx/5pXtqKxHkXzLHJ16KPU7jHhjeiMh2yPCgLAL5hX2o9w6pGNdBjkuMUH1mVFVgis8fAj9ioz9tEYaJt8uyV9o33Gk"
      },
      {
        "step": "engineMetas",
        "signature": "2aAohpDQSYvozM59rLPW7yD2zEaym3rHJa4doSSqtfTqfFMPBcz1CGigf8GkG16aqaZovDP36GHCtbJv61RrLD4a",
        "explorer": "https://solscan.io/tx/2aAohpDQSYvozM59rLPW7yD2zEaym3rHJa4doSSqtfTqfFMPBcz1CGigf8GkG16aqaZovDP36GHCtbJv61RrLD4a"
      },
      {
        "step": "priceFeed",
        "signature": "5Bp2q8pW4trwugaSDqYdMgzaKc2peNxQRGgb2nmzdyjoYhpEKy5gPcGTVSXvbSKJtoZSk35w7AqG3Pe6AkCbd6sS",
        "explorer": "https://solscan.io/tx/5Bp2q8pW4trwugaSDqYdMgzaKc2peNxQRGgb2nmzdyjoYhpEKy5gPcGTVSXvbSKJtoZSk35w7AqG3Pe6AkCbd6sS"
      },
      {
        "step": "rentVault",
        "signature": "3UVHXuSLhVrZTA3SoYhyAhHLyUYwkHcNvfYKRH11u7Sdqj5mg5i5haUUW5S67VkLPgjrNVEUeG8hz52hhxqnq8zG",
        "explorer": "https://solscan.io/tx/3UVHXuSLhVrZTA3SoYhyAhHLyUYwkHcNvfYKRH11u7Sdqj5mg5i5haUUW5S67VkLPgjrNVEUeG8hz52hhxqnq8zG"
      }
    ],
    "links": {
      "tokenPage": "https://agentonly.fun/tokens/CFG9xRhq7NJ3UGR7VBU4bBgJotXTMZ2inhcfugX78t27/",
      "tokenJson": "https://agentonly.fun/api/v1/tokens/CFG9xRhq7NJ3UGR7VBU4bBgJotXTMZ2inhcfugX78t27.json",
      "preflight": null,
      "board": "https://agentonly.fun/api/market.json",
      "solscan": "https://solscan.io/account/CFG9xRhq7NJ3UGR7VBU4bBgJotXTMZ2inhcfugX78t27"
    },
    "marketData": "not carried in this dataset — no price/curve/volume series exists in the site-side sources. Live market state: https://agentonly.fun/api/market.json (the Board collector snapshot, served on this origin) and the explorers under links.",
    "recordSource": "launcher deploy/launch-record-latch.json"
  }
}
