{"openapi":"3.0.3","info":{"title":"ShitTag Canonical Solana API","version":"0.2.0","description":"REST API for ShitTag.fun (beta, devnet): Solana meme token launchpad on an on-chain bonding curve (1.25% fee), NFT domains and SocialFi. Money moves only through user-signed transactions of Anchor program DBrRh9ygeVXeTS7YRqHmhk79mG2RhxbQ3E6XaGZnXYKV. Screens without a real data source answer { ok:false, error: not_available_yet } in production. Mainnet is not live; it will use a multisig treasury."},"x-protocol-treasury":{"anchorProgramId":"DBrRh9ygeVXeTS7YRqHmhk79mG2RhxbQ3E6XaGZnXYKV","cluster":"devnet","treasuryGovernance":"Multisig treasury planned for mainnet (not live); devnet uses the bootstrap authority"},"servers":[{"url":"https://shittag.fun/api","description":"shittag.fun (beta, Solana devnet)"}],"paths":{"/health":{"get":{"summary":"Cluster health & telemetry status","responses":{"200":{"description":"API and cluster operational status"}}}},"/tokens/solana-og-catalog/live":{"get":{"summary":"Solana OG token catalog (not_available_yet in production: no real data source)","responses":{"200":{"description":"{ ok:false, error: not_available_yet } in production"}}}},"/tokens/verification/live/{symbolOrMint}":{"get":{"summary":"Token verification checklist (not_available_yet in production)","parameters":[{"name":"symbolOrMint","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"{ ok:false, error: not_available_yet } in production"}}}},"/tokens/verification/verify-live":{"post":{"summary":"Retired (410): no off-chain verification badges are issued","responses":{"410":{"description":"Retired route"}}}},"/shit-token/hub/live":{"get":{"summary":"Official $SHIT Protocol Token & Tokenomics Hub (/shit-token) live telemetry","responses":{"200":{"description":"$SHIT chain facts: 1B fixed supply, decimals, the mint and its mint/freeze authority read with getMint. Market data, burns and buyback figures are not_available_yet (the program routes 30% of the treasury's SOL revenue to an on-chain buyback vault by default)."}}}},"/tokenomics/shit-supply":{"get":{"summary":"Planned $SHIT allocation (TOK Plan A 30/5/10/4/16/20/15) and burn figures (not_available_yet in production)","responses":{"200":{"description":"{ ok:false, error: not_available_yet } in production"}}}},"/shit-token/burn-buyback-live":{"post":{"summary":"Retired (410): buyback & burn runs on-chain (execute_buyback_and_burn from the program's buyback vault)","responses":{"410":{"description":"Retired route"}}}},"/launches":{"get":{"summary":"List bonding curve launches (indexer mirror of on-chain launches)","responses":{"200":{"description":"Array of active token pools and graduation status"}}},"post":{"summary":"Retired (410): launches are created on-chain from the creator's wallet (chain action via /chain/actions/prepare)","responses":{"410":{"description":"Retired route"}}}},"/launches/{launchId}/buy":{"post":{"summary":"Retired (410): curve buys are user-signed on-chain transactions (chain action via /chain/actions/prepare)","parameters":[{"name":"launchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"410":{"description":"Retired route"}}}},"/launches/{launchId}/sell":{"post":{"summary":"Retired (410): curve sells are user-signed on-chain transactions (chain action via /chain/actions/prepare)","parameters":[{"name":"launchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"410":{"description":"Retired route"}}}},"/launches/{launchId}/refund":{"post":{"summary":"Retired (410): failed-launch refunds (75% of the pro-rata remaining escrow; 25% to the Rekt-Fest pool, no lottery) are claimed on-chain","parameters":[{"name":"launchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"410":{"description":"Retired route"}}}},"/trading-wallet/swap":{"post":{"summary":"Retired custodial route (410): there is no custodial trading wallet; every trade is signed by the user's wallet","responses":{"410":{"description":"Retired route"}}}},"/trading-wallet/mint-domain":{"post":{"summary":"Retired custodial route (410): domains are registered on-chain from the user's wallet (/domains/mint/prepare)","responses":{"410":{"description":"Retired route"}}}},"/nft/domain/{domain}/metadata.json":{"get":{"summary":"Metaplex Core compliant dynamic NFT metadata","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Standard Solana NFT metadata JSON"}}}},"/nft/domain/{domain}/image.svg":{"get":{"summary":"Dynamic vector SVG domain passport identity card","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"SVG XML image format"}}}},"/og/pnl/{domain}/{token}":{"get":{"summary":"OpenGraph share card (production serves a neutral card without PnL figures)","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}},{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Neutral share card SVG"}}}},"/socialfi/posts":{"get":{"summary":"Fetch live Bullshit feed posts"},"post":{"summary":"Publish post with callouts, domain tags, and attachments"}},"/socialfi/tip":{"post":{"summary":"Retired (410): no off-chain tips"}},"/socialfi/raids/active":{"get":{"summary":"X raids (not_available_yet: out of scope, no raid bounties are offered)"}},"/socialfi/raids/submit-proof":{"post":{"summary":"Retired (410): no raid bounties are offered"}},"/say-hi/sessions":{"get":{"summary":"Your Say Hi inbox / outbox ($SHIT intro requests; wallet session required)"},"post":{"summary":"Retired: Say Hi opens on-chain (chain action say-hi-open, $SHIT escrow)"}},"/admin/treasury-telemetry":{"get":{"summary":"Treasury telemetry (not_available_yet in production)"}},"/admin/sweep-treasury":{"post":{"summary":"Retired: fees are paid to the treasury on-chain inside each transaction"}},"/webhooks/solana":{"post":{"summary":"Helius / Solana cluster enhanced transaction ingestion"}},"/admin/circuit-breaker":{"get":{"summary":"Check emergency killswitch and trading halt status"}},"/v1/bot/security-policy":{"get":{"summary":"Bot API v1 security policy (not_available_yet in production)","responses":{"200":{"description":"Security policy, HMAC signing spec, rate limits, and builder fee split"}}}},"/v1/bot/api-keys/generate":{"post":{"summary":"Generate a scoped, SHA-256 hashed Bot API Key & HMAC Secret with per-trade and daily SOL spend caps (No withdraw scope allowed)","responses":{"200":{"description":"One-time raw apiKey + apiSecret and configured risk limits"}}}},"/v1/bot/api-keys/{identifier}":{"get":{"summary":"List masked Bot API keys, active scopes, and 24h SOL spend counters for an identity","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Masked API key inventory"}}}},"/v1/bot/api-keys/revoke":{"post":{"summary":"Instant kill-switch to revoke a Bot API key by keyId or apiKey","responses":{"200":{"description":"Key revoked confirmation"}}}},"/v1/trade-local":{"post":{"summary":"Retired (410): not live","responses":{"410":{"description":"Retired route"}}}},"/v1/trade":{"post":{"summary":"Retired (410): no server-executed trades; every trade is signed by the user's wallet","responses":{"410":{"description":"Retired route"}}}},"/v1/create-token":{"post":{"summary":"Retired (410): launches are created on-chain from the creator's wallet","responses":{"410":{"description":"Retired route"}}}},"/v1/builder/stats/{builderTag}":{"get":{"summary":"Builder referral stats (not_available_yet in production; the on-chain referral pays 15% of the protocol fee share inside each transaction)","parameters":[{"name":"builderTag","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"{ ok:false, error: not_available_yet } in production"}}}},"/v1/tokens":{"get":{"summary":"On-chain launches mirrored by the indexer (price, market cap, curve %, 24h volume, holders)","responses":{"200":{"description":"Indexer-mirrored on-chain launches"}}}},"/v1/tokens/{symbolOrMint}":{"get":{"summary":"One indexer-mirrored on-chain launch by symbol or mint","parameters":[{"name":"symbolOrMint","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Single token bonding curve state"}}}},"/v1/quote":{"get":{"summary":"Simulated quote (not_available_yet in production; quote from the chain pool via /chain/actions/prepare)","responses":{"200":{"description":"Deterministic buy/sell quote"}}},"post":{"summary":"Simulated quote (not_available_yet in production; quote from the chain pool via /chain/actions/prepare)","responses":{"200":{"description":"Deterministic buy/sell quote"}}}},"/v1/trades/recent":{"get":{"summary":"Recent on-chain trades from the indexer (real signatures; operator bots are marked)","responses":{"200":{"description":"Recent executed trades list"}}}}}}