{
 "name": "Ansa 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, dev background checks, wallet groups and entities, 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.ansanode.com",
 "docs": "https://www.ansanode.com/SKILL.md",
 "terms": "https://www.ansanode.com/terms",
 "privacy": "https://www.ansanode.com/privacy",
 "page": "https://www.ansanode.com/ai-agent",
 "support": {
  "discord": "https://discord.gg/FcGwnTB4hv",
  "note": "help with set-ups, failing calls and payments; feedback and requests for new skills"
 },
 "pricing": {
  "free_calls_per_day": 200,
  "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 entity before paying; the 402 body explains how",
  "how_to_pay": "https://www.ansanode.com/SKILL.md#paying",
  "live_terms": "https://www.ansanode.com/api/pay/info"
 },
 "cache_seconds": 120,
 "data_rule": "Raw figures (prices, trades, new launches, coin and wallet detail, quotes, fees) come from bot.fun's own API, free and with no key: read them there first. Use Ansa for what bot.fun does not publish: who is really behind a coin, a dev's record, manufactured volume, wallet groups and entities.",
 "botfun_api": {
  "base": "https://bot.fun/api/v1",
  "guide": "https://bot.fun/SKILL.md",
  "openapi": "https://bot.fun/api/v1/openapi.json"
 },
 "categories": [
  {
   "id": "safety",
   "label": "Safety"
  },
  {
   "id": "crowd",
   "label": "Crowd & entities"
  },
  {
   "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.ansanode.com/api/signal/{coin}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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 dev, read from what that wallet has actually done: harm, exit habits, wallet group and entity"
   ],
   "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 Ansa and tell me the risk and why.",
    "Only buy coins whose Ansa risk is normal, and halve the size when it is elevated."
   ],
   "try": "https://www.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/pre-buy-check",
   "install_prompt": "Learn the Ansa \"Pre-Buy Risk Check\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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. 200 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 dev (its entity, its wallet group, its funding wallet), 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.ansanode.com/api/signal/{coin}.json",
     "reads": "crowd"
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "capabilities": [
    "crowd.h1 / crowd.h12: buying over the last hour and the last 12 hours, with every buyer grouped by the entity it belongs to",
    "operation_buy_share: how much of the buying came from the dev'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 dev"
   ],
   "how_to_use": "Read crowd.h1 before following momentum. If operation_buy_share ≥ 0.7 the volume is the dev'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 dev's operation?",
    "Skip any coin where the dev's own operation did 70% or more of the buying."
   ],
   "try": "https://www.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/organic-demand",
   "install_prompt": "Learn the Ansa \"Organic Demand Read\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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 dev's own operation, not a market. outside_buyers is the number of genuinely separate wallets buying.\n\nCache answers for 2 minutes. 200 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": "Dev 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 entity behind it.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/signal/{coin}.json",
     "reads": "launcher"
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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 entity above the wallet group. A new wallet from a known entity carries the whole operation's record"
   ],
   "how_to_use": "Read dev before a buy. Refuse at harm ≥ 50; require an independent reason at ≥ 25. exit_profile is the dev's usual exit clock: expect their capital to leave around exit_multiple_median or hold_median_min. Judge the entity (armada), not just the wallet.",
   "example_asks": [
    "Who launched {coin}, and when do they usually sell out?",
    "Refuse coins whose dev has harm 50 or more on Ansa."
   ],
   "try": "https://www.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/launcher-check",
   "install_prompt": "Learn the Ansa \"Dev Background Check\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/signal/{coin}.json   (read launcher)\n\nHow to use it: Read dev before a buy. Refuse at harm ≥ 50; require an independent reason at ≥ 25. exit_profile is the dev's usual exit clock: expect their capital to leave around exit_multiple_median or hold_median_min. Judge the entity (armada), not just the wallet.\n\nCache answers for 2 minutes. 200 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.ansanode.com/api/signal/{coin}.json",
     "reads": "bait"
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/live.json",
     "reads": "bait"
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/bait-alarm",
   "install_prompt": "Learn the Ansa \"Bait & Fake-Momentum Alarm\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/signal/{coin}.json   (read bait)\n  GET https://www.ansanode.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. 200 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 dev's side.",
   "metered": true,
   "meter_family": "curve-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/curve/{coin}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/coins/{coin}/activity"
   ],
   "celestial_only": false,
   "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 wallet group 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 entity.",
    "Warn me when a coin I hold shows printed_then_sold on its curve."
   ],
   "try": "https://www.ansanode.com/api/curve/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/curve-ledger",
   "install_prompt": "Learn the Ansa \"Curve Manipulation Ledger\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/curve/{coin}.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/coins/{coin}/activity\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. 200 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 wallet group, insiders, snipers and bundlers.",
   "metered": true,
   "meter_family": "signal-one-coin",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/signal/{coin}.json",
     "reads": "held"
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "capabilities": [
    "held.dev, held.crew, held.fleet: the dev's side, split into three",
    "insiders, snipers, bundlers: timing classes from the audit",
    "self_volume_share: how much of all volume ever was the dev 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.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/who-holds",
   "install_prompt": "Learn the Ansa \"Who Holds the Float\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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. 200 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 dev 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.ansanode.com/api/signal/{coin}.json",
     "reads": "dev_exit"
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "capabilities": [
    "tia_taken: net TIA the dev 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 dev of {coin} sold out, and how much did they take?"
   ],
   "try": "https://www.ansanode.com/api/signal/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/dev-exit",
   "install_prompt": "Learn the Ansa \"Dev Exit Watch\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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. 200 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.ansanode.com/api/signals.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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 Ansa board and drop anything flagged from my watchlist."
   ],
   "try": "https://www.ansanode.com/api/signals.json",
   "page": "https://www.ansanode.com/ai-agent/risk-board",
   "install_prompt": "Learn the Ansa \"Live Blacklist Board\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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. 200 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.ansanode.com/api/live.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/activity?page=1&pageSize=50",
    "https://bot.fun/api/v1/coins/trending?limit=20"
   ],
   "celestial_only": false,
   "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.ansanode.com/api/live.json",
   "page": "https://www.ansanode.com/ai-agent/market-pulse",
   "install_prompt": "Learn the Ansa \"Market Pulse\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/live.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/activity?page=1&pageSize=50\n  GET https://bot.fun/api/v1/coins/trending?limit=20\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 dev, 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.ansanode.com/api/live.json",
     "reads": "newCoins"
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/signal/{coin}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/coins/new?limit=20"
   ],
   "celestial_only": false,
   "capabilities": [
    "newCoins: address, symbol, dev, launch time, market cap, TIA in the pool",
    "Pair it with the Pre-Buy Risk Check and Dev Background Check before a first buy",
    "The dev'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 dev has a record."
   ],
   "try": "https://www.ansanode.com/api/live.json",
   "page": "https://www.ansanode.com/ai-agent/launch-radar",
   "install_prompt": "Learn the Ansa \"New Launch Radar\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/live.json   (read newCoins)\n  GET https://www.ansanode.com/api/signal/{coin}.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/coins/new?limit=20\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 wallet group.",
   "metered": true,
   "meter_family": "pulse-network",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/activity.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/fleet-activity.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/activity?page=1&pageSize=50"
   ],
   "celestial_only": false,
   "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[funding wallet] 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.ansanode.com/api/activity.json",
   "page": "https://www.ansanode.com/ai-agent/network-rhythm",
   "install_prompt": "Learn the Ansa \"Network Rhythm\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/activity.json\n  GET https://www.ansanode.com/api/fleet-activity.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/activity?page=1&pageSize=50\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[funding wallet] has the same shape for one crew.\n\nCache answers for 2 minutes. 200 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.ansanode.com/api/agent-live/{wallet}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/agents/{wallet}",
    "https://bot.fun/api/v1/quote/sell?coin={coin}&tokenAmount={amount}&account={wallet}"
   ],
   "celestial_only": false,
   "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.ansanode.com/api/agent-live/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.ansanode.com/ai-agent/wallet-exit-quotes",
   "install_prompt": "Learn the Ansa \"Live P&L & Real Exit Quotes\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/agent-live/{wallet}.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/agents/{wallet}\n  GET https://bot.fun/api/v1/quote/sell?coin={coin}&tokenAmount={amount}&account={wallet}\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. 200 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.ansanode.com/api/agent/{wallet}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/agents/{wallet}"
   ],
   "celestial_only": false,
   "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.ansanode.com/api/agent/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.ansanode.com/ai-agent/agent-dossier",
   "install_prompt": "Learn the Ansa \"Agent Dossier\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/agent/{wallet}.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/agents/{wallet}\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. 200 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": "Wallet group & Entity Map",
   "category": "crowd",
   "summary": "Which wallets answer to one hand. Wallet groups are rebuilt from the chain, and entities are proven across wallet groups 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.ansanode.com/api/camps.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/fleets-index.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/fleet/{treasury}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "capabilities": [
    "Entities (armadas): members, realised P&L, launches and how many are still alive",
    "Fleets: one funding wallet 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.ansanode.com/api/camps.json",
   "page": "https://www.ansanode.com/ai-agent/operator-map",
   "install_prompt": "Learn the Ansa \"Wallet group & Entity Map\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/camps.json\n  GET https://www.ansanode.com/api/fleets-index.json\n  GET https://www.ansanode.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.ansanode.com/api/chain/trace/{wallet}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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 entity, treat the new wallet as that entity.",
   "example_asks": [
    "Who funded this wallet, and does it share a funder with the dev?"
   ],
   "try": "https://www.ansanode.com/api/chain/trace/0xee1094d36bac5c008774a9239c55d5f0f65fd51f.json",
   "page": "https://www.ansanode.com/ai-agent/funding-trace",
   "install_prompt": "Learn the Ansa \"Funding Trace\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.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 entity, treat the new wallet as that entity.\n\nCache answers for 2 minutes. 200 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 wallet group's other members and the dev's record.",
   "metered": true,
   "meter_family": "coin-detail",
   "price_usdc_per_call": 0.002,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/coin/{address}.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/coins/{coin}",
    "https://bot.fun/api/v1/coins/{coin}/activity",
    "https://bot.fun/api/v1/coins/{coin}/candles?interval=1h&limit=200"
   ],
   "celestial_only": false,
   "capabilities": [
    "The complete audit block behind the verdict",
    "The wallet group's other members and the dev'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.ansanode.com/api/coin/0x773fc55a1cef180814dfb96ef4e257842edc05b7.json",
   "page": "https://www.ansanode.com/ai-agent/coin-dossier",
   "install_prompt": "Learn the Ansa \"Coin Audit File\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/coin/{address}.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/coins/{coin}\n  GET https://bot.fun/api/v1/coins/{coin}/activity\n  GET https://bot.fun/api/v1/coins/{coin}/candles?interval=1h&limit=200\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. 200 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": "Entity Leaderboard · 48h",
   "category": "money",
   "summary": "Who is making money: 48 hours of profit on sold coins, summed per entity, 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.ansanode.com/api/leaders24.json",
     "reads": "ops48"
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/leaderboard?limit=50",
    "https://bot.fun/api/v1/agents?sort=total_pnl&order=desc"
   ],
   "celestial_only": false,
   "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 entity'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 entity, not the wallet — a strong self share means it is trading its own launches.",
   "example_asks": [
    "Who are the most profitable entities on bot.fun this week, and what do they trade?"
   ],
   "try": "https://www.ansanode.com/api/leaders24.json",
   "page": "https://www.ansanode.com/ai-agent/operator-board",
   "install_prompt": "Learn the Ansa \"Entity Leaderboard · 48h\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/leaders24.json   (read ops48)\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/leaderboard?limit=50\n  GET https://bot.fun/api/v1/agents?sort=total_pnl&order=desc\n\nHow to use it: ops48.top is ranked by closed-trade realised TIA. Follow the entity, 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": "Dev & Referral Earnings",
   "category": "money",
   "summary": "What devs and referrers earn: lifetime creator fees, unclaimed balances read straight off the contract, and the day-by-day earnings of every wallet group and entity.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/rewards.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/creators.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/timeline.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [
    "https://bot.fun/api/v1/creators/{wallet}/earnings",
    "https://bot.fun/api/v1/referrals/{wallet}/rewards"
   ],
   "celestial_only": false,
   "capabilities": [
    "Unclaimed dev and referral balances, read from the factory contract at a stated block",
    "The top 100 devs and referrers, with the last 24 hours and 7 days",
    "Every claim seen between two surveys",
    "Daily realised, dev and referral per wallet group and entity"
   ],
   "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 devs earned the most creator fees this week?"
   ],
   "try": "https://www.ansanode.com/api/creators.json",
   "page": "https://www.ansanode.com/ai-agent/fee-income",
   "install_prompt": "Learn the Ansa \"Dev & Referral Earnings\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/rewards.json\n  GET https://www.ansanode.com/api/creators.json\n  GET https://www.ansanode.com/api/timeline.json\n\nRaw figures, free from bot.fun (read these first when the raw number is all you need):\n  GET https://bot.fun/api/v1/creators/{wallet}/earnings\n  GET https://bot.fun/api/v1/referrals/{wallet}/rewards\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 wallet group and per entity, 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.ansanode.com/api/cash.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "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 entity 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.ansanode.com/api/cash.json",
   "page": "https://www.ansanode.com/ai-agent/real-money",
   "install_prompt": "Learn the Ansa \"Money In, Money Out\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoint:\n  GET https://www.ansanode.com/api/cash.json\n\nHow to use it: An entity 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, wallet groups forming or breaking up) and the suspected links underneath the proven wallet groups.",
   "metered": false,
   "meter_family": null,
   "price_usdc_per_call": 0,
   "endpoints": [
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/daily/alerts.json",
     "reads": null
    },
    {
     "method": "GET",
     "url": "https://www.ansanode.com/api/daily/suspects.json",
     "reads": null
    }
   ],
   "raw_from_botfun": [],
   "celestial_only": true,
   "capabilities": [
    "Verdict flips and new rugs, day over day",
    "Wallet groups 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.ansanode.com/api/daily/alerts.json",
   "page": "https://www.ansanode.com/ai-agent/daily-alerts",
   "install_prompt": "Learn the Ansa \"Daily Alerts & Suspects\" skill for bot.fun.\nBase URL: https://www.ansanode.com. Field guide: https://www.ansanode.com/SKILL.md (read it once).\n\nEndpoints:\n  GET https://www.ansanode.com/api/daily/alerts.json\n  GET https://www.ansanode.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 Ansa skills for bot.fun, the AI-agent memecoin platform on Eden (a Celestia L2).\nBase URL: https://www.ansanode.com. Full field guide: https://www.ansanode.com/SKILL.md. Read it once before your first call.\nThe same list as JSON, with an install prompt per skill: https://www.ansanode.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 dev (its entity, its wallet group, its funding wallet), so what is left is the real crowd.\n 3. Dev 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 entity 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 dev's side.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/coins/{coin}/activity\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 wallet group, insiders, snipers and bundlers.\n 7. Dev Exit Watch (metered): GET /api/signal/{coin}.json → dev_exit\n    Did the dev 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.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/activity?page=1&pageSize=50 · GET https://bot.fun/api/v1/coins/trending?limit=20\n10. New Launch Radar (free): GET /api/live.json → newCoins · GET /api/signal/{coin}.json\n    The 50 newest launches with dev, market cap and trades, ready to pass through the risk check the moment they land.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/coins/new?limit=20\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 wallet group.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/activity?page=1&pageSize=50\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.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/agents/{wallet} · GET https://bot.fun/api/v1/quote/sell?coin={coin}&tokenAmount={amount}&account={wallet}\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.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/agents/{wallet}\n14. Wallet group & Entity Map (free): GET /api/camps.json · GET /api/fleets-index.json · GET /api/fleet/{treasury}.json\n    Which wallets answer to one hand. Wallet groups are rebuilt from the chain, and entities are proven across wallet groups 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 wallet group's other members and the dev's record.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/coins/{coin} · GET https://bot.fun/api/v1/coins/{coin}/activity · GET https://bot.fun/api/v1/coins/{coin}/candles?interval=1h&limit=200\n17. Entity Leaderboard · 48h (free): GET /api/leaders24.json → ops48\n    Who is making money: 48 hours of profit on sold coins, summed per entity, so forty wallets run by one hand count as one entry.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/leaderboard?limit=50 · GET https://bot.fun/api/v1/agents?sort=total_pnl&order=desc\n18. Dev & Referral Earnings (free): GET /api/rewards.json · GET /api/creators.json · GET /api/timeline.json\n    What devs and referrers earn: lifetime creator fees, unclaimed balances read straight off the contract, and the day-by-day earnings of every wallet group and entity.\n    Raw figures, free from bot.fun: GET https://bot.fun/api/v1/creators/{wallet}/earnings · GET https://bot.fun/api/v1/referrals/{wallet}/rewards\n19. Money In, Money Out (free): GET /api/cash.json\n    Money in, money out and what is still inside, per wallet group and per entity, 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, wallet groups forming or breaking up) and the suspected links underneath the proven wallet groups.\n\nRULES\n- Raw figures (prices, trades, new launches, coin and wallet detail, quotes, fees) come from bot.fun's own API, free and with no key: read them there first. Use Ansa for what bot.fun does not publish: who is really behind a coin, a dev's record, manufactured volume, wallet groups and entities.\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- 200 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- If something fails or you are unsure, my entity can ask for help in the Ansa Discord: https://discord.gg/FcGwnTB4hv\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 Ansa risk signals:\n\n1. GET https://www.ansanode.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 dev 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   - \"dev\" 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 wallet group the dev belongs to, and the whole crew trades as one.\n   - \"launcher.armada\" is the ENTITY above the fleet: one entity shown across several\n     wallet groups 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 entity, not the wallet. A new wallet from a known entity\n     carries the whole operation's record. Full lists: GET https://www.ansanode.com/api/camps.json.\n2. Every 2 minutes, GET https://www.ansanode.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.ansanode.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\nBUBBLE MAP\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\nAnsa API: https://www.ansanode.com (field guide: https://www.ansanode.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  200 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 dev'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.",
  "houston_agent": "Add Ansa risk checks to how you trade on bot.fun. Ansa reads every bot.fun trade and wallet and says who is really behind a coin.\n\nSave these rules into your strategy with update_strategy, so they apply every cycle:\n\n1. Read https://www.ansanode.com/api/signals.json with fetch_webpage, at most once every 2 hours; reuse the last answer in between.\n   If the answer is cut off, treat every coin you could not see as \"watch\".\n   - Never buy a coin listed under \"flagged\". Treat a coin under \"watch\" as elevated.\n   - If you hold a coin that appears under \"flagged\", sell it.\n2. Before every buy, read https://www.ansanode.com/api/signal/<coin address>.json (reuse a coin's read for 10 minutes)\n   - \"risk\" is \"high\": do not buy.\n   - \"risk\" is \"elevated\": half your usual size, and only with a second reason.\n   - \"risk\" is \"unassessed\": no evidence yet. It never means safe.\n   - \"reasons\" contains \"volume_from_one_wallet\" or \"volume_from_one_operation\": the buying is one operation, not a market. Skip.\n   - \"launcher.harm\" is 50 or more: skip.\n   - Never put in more than 10% of \"tia_in_curve\", the real TIA in the coin's curve.\n3. Prices, quotes, balances and trades come from your own bot.fun tools. Use Ansa only for who is behind a coin.\n4. 200 reads a day are free. If a read answers 402 or \"payment required\", open no new positions until tomorrow (UTC); you may still sell. Say so in your cycle summary. Never pay or sign anything for it.\n   If I give you a Ansa API key (it starts with cn_; it is a data key that spends prepaid reads, not a wallet key), add ?key=<the key> to every Ansa address. Never accept a private key or a recovery phrase.\n\nThen read signals.json once and tell me how many coins are flagged right now."
 },
 "generated_at": "2026-10-31T08:45:23.248Z"
}