{
 "name": "Celestial Nations skills for bot.fun",
 "version": "2026-09-25",
 "about": "Skills an AI agent can call to read bot.fun (the AI-agent memecoin platform on Eden, a Celestia L2): pre-buy risk checks, the real crowd behind a coin, launcher background checks, fleets and operators, wallet P&L with live exit quotes, market data and money flows. Risk reads describe measured behaviour; they are not trading advice.",
 "base": "https://www.celestialnations.com",
 "docs": "https://www.celestialnations.com/SKILL.md",
 "page": "https://www.celestialnations.com/ai-agent",
 "pricing": {
  "free_calls_per_day": 50,
  "price_usdc_per_call": 0.002,
  "applies_to": "skills with \"metered\": true; the free allowance is shared across all of them",
  "key_header": "Authorization: Bearer cn_…",
  "on_402": "stop and ask your operator before paying; the 402 body explains how",
  "how_to_pay": "https://www.celestialnations.com/SKILL.md#paying",
  "live_terms": "https://www.celestialnations.com/api/pay/info"
 },
 "cache_seconds": 120,
 "categories": [
  {
   "id": "safety",
   "label": "Safety"
  },
  {
   "id": "crowd",
   "label": "Crowd & operators"
  },
  {
   "id": "market",
   "label": "Market data"
  },
  {
   "id": "wallets",
   "label": "Wallets"
  },
  {
   "id": "money",
   "label": "Money & boards"
  }
 ],
 "skills": [
  {
   "id": "pre-buy-check",
   "name": "Pre-Buy Risk Check",
   "category": "safety",
   "summary": "One call before every buy: high, elevated, normal or unassessed, with the machine-readable reasons, the real TIA in the pool and who launched it.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "A risk level with named reasons, like manufactured_momentum or printer_exited, never a vague score",
    "tia_in_curve: the real money in the pool, which is all anyone can cash out",
    "Keeps \"unassessed\" (no evidence yet) apart from \"normal\". Missing data never reads as safe",
    "The launcher, read from what that wallet has actually done: harm, exit habits, fleet and operator"
   ],
   "how_to_use": "Call it once before every buy. risk \"high\" = do not buy. \"elevated\" = halve the size and require a second, independent reason. \"unassessed\" means no evidence yet, not safe. Never size a position bigger than you could sell back into tia_in_curve.",
   "example_asks": [
    "Before you buy {coin}, check it on Celestial Nations and tell me the risk and why.",
    "Only buy coins whose Celestial Nations risk is normal, and halve the size when it is elevated."
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/pre-buy-check",
   "install_prompt": "Learn the Celestial Nations \"Pre-Buy Risk Check\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signal/{coin}.json\n\nHow to use it: Call it once before every buy. risk \"high\" = do not buy. \"elevated\" = halve the size and require a second, independent reason. \"unassessed\" means no evidence yet, not safe. Never size a position bigger than you could sell back into tia_in_curve.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "organic-demand",
   "name": "Organic Demand Read",
   "category": "crowd",
   "summary": "Takes out the buying done by wallets connected to the launcher (its operator, its fleet, its treasury), so what is left is the real crowd.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": "crowd"
    }
   ],
   "capabilities": [
    "crowd.h1 / crowd.h12: buying over the last hour and the last 12 hours, with every buyer grouped by the operator it belongs to",
    "operation_buy_share: how much of the buying came from the launcher's own side",
    "outside_buyers and outside_buy_tia: the wallets that are really the crowd",
    "top_group: the largest connected buyer, whoever it is, and whether it is tied to the launcher"
   ],
   "how_to_use": "Read crowd.h1 before following momentum. If operation_buy_share ≥ 0.7 the volume is the launcher's own operation, not a market. outside_buyers is the number of genuinely separate wallets buying.",
   "example_asks": [
    "How much of the buying on {coin} in the last hour came from wallets outside the launcher's operation?",
    "Skip any coin where the launcher's own operation did 70% or more of the buying."
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/organic-demand",
   "install_prompt": "Learn the Celestial Nations \"Organic Demand Read\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signal/{coin}.json   (read crowd)\n\nHow to use it: Read crowd.h1 before following momentum. If operation_buy_share ≥ 0.7 the volume is the launcher's own operation, not a market. outside_buyers is the number of genuinely separate wallets buying.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "launcher-check",
   "name": "Launcher Background Check",
   "category": "crowd",
   "summary": "Who created the coin, judged by what that wallet has done: harm, how it usually exits, TIA taken from crowds, and the operator behind it.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": "launcher"
    }
   ],
   "capabilities": [
    "harm 0–100: it only rises where a specific counterparty was hurt, and it names the band",
    "exit_profile: the multiple and hold time where this wallet's money usually leaves",
    "funded_by: a fresh wallet funded by a known bad actor carries that context",
    "armada: the operator above the fleet. A new wallet from a known operator carries the whole operation's record"
   ],
   "how_to_use": "Read launcher before a buy. Refuse at harm ≥ 50; require an independent reason at ≥ 25. exit_profile is the launcher's usual exit clock: expect their capital to leave around exit_multiple_median or hold_median_min. Judge the operator (armada), not just the wallet.",
   "example_asks": [
    "Who launched {coin}, and when do they usually sell out?",
    "Refuse coins whose launcher has harm 50 or more on Celestial Nations."
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/launcher-check",
   "install_prompt": "Learn the Celestial Nations \"Launcher Background Check\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signal/{coin}.json   (read launcher)\n\nHow to use it: Read launcher before a buy. Refuse at harm ≥ 50; require an independent reason at ≥ 25. exit_profile is the launcher's usual exit clock: expect their capital to leave around exit_multiple_median or hold_median_min. Judge the operator (armada), not just the wallet.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "bait-alarm",
   "name": "Bait & Fake-Momentum Alarm",
   "category": "safety",
   "summary": "Spots the set-up: dust buys at launch, one wallet doing the real buying, the sell into the crowd, and dead coins started up again.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": "bait"
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/live.json",
     "reads": "bait"
    }
   ],
   "capabilities": [
    "bait.dust_wallets: the ritual tiny buys that make a chart look busy",
    "printed_share: how much of the buying one wallet did",
    "drained and printer_sold_back_tia: the exit into the people who followed",
    "relit: a dead coin pumped again to catch a second crowd"
   ],
   "how_to_use": "If bait is present on a coin's signal, the momentum was manufactured: do not buy, and exit if you hold. live.json → bait lists every coin the scan has caught, refreshed every 2 minutes.",
   "example_asks": [
    "Has BAIT fired on {coin}? If so, who did the buying and did they sell?",
    "Blacklist every coin where BAIT fired in the last 12 hours."
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/bait-alarm",
   "install_prompt": "Learn the Celestial Nations \"Bait & Fake-Momentum Alarm\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/signal/{coin}.json   (read bait)\n  GET https://www.celestialnations.com/api/live.json   (read bait)\n\nHow to use it: If bait is present on a coin's signal, the momentum was manufactured: do not buy, and exit if you hold. live.json → bait lists every coin the scan has caught, refreshed every 2 minutes.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "curve-ledger",
   "name": "Curve Manipulation Ledger",
   "category": "crowd",
   "summary": "Every trade on a coin over the last 12 hours, grouped by who is really behind it, with the shapes named: metronome buying, printed then sold, net selling by the launcher's side.",
   "metered": true,
   "meter_family": "curve-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/curve/{coin}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Per group: buys, sells, TIA in and out, and net TIA into the curve",
    "The rhythm of each group's buying: a bot on a fixed clock stands out",
    "patterns: printed_then_sold, metronome_buying, launcher_operation_net_selling …",
    "A fleet spreading its buying over twelve wallets reads as one hand"
   ],
   "how_to_use": "Fetch it when a coin's chart looks too clean. Read patterns first; a \"printed_then_sold\" or \"launcher_operation_net_selling\" pattern means the price was made by the people now selling it.",
   "example_asks": [
    "Show me who has been buying and selling {coin} for the last 12 hours, grouped by operator.",
    "Warn me when a coin I hold shows printed_then_sold on its curve."
   ],
   "try": "https://www.celestialnations.com/api/curve/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/curve-ledger",
   "install_prompt": "Learn the Celestial Nations \"Curve Manipulation Ledger\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/curve/{coin}.json\n\nHow to use it: Fetch it when a coin's chart looks too clean. Read patterns first; a \"printed_then_sold\" or \"launcher_operation_net_selling\" pattern means the price was made by the people now selling it.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "who-holds",
   "name": "Who Holds the Float",
   "category": "crowd",
   "summary": "The coin's supply split by who holds it: the dev, the dev's crew, the fleet, insiders, snipers and bundlers.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": "held"
    }
   ],
   "capabilities": [
    "held.dev, held.crew, held.fleet: the launcher's side, split into three",
    "insiders, snipers, bundlers: timing classes from the audit",
    "self_volume_share: how much of all volume ever was the creator trading with itself",
    "top1_holder: the largest wallet's share of the float"
   ],
   "how_to_use": "A large held.dev + held.crew is supply that can be sold into you. Compare it with tia_in_curve: if their bag is worth more than the pool, they cannot all get out, and neither can you.",
   "example_asks": [
    "How much of {coin} does the dev and its crew still hold?"
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/who-holds",
   "install_prompt": "Learn the Celestial Nations \"Who Holds the Float\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signal/{coin}.json   (read held)\n\nHow to use it: A large held.dev + held.crew is supply that can be sold into you. Compare it with tia_in_curve: if their bag is worth more than the pool, they cannot all get out, and neither can you.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "dev-exit",
   "name": "Dev Exit Watch",
   "category": "safety",
   "summary": "Did the creator cash out, how much did they take, and was there a crowd holding when they did?",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": "dev_exit"
    }
   ],
   "capabilities": [
    "tia_taken: net TIA the creator took beyond what it paid in",
    "caught_a_crowd: outside wallets held real money when it happened",
    "traded_on_since: real money came back, so the risk eases",
    "The daily audit verdict alongside, with stable values"
   ],
   "how_to_use": "If dev_exit.caught_a_crowd is true the coin is RUGGED in the audit. Treat any coin with a dev exit as high risk unless traded_on_since is true.",
   "example_asks": [
    "Has the creator of {coin} sold out, and how much did they take?"
   ],
   "try": "https://www.celestialnations.com/api/signal/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/dev-exit",
   "install_prompt": "Learn the Celestial Nations \"Dev Exit Watch\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signal/{coin}.json   (read dev_exit)\n\nHow to use it: If dev_exit.caught_a_crowd is true the coin is RUGGED in the audit. Treat any coin with a dev exit as high risk unless traded_on_since is true.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "risk-board",
   "name": "Live Blacklist Board",
   "category": "safety",
   "summary": "Every coin the 2-minute scan has flagged, the ones on watch, and the hour's hot list with distinct wallet counts, all in one call.",
   "metered": true,
   "meter_family": "signals-board",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signals.json",
     "reads": null
    }
   ],
   "capabilities": [
    "flagged: blacklist these right now",
    "watch: dust buys at launch, but the big buyer has not shown up yet. Treat these as elevated",
    "hot: trades, distinct wallets and TIA moved in the last hour",
    "Changes every 2 minutes. Poll it on that clock and no faster"
   ],
   "how_to_use": "Poll every 2 minutes. Blacklist every coin under flagged; treat watch as elevated; use hot to find where real wallets (not trades) are.",
   "example_asks": [
    "Every 2 minutes, pull the Celestial Nations board and drop anything flagged from my watchlist."
   ],
   "try": "https://www.celestialnations.com/api/signals.json",
   "page": "https://www.celestialnations.com/ai-agent/risk-board",
   "install_prompt": "Learn the Celestial Nations \"Live Blacklist Board\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/signals.json\n\nHow to use it: Poll every 2 minutes. Blacklist every coin under flagged; treat watch as elevated; use hot to find where real wallets (not trades) are.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "market-pulse",
   "name": "Market Pulse",
   "category": "market",
   "summary": "Everything the 2-minute scan knows: prices, market caps and real TIA per coin, the last hour of trades, every 5+ TIA trade over 12 hours, and 10-minute flow legs.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/live.json",
     "reads": null
    }
   ],
   "capabilities": [
    "coins: price, market cap, 24h volume and TIA in the pool for every active coin",
    "tape60: the last hour of trades. moves12: every trade of 5 TIA or more over 12 hours",
    "flows: 10-minute buy/sell legs per coin",
    "Free, and rewritten every 2 minutes. You keep no connection open"
   ],
   "how_to_use": "One fetch every 2 minutes replaces hundreds of bot.fun calls. Use coins[address].rt (real TIA in the pool) for sizing, moves12 for whale trades, flows for buy/sell pressure.",
   "example_asks": [
    "What are the biggest trades on bot.fun in the last 12 hours?",
    "Which coins have more TIA flowing in than out over the last hour?"
   ],
   "try": "https://www.celestialnations.com/api/live.json",
   "page": "https://www.celestialnations.com/ai-agent/market-pulse",
   "install_prompt": "Learn the Celestial Nations \"Market Pulse\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/live.json\n\nHow to use it: One fetch every 2 minutes replaces hundreds of bot.fun calls. Use coins[address].rt (real TIA in the pool) for sizing, moves12 for whale trades, flows for buy/sell pressure.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "launch-radar",
   "name": "New Launch Radar",
   "category": "market",
   "summary": "The 50 newest launches with launcher, market cap and trades, ready to pass through the risk check the moment they land.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/live.json",
     "reads": "newCoins"
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/signal/{coin}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "newCoins: address, symbol, launcher, launch time, market cap, TIA in the pool",
    "Pair it with the Pre-Buy Risk Check and Launcher Background Check before a first buy",
    "The launcher's name comes from the registry even when bot.fun has not set it yet",
    "Free"
   ],
   "how_to_use": "Read newCoins every 2 minutes, diff against the last read, and run each new address through /api/signal/{coin}.json before considering it.",
   "example_asks": [
    "Tell me about every new bot.fun launch in the last 10 minutes and whether its launcher has a record."
   ],
   "try": "https://www.celestialnations.com/api/live.json",
   "page": "https://www.celestialnations.com/ai-agent/launch-radar",
   "install_prompt": "Learn the Celestial Nations \"New Launch Radar\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/live.json   (read newCoins)\n  GET https://www.celestialnations.com/api/signal/{coin}.json\n\nHow to use it: Read newCoins every 2 minutes, diff against the last read, and run each new address through /api/signal/{coin}.json before considering it.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "network-rhythm",
   "name": "Network Rhythm",
   "category": "market",
   "summary": "Hour-by-hour trades, buys, sells, launches and volume for the last three weeks, for the whole network and for each fleet.",
   "metered": true,
   "meter_family": "pulse-network",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/activity.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/fleet-activity.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Find the busy and quiet hours before timing a launch",
    "Buy-vs-sell pressure by hour of the day",
    "Per fleet: does an operation run round the clock or sleep?",
    "21 days of hourly buckets"
   ],
   "how_to_use": "activity.json hours[] rows are {t, tr, bu, se, la, vo}. Group by hour of day to find when volume is highest; fleet-activity.json byFleet[treasury] has the same shape for one crew.",
   "example_asks": [
    "When is bot.fun busiest? Pick the best hour for me to launch."
   ],
   "try": "https://www.celestialnations.com/api/activity.json",
   "page": "https://www.celestialnations.com/ai-agent/network-rhythm",
   "install_prompt": "Learn the Celestial Nations \"Network Rhythm\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/activity.json\n  GET https://www.celestialnations.com/api/fleet-activity.json\n\nHow to use it: activity.json hours[] rows are {t, tr, bu, se, la, vo}. Group by hour of day to find when volume is highest; fleet-activity.json byFleet[treasury] has the same shape for one crew.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "wallet-exit-quotes",
   "name": "Live P&L & Real Exit Quotes",
   "category": "wallets",
   "summary": "Any wallet's live positions, each with bot.fun's own sell quote for the whole bag, so \"if sold now\" is a price you could actually get, not a mark.",
   "metered": true,
   "meter_family": "agent-live",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/agent-live/{wallet}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "exit: the live, account-aware sell quote for the whole balance, net of fees",
    "exitCreator: on a coin you launched, the creator fee from your own sell comes back to you",
    "cashIn: the TIA still inside each bag, so exit − cashIn is your real P&L",
    "Up to 300 timed buys, sells and launches"
   ],
   "how_to_use": "Call it for your own wallet each cycle. For every position, exit − cashIn is the profit if sold now at a price you could really get. Use it for stop-loss and take-profit decisions instead of the mark.",
   "example_asks": [
    "What would I get if I sold everything in my wallet right now?",
    "Which of my positions is under water at a real exit price?"
   ],
   "try": "https://www.celestialnations.com/api/agent-live/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.celestialnations.com/ai-agent/wallet-exit-quotes",
   "install_prompt": "Learn the Celestial Nations \"Live P&L & Real Exit Quotes\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/agent-live/{wallet}.json\n\nHow to use it: Call it for your own wallet each cycle. For every position, exit − cashIn is the profit if sold now at a price you could really get. Use it for stop-loss and take-profit decisions instead of the mark.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "agent-dossier",
   "name": "Agent Dossier",
   "category": "wallets",
   "summary": "A deep file on any agent: evidence counts, what it tends to do next when it holds what you hold, how long it holds, and why it is classed the way it is.",
   "metered": true,
   "meter_family": "agent-dossier",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/agent/{wallet}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "ev: launches, rugs, dump events, positions, buys, sells",
    "scenarios: \"when they buy into a coin we hold, then …\", with a confidence",
    "hazard: the share of positions it closes in each hold-time band",
    "parts: every term behind the harm figure"
   ],
   "how_to_use": "When a big wallet enters a coin you hold, fetch its dossier. hazard tells you when it usually leaves; scenarios tell you what it tends to do next.",
   "example_asks": [
    "A wallet just bought 40 TIA of my coin. Who is it, and how long does it usually hold?"
   ],
   "try": "https://www.celestialnations.com/api/agent/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.celestialnations.com/ai-agent/agent-dossier",
   "install_prompt": "Learn the Celestial Nations \"Agent Dossier\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/agent/{wallet}.json\n\nHow to use it: When a big wallet enters a coin you hold, fetch its dossier. hazard tells you when it usually leaves; scenarios tell you what it tends to do next.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "operator-map",
   "name": "Fleet & Operator Map",
   "category": "crowd",
   "summary": "Which wallets answer to one hand. Fleets are rebuilt from the chain, and operators are proven across fleets by who funded whom. bot.fun's API does not show either.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/camps.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/fleets-index.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/fleet/{treasury}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Operators (armadas): members, realised P&L, launches and how many are still alive",
    "Fleets: one treasury controlling two or more agents, rebuilt from the chain",
    "Rosters, so you can blacklist a whole operation, not one wallet",
    "Free"
   ],
   "how_to_use": "Join launcher.armada.id from a signal to camps.json, or scan rosters. Treat every wallet in one operation as the same trader when you judge demand.",
   "example_asks": [
    "Is the wallet buying my coin part of a bigger operation? Who else is in it?",
    "Blacklist every wallet in the operation that launched {coin}."
   ],
   "try": "https://www.celestialnations.com/api/camps.json",
   "page": "https://www.celestialnations.com/ai-agent/operator-map",
   "install_prompt": "Learn the Celestial Nations \"Fleet & Operator Map\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/camps.json\n  GET https://www.celestialnations.com/api/fleets-index.json\n  GET https://www.celestialnations.com/api/fleet/{treasury}.json\n\nHow to use it: Join launcher.armada.id from a signal to camps.json, or scan rosters. Treat every wallet in one operation as the same trader when you judge demand.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "funding-trace",
   "name": "Funding Trace",
   "category": "wallets",
   "summary": "Where a wallet's TIA actually came from, read live off the chain: bridge, faucet or a shared funder that links it to someone else.",
   "metered": true,
   "meter_family": "chain-trace",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/chain/trace/{wallet}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Top funders by amount, each labelled bridge / faucet / multisig / contract / wallet",
    "operatorFunders: only the links that matter. Everyone came through the bridge",
    "Read from the chain itself, not a sample",
    "Cached for six hours. Where money came from never changes"
   ],
   "how_to_use": "Use it on a fresh wallet with no history. If operatorFunders contains a wallet tied to a known operator, treat the new wallet as that operator.",
   "example_asks": [
    "Who funded this wallet, and does it share a funder with the launcher?"
   ],
   "try": "https://www.celestialnations.com/api/chain/trace/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.celestialnations.com/ai-agent/funding-trace",
   "install_prompt": "Learn the Celestial Nations \"Funding Trace\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/chain/trace/{wallet}.json\n\nHow to use it: Use it on a fresh wallet with no history. If operatorFunders contains a wallet tied to a known operator, treat the new wallet as that operator.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "coin-dossier",
   "name": "Coin Audit File",
   "category": "safety",
   "summary": "The full audit behind a coin's verdict: the description, how full the curve is, the complete audit block, the fleet's other members and the creator's record.",
   "metered": true,
   "meter_family": "coin-detail",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/coin/{address}.json",
     "reads": null
    }
   ],
   "capabilities": [
    "The complete audit block behind the verdict",
    "The fleet's other members and the creator's agent record",
    "Around 300 coins deep-audited each pass: the traded and the recently launched",
    "Check deep on the coins.json row before fetching"
   ],
   "how_to_use": "Only fetch it where coins.json marks deep:true. Read audit before a large position; it is the working behind the signal's verdict.",
   "example_asks": [
    "Give me the full audit on {coin} and explain the verdict in plain words."
   ],
   "try": "https://www.celestialnations.com/api/coin/0x349f0aa3e4102fd68da6e8764416bd7c9902731c.json",
   "page": "https://www.celestialnations.com/ai-agent/coin-dossier",
   "install_prompt": "Learn the Celestial Nations \"Coin Audit File\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/coin/{address}.json\n\nHow to use it: Only fetch it where coins.json marks deep:true. Read audit before a large position; it is the working behind the signal's verdict.\n\nCache answers for 2 minutes. 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\nWhen you have it working, show me one live example."
  },
  {
   "id": "operator-board",
   "name": "Operator Leaderboard · 48h",
   "category": "money",
   "summary": "Who is making money: 48 hours of profit on sold coins, summed per operator, so forty wallets run by one hand count as one entry.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/leaders24.json",
     "reads": "ops48"
    }
   ],
   "capabilities": [
    "A round trip can't fake it: buying straight back in cancels out the sell, so it books only its fee as a small loss",
    "self: how much of the trading was on the operator's own coins",
    "best: the wallet that did most of the work",
    "The 24h per-wallet board alongside. Free"
   ],
   "how_to_use": "ops48.top is ranked by closed-trade realised TIA. Follow the operator, not the wallet — a strong self share means it is trading its own launches.",
   "example_asks": [
    "Who are the most profitable operators on bot.fun this week, and what do they trade?"
   ],
   "try": "https://www.celestialnations.com/api/leaders24.json",
   "page": "https://www.celestialnations.com/ai-agent/operator-board",
   "install_prompt": "Learn the Celestial Nations \"Operator Leaderboard · 48h\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/leaders24.json   (read ops48)\n\nHow to use it: ops48.top is ranked by closed-trade realised TIA. Follow the operator, not the wallet — a strong self share means it is trading its own launches.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "fee-income",
   "name": "Creator & Referral Earnings",
   "category": "money",
   "summary": "What launchers and referrers earn: lifetime creator fees, unclaimed balances read straight off the contract, and the day-by-day earnings of every fleet and operator.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/rewards.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/creators.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/timeline.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Unclaimed creator and referral balances, read from the factory contract at a stated block",
    "The top 100 launchers and referrers, with the last 24 hours and 7 days",
    "Every claim seen between two surveys",
    "Daily realised, creator and referral per fleet and operator"
   ],
   "how_to_use": "rewards.json → wallets[] has each unclaimed balance; creators.json ranks earners; timeline.json has the daily series. Everything here is free.",
   "example_asks": [
    "How much creator fee have I not claimed yet?",
    "Which launchers earned the most creator fees this week?"
   ],
   "try": "https://www.celestialnations.com/api/creators.json",
   "page": "https://www.celestialnations.com/ai-agent/fee-income",
   "install_prompt": "Learn the Celestial Nations \"Creator & Referral Earnings\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/rewards.json\n  GET https://www.celestialnations.com/api/creators.json\n  GET https://www.celestialnations.com/api/timeline.json\n\nHow to use it: rewards.json → wallets[] has each unclaimed balance; creators.json ranks earners; timeline.json has the daily series. Everything here is free.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "real-money",
   "name": "Money In, Money Out",
   "category": "money",
   "summary": "Money in, money out and what is still inside, per fleet and per operator, counted in TIA that actually crossed the bridge rather than paper P&L.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/cash.json",
     "reads": null
    }
   ],
   "capabilities": [
    "moneyIn: bridge deposits and faucet grants",
    "moneyOut: what went back over the bridge",
    "stillInside: live balances plus open positions",
    "net: whether the operation is really up"
   ],
   "how_to_use": "An operator with a large positive net and a steady moneyOut is extracting. Read it before trusting a crew's coins.",
   "example_asks": [
    "Is the operation behind {coin} actually taking money out of bot.fun?"
   ],
   "try": "https://www.celestialnations.com/api/cash.json",
   "page": "https://www.celestialnations.com/ai-agent/real-money",
   "install_prompt": "Learn the Celestial Nations \"Money In, Money Out\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.celestialnations.com/api/cash.json\n\nHow to use it: An operator with a large positive net and a steady moneyOut is extracting. Read it before trusting a crew's coins.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  },
  {
   "id": "daily-alerts",
   "name": "Daily Alerts & Suspects",
   "category": "money",
   "summary": "What changed since yesterday (verdict flips, new rugs, fleets forming or breaking up) and the suspected links underneath the proven fleets.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/daily/alerts.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.celestialnations.com/api/daily/suspects.json",
     "reads": null
    }
   ],
   "capabilities": [
    "Verdict flips and new rugs, day over day",
    "Fleets appearing or breaking up",
    "suspects: wallets that trade together or fund each other. These are guesses, labelled as guesses",
    "exitLiquidity: sellers whose sales the same wallets keep buying"
   ],
   "how_to_use": "Read alerts once a day. Treat suspects as a hint, never as proof: behaviour is not ownership.",
   "example_asks": [
    "What changed on bot.fun overnight that I should know about?"
   ],
   "try": "https://www.celestialnations.com/api/daily/alerts.json",
   "page": "https://www.celestialnations.com/ai-agent/daily-alerts",
   "install_prompt": "Learn the Celestial Nations \"Daily Alerts & Suspects\" skill for bot.fun.\nBase URL: https://www.celestialnations.com. Field guide: https://www.celestialnations.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.celestialnations.com/api/daily/alerts.json\n  GET https://www.celestialnations.com/api/daily/suspects.json\n\nHow to use it: Read alerts once a day. Treat suspects as a hint, never as proof: behaviour is not ownership.\n\nCache answers for 2 minutes. This one is free — no key needed.\nWhen you have it working, show me one live example."
  }
 ],
 "prompts": {
  "skill_directory": "You now have the Celestial Nations skills for bot.fun, the AI-agent memecoin platform on Eden (a Celestia L2).\nBase URL: https://www.celestialnations.com. Full field guide: https://www.celestialnations.com/SKILL.md. Read it once before your first call.\nThe same list as JSON, with an install prompt per skill: https://www.celestialnations.com/api/skills.json\n\nSKILLS\n 1. Pre-Buy Risk Check (metered): GET /api/signal/{coin}.json\n    One call before every buy: high, elevated, normal or unassessed, with the machine-readable reasons, the real TIA in the pool and who launched it.\n 2. Organic Demand Read (metered): GET /api/signal/{coin}.json → crowd\n    Takes out the buying done by wallets connected to the launcher (its operator, its fleet, its treasury), so what is left is the real crowd.\n 3. Launcher Background Check (metered): GET /api/signal/{coin}.json → launcher\n    Who created the coin, judged by what that wallet has done: harm, how it usually exits, TIA taken from crowds, and the operator behind it.\n 4. Bait & Fake-Momentum Alarm (metered): GET /api/signal/{coin}.json → bait · GET /api/live.json → bait\n    Spots the set-up: dust buys at launch, one wallet doing the real buying, the sell into the crowd, and dead coins started up again.\n 5. Curve Manipulation Ledger (metered): GET /api/curve/{coin}.json\n    Every trade on a coin over the last 12 hours, grouped by who is really behind it, with the shapes named: metronome buying, printed then sold, net selling by the launcher's side.\n 6. Who Holds the Float (metered): GET /api/signal/{coin}.json → held\n    The coin's supply split by who holds it: the dev, the dev's crew, the fleet, insiders, snipers and bundlers.\n 7. Dev Exit Watch (metered): GET /api/signal/{coin}.json → dev_exit\n    Did the creator cash out, how much did they take, and was there a crowd holding when they did?\n 8. Live Blacklist Board (metered): GET /api/signals.json\n    Every coin the 2-minute scan has flagged, the ones on watch, and the hour's hot list with distinct wallet counts, all in one call.\n 9. Market Pulse (free): GET /api/live.json\n    Everything the 2-minute scan knows: prices, market caps and real TIA per coin, the last hour of trades, every 5+ TIA trade over 12 hours, and 10-minute flow legs.\n10. New Launch Radar (free): GET /api/live.json → newCoins · GET /api/signal/{coin}.json\n    The 50 newest launches with launcher, market cap and trades, ready to pass through the risk check the moment they land.\n11. Network Rhythm (metered): GET /api/activity.json · GET /api/fleet-activity.json\n    Hour-by-hour trades, buys, sells, launches and volume for the last three weeks, for the whole network and for each fleet.\n12. Live P&L & Real Exit Quotes (metered): GET /api/agent-live/{wallet}.json\n    Any wallet's live positions, each with bot.fun's own sell quote for the whole bag, so \"if sold now\" is a price you could actually get, not a mark.\n13. Agent Dossier (metered): GET /api/agent/{wallet}.json\n    A deep file on any agent: evidence counts, what it tends to do next when it holds what you hold, how long it holds, and why it is classed the way it is.\n14. Fleet & Operator Map (free): GET /api/camps.json · GET /api/fleets-index.json · GET /api/fleet/{treasury}.json\n    Which wallets answer to one hand. Fleets are rebuilt from the chain, and operators are proven across fleets by who funded whom. bot.fun's API does not show either.\n15. Funding Trace (metered): GET /api/chain/trace/{wallet}.json\n    Where a wallet's TIA actually came from, read live off the chain: bridge, faucet or a shared funder that links it to someone else.\n16. Coin Audit File (metered): GET /api/coin/{address}.json\n    The full audit behind a coin's verdict: the description, how full the curve is, the complete audit block, the fleet's other members and the creator's record.\n17. Operator Leaderboard · 48h (free): GET /api/leaders24.json → ops48\n    Who is making money: 48 hours of profit on sold coins, summed per operator, so forty wallets run by one hand count as one entry.\n18. Creator & Referral Earnings (free): GET /api/rewards.json · GET /api/creators.json · GET /api/timeline.json\n    What launchers and referrers earn: lifetime creator fees, unclaimed balances read straight off the contract, and the day-by-day earnings of every fleet and operator.\n19. Money In, Money Out (free): GET /api/cash.json\n    Money in, money out and what is still inside, per fleet and per operator, counted in TIA that actually crossed the bridge rather than paper P&L.\n20. Daily Alerts & Suspects (free): GET /api/daily/alerts.json · GET /api/daily/suspects.json\n    What changed since yesterday (verdict flips, new rugs, fleets forming or breaking up) and the suspected links underneath the proven fleets.\n\nRULES\n- Cache every answer for 2 minutes; the scan only changes that often.\n- Risk reads describe behaviour we measured. \"unassessed\" means no evidence yet, never \"safe\".\n- 50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\n\nNow tell me, in a few lines, which of these skills fit what I am doing, and ask me which to set up first.",
  "pre_buy_guard": "Before buying any coin on bot.fun, check Celestial Nations risk signals:\n\n1. GET https://www.celestialnations.com/api/signal/{coinAddress}.json\n   - \"risk\" == \"high\": do not buy. The momentum was faked (the crew made tiny buys at launch and one wallet did most of the buying), or the creator has sold and the price collapsed. Measured on this platform, the people who bought these coins are the ones the crew sold to.\n   - \"risk\" == \"elevated\": halve position size and require an independent reason to enter. Read \"reasons\" for which warning fired.\n   - \"top_operator_buy_share_12h\" >= 0.7: the volume you are following is one wallet, not a market.\n   - \"tia_in_curve\" is the real money in the coin's pool. It is all that anyone can cash out. Never hold a position you could not sell back into it. Market cap on a small pool is not money.\n   - \"launcher\" is who created the coin, read as measured behaviour. Refuse if \"launcher.harm\" >= 50.\n     Require an independent reason at >= 25 (the \"notorious_launcher\" and \"launcher_harm_*\" reasons also\n     fire). \"launcher.exit_profile\" is the dump point: the multiple and hold time this wallet's money\n     usually leaves at. \"launcher.tia_taken_from_crowds\" and \"launcher.last_30d\" say the same thing in\n     money. \"launcher.fleet\" names the fleet the launcher belongs to, and the whole crew trades as one.\n   - \"launcher.armada\" is the OPERATOR above the fleet: one operator shown across several\n     fleets by who sent whom the first money, with the member count, realised P&L (profit on coins it has\n     sold out of) and a note. Judge the operator, not the wallet. A new wallet from a known operator\n     carries the whole operation's record. Full lists: GET https://www.celestialnations.com/api/camps.json.\n2. Every 2 minutes, GET https://www.celestialnations.com/api/signals.json and blacklist every coin listed under \"flagged\".\n   Treat coins under \"watch\" as elevated: the crew made tiny buys at launch, but the big buyer has not\n   shown up yet. Buying there means joining the crowd they will sell to.\n3. Cache responses for 2 minutes, which is how often the scan runs. Full field list: https://www.celestialnations.com/SKILL.md",
  "starter_trader": "Build me a bot.fun trading agent in this folder. Work step by step, show me each file as you write it, and do not send a real transaction until I type \"arm it\".\n\nWHAT IT TRADES\nbot.fun is a memecoin launchpad for AI agents on Eden, a Celestia L2. Every coin trades on a bonding curve priced in TIA.\n\nCONNECTIONS\nbot.fun API: https://bot.fun/api/v1 (amounts are 18-decimal wei strings)\n  GET  /coins/new?limit=20 · /coins/trending?limit=20 · /coins/{coin}\n  GET  /coins/{coin}/activity · /coins/{coin}/holders · /coins/{coin}/candles?interval=5m\n  GET  /agents/{wallet} (positions and P&L) · /balance/{wallet}\n  GET  /quote/buy?coin=&tiaAmount=&account= · /quote/sell?coin=&tokenAmount=&account=\n  POST /tx/build/buy  {\"from\",\"coinAddress\",\"tiaAmount\",\"minTokensOut\"}\n  POST /tx/build/sell {\"from\",\"coinAddress\",\"tokenAmount\",\"minTiaOut\"}\n       → returns an UNSIGNED EIP-1559 transaction. Sign it locally, then\n  POST /tx/submit {\"signedTx\"} and poll GET /tx/{hash}/status\n  Stay under about 4 requests a second.\n\nCelestial Nations API: https://www.celestialnations.com (field guide: https://www.celestialnations.com/SKILL.md)\n  GET /api/live.json                  every 2 min: hot coins, new launches, the last hour of trades, BAIT (free)\n  GET /api/signals.json               the risk board: flagged, watch, hot\n  GET /api/signal/{coin}.json         one coin's risk read, before every buy\n  GET /api/curve/{coin}.json          the last 12h of trades, grouped by who is really behind them\n  GET /api/agent-live/{wallet}.json   my positions, each with a live sell quote\n  50 calls a day are free across the metered endpoints. Above that each call costs 0.002 USDC with a key (Authorization: Bearer cn_…, from the environment variable CN_API_KEY). If you get HTTP 402, stop and ask me before paying anything; the 402 body explains how.\n\nHOW TO BUILD IT\nSeparate modules that pass small typed records one way, never reaching into each other:\n  scanner      → candidates from /coins/new, /coins/trending and live.json hot\n  analyst      → CoinRead: price, flow, holders + the CN signal (risk, reasons, tia_in_curve,\n                 crowd.h1.outside_buyers, crowd.h1.operation_buy_share, launcher.harm)\n  strategist   → TradeProposal: coin, side, requested TIA and the reason — or nothing\n  risk         → RiskVerdict: approve or deny; it may only LOWER the stake. The executor\n                 refuses anything without an approved verdict.\n  executor     → paper fill priced off /quote, or live: build → sign → submit → poll\n  positions    → the book: tokens, cost, realised P&L on average cost\n  orchestrator → one cycle every 30–60 s: manage exits first, then scan, read, propose, gate, execute\nLog every decision as one JSON line in logs/session-<date>.jsonl, and write the current state to\nstate.json so a separate dashboard can read it without touching the bot.\n\nRISK RULES (a safe start; I will tune them)\n- Never buy when the CN risk is \"high\". \"elevated\" = half size and a second reason. \"unassessed\" is not \"safe\".\n- Skip when crowd.h1.operation_buy_share ≥ 0.7: the buying is the launcher's own operation.\n- Skip when launcher.harm ≥ 50.\n- Never hold more than 10% of a coin's tia_in_curve, and check /quote/sell before every buy.\n- At most 5% of the wallet per trade, 3 open positions, and stop for the day after losing 10%.\n- Keep 25% of the balance as an untouchable reserve.\n- Exits: sell half at +50%, most of the rest at +100%, everything at −25% from the peak, and\n  everything if the coin appears under \"flagged\" on /api/signals.json.\n\nSAFETY (not negotiable)\n- Start in PAPER mode. Live needs BOTH: LIVE=true in the config AND no file named KILL_SWITCH in this folder.\n  Creating that file stops live trading at once, without a restart.\n- The private key comes from an environment variable or an encrypted keystore. Never print it, log it or\n  send it anywhere but the local signer. Never ask me to paste it into this chat.\n\nFIRST RUN\n1. Ask me: Python or Node, my wallet address (public only), and how much TIA the bot may use.\n2. Build the modules, then a smoke test that prints bot.fun /coins/trending and CN /api/signals.json.\n3. Run 24 hours in paper mode and show me a summary of the log before anything goes live."
 },
 "generated_at": "2026-09-25T15:41:41.048Z"
}