Developer Hub · v0.2.3 (Solana Canonical)

ShitTag Protocol & REST API Reference

Read indexer-mirrored launches and trades, and prepare user-signed Solana transactions (domain mints, curve trades, marketplace, Say Hi) that your own wallet signs. Devnet demo: screens without real data answer not_available_yet; test tokens have no value.

Base URL & Architecture

All API requests are made over HTTPS to:

https://shittag.fun/api

⚡ Protocol Economics, Domain Tiers, $SHIT Tokenomics & Launch Outcomes

At-a-glance program values: domain registration tiers, welcome $SHIT airdrops (halving applied on-chain), launch supply (74% curve / 21% Raydium LP / 5% creator), graduation vs. failure settlement, and protocol fee splits:

Domain Tier Length Mint / Renewal Welcome Airdrop Launch Rights Creator 5% Tier Lock Graduation Target (SOL) Creator Fee
God Mode 3 Letters (abc.shit) 1.00 SOL 2,500 $SHIT 5 Launches 6 Hours 200 SOL* 0.30% of curve volume
Elite 4 Letters (dege.pump) 0.50 SOL 1,250 $SHIT 3 Launches 8 Hours 333 SOL* 0.30% of curve volume
Premium 5 Letters (alpha.rekt) 0.25 SOL 600 $SHIT 2 Launches 12 Hours 500 SOL* 0.30% of curve volume
Standard 6+ Letters (solana.whale) 0.10 SOL 250 $SHIT 1 Launch 24 Hours 666 SOL* 0.30% of curve volume

* Program defaults (the planned mainnet values); the graduation target is the per-tier SOL target in the on-chain config (SOL pairs only), and the devnet demo's config uses targets of a few SOL so faucet SOL can graduate a launch. The creator lock starts at graduation.

Lifecycle / Fee Event Rate / Allocation Settlement Mechanics
Domain Mint & Renewal Split 80% / 20% 80% to the protocol treasury (multisig treasury planned for mainnet; a bound referrer receives 15% of this part) · 20% (SOL) to the Rekt-Fest pool; USDC fees go to the treasury.
Bonding Curve Trading Fee 1.25% Total 0.75% treasury · 0.30% token creator (accrues in the on-chain creator fee vault; the creator claims it) · 0.20% Rekt-Fest pool.
100% Graduation (Success) 74% / 21% / 5% Net raised SOL (minus the 0.255 SOL migration budget) + 210M tokens migrate to Raydium CPMM with 100% of LP burned; buyers claim their 740M curve tokens after migration; the creator's 50M (5%) unlock after graduation + tier lock + migration. Creator clean-launch reward: up to 25,000 $SHIT (scaled down for SOL targets below 100 SOL), escrowed from the reward vault after the migration, released half at day 7 and half at day 30 while the creator withdrew at most 20% of its allocation and the pool keeps 50% of its SOL.
Failed Launch (7-day deadline) 75% / 25% If the curve does not graduate within 7 days, each buyer claims 75% of its pro-rata share of the remaining escrow; the other 25% goes to the Rekt-Fest pool (distributed in weekly on-chain epochs in proportion to recorded losses — no lottery). The 1.25% fees are not refunded; claims stay open for at least 180 days, then the unclaimed rest can be swept into the Rekt-Fest pool. A capped $SHIT consolation amount is paid with the refund; the launch creator receives no consolation (its own buys are refunded like every buyer's). Buys made in the last 24 hours before the deadline are refunded the same way but add no Rekt-Fest weight and earn no consolation.
$SHIT Burns 100% Burn SocialFi reactions and post/profile boosts burn the $SHIT spent. By default 30% of the treasury's SOL revenue goes to the on-chain buyback vault for $SHIT buyback & burn (only once a $SHIT pool exists; $SHIT is not trading).

🔒 On-Chain Program & Treasury

Every domain registration, bonding curve swap, 75% failed-launch refund, and Raydium graduation executes deterministically through our canonical Solana Anchor smart contract. On mainnet the protocol treasury is planned as a multisig treasury; on devnet the bootstrap authority holds it. For user safety—and in accordance with Web3 industry standards—internal treasury vault addresses are not displayed on public surfaces; never send SOL, USDC, or tokens directly to any vault address outside the official application or Anchor program instructions.

On-Chain Component Identifier / Governance Standard Purpose
Anchor Program ID DBrRh9ygeVXeTS7YRqHmhk79mG2RhxbQ3E6XaGZnXYKV Deterministic Solana Anchor smart contract for bonding curves, 75% failed-launch refunds, and Metaplex NFT domain registration.
Protocol Treasury Vault Program-routed treasury Receives protocol fees inside each program instruction: 80% of the domain fee, 0.75% of every curve trade, 2.8 of the 3.5 percentage points of the marketplace fee, and the unspent migration budget (a bound referrer's 15% and, for SOL, the buyback vault's 30% of the rest are paid out of these shares in the same instruction).
Multisig Governance Multisig treasury planned for mainnet Planned mainnet treasury and config authority. Team tokens: planned lock with the program's vesting instruction (12-month cliff + 24-month linear).

📡 Integration Kit for Terminals & Indexers

Everything a trading terminal, data provider or bot needs to follow SHITTAG launches from on-chain data alone. The program is currently on devnet; the mainnet program id is published here at launch. Questions or a listing request: security@shittag.fun (security) or the official X account.

1. Program & IDL

ItemValueNotes
Program id (devnet)DBrRh9ygeVXeTS7YRqHmhk79mG2RhxbQ3E6XaGZnXYKVAnchor 0.31, upgradeable.
Anchor IDL/idl/shittag_registry.jsonInstructions, accounts, events and errors; regenerated from the program source on every program change.
security.txtEmbedded in the program binaryShown by Solana explorers; also at /.well-known/security.txt.
Token standardSPL Token, 6 decimals, 1,000,000,000 fixed supplyEnforced by the program at launch creation: mint and freeze authority revoked, whole supply in the program's claim vault. New launches carry on-chain Metaplex metadata (name, symbol, /api/token-metadata/<mint>.json).

2. Launch lifecycle (anti-rug by design)

During the bonding phase buyers hold receipts (a position account inside the program), not SPL tokens. No launch token exists outside the program before its liquidity exists, so no pre-minted or airdropped supply can be sold on buyers before graduation; a sell before graduation goes back into the curve at the curve price (like every holder's). The buy that sells the last curve receipt graduates the launch in the same transaction; the liquidity then moves to a Raydium CPMM pool with 100% of the LP burned, and buyers claim their tokens. A launch that misses its deadline fails and buyers reclaim 75% of their escrow on-chain.

  1. Forming: curve buys and sells of receipts (SOL pairs only; the program refuses new USDC launch pools). Track with PositionBought / PositionSold.
  2. Graduated: LaunchGraduated, emitted inside the final buy.
  3. Migrated: LaunchMigrated carries the Raydium CPMM pool id; from here the token trades on a standard AMM pool that DEX screeners and aggregators index directly.
  4. Failed: LaunchFailed, then UnmigratedRefundClaimed / failure settlement claims.

3. Events (Anchor emit!, decode with the IDL)

EventKey fieldsUse
LaunchPoolCreatedcreator, domain, launch_pool, token_mint, pair_asset, sniper_max_wallet_amountNew launch feed.
PositionBoughtbuyer, launch_pool, amount_paid, escrow_amount, receipt_units, pool_raised_amount, pool_receipt_units_sold, graduatedEvery buy (manual, limit order, copy trade) with the resulting pool state: price, progress and volume from events alone.
PositionSoldbuyer, launch_pool, refund_amount, gross_output, receipt_units, pool_raised_amount, pool_receipt_units_soldEvery sell with the resulting pool state.
LaunchGraduatedlaunch_pool, observed_raised_usdc, graduated_at“About to list” signal.
LaunchMigratedlaunch_pool, amm_pool, lp_mint, lp_burned, token_amount, quote_amountRaydium CPMM pool to index; LP burned in full.
LaunchFailedlaunch_pool, failed_at, forceLaunch closed; refunds open.
CreatorFeeAccrued / CreatorFeesClaimedsee IDLCreator revenue from the claimable creator vault.
LaunchTokenMetadataSetlaunch_pool, token_mint, metadata, name, symbol, uriOn-chain Metaplex metadata of the launch token (create_launch_pool_v2; update authority = program PDA ["token-metadata-authority"]).
CleanLaunchRewardStarted / CleanLaunchRewardSettledlaunch_pool, creator, amount, tranche, released, reasonClean-launch reward: escrowed after migration, released at day 7 / day 30 or forfeited (creator withdrew > 20% of its allocation, or the pool lost half its SOL).
CreatorAllocationWithdrawncreator, launch_pool, amount, remainingEvery withdrawal of the creator allocation from program custody.

Curve progress: a launch graduates when 740,000,000 receipts (740,000,000 × 106 raw units) are sold; pool_receipt_units_sold divided by that is the bonding progress. The full account layout (LaunchPool, BuyerPosition) is in the IDL.

4. Live feed, token metadata, SDK & trust data

Public, read-only, served from the on-chain index (no session, no key).

EndpointFormatWhat it returns
GET /api/stream/launches Server-Sent Events Live events launch_created, trade (bonding curve + recorded Raydium swaps), graduated, migrated; one JSON object per data: line. Filter with ?types=launch_created,trade. No history replay (use the REST reads). Operator-bot activity carries isBot: true. Limits: 3 open streams and 20 connects per minute per IP; a client that stops reading is disconnected. A : ping comment every 15 s keeps proxies open; reconnect with EventSource (retry 5 s).
GET /api/token-metadata/<mint>.json Metaplex JSON The document the token's on-chain Metaplex uri points at (name, symbol, description, image). Launches created with create_launch_pool_v2 carry on-chain metadata (update authority = the program PDA ["token-metadata-authority"]); launches created before it have none on chain.
GET /api/stats/rug-rate JSON Share of tokens dead after day 1, share where the creator sold most of its supply in the first 7 days, graduation rate, total SOL refunded; operator-bot launches separately; definitions included.
GET /api/deployers/<wallet | name.shit> JSON Deployer record: launches, graduation rate, rug count (rug = the creator sold more than half of the tokens it held within 7 days of creation), reputation score 0-100 with its formula.
GET /api/chain/launches/<id>/clean-reward JSON The clean-launch reward record read from chain: up to 25,000 $SHIT (scaled down for SOL targets below 100 SOL), escrowed after the migration, released at day 7 / day 30 only while the creator withdrew at most 20% of its allocation before each checkpoint and the pool kept 50% of its migrated SOL (time-weighted over the last hour; liquidity added after the migration does not count).
GET /api/chain/launches/<id>/rugcheck JSON RugCheck summary of a graduated token, fetched and cached by our API (mainnet only; devnet answers mainnet_only).
/idl/shittag_registry.json Anchor IDL Also published on chain (Solana Program Metadata, readable by explorers). The TypeScript SDK @shittag/sdk (packages/sdk) builds buy / sell instructions, decodes LaunchPool / BuyerPosition / CleanLaunchReward and parses every program event from transaction logs.

✓ 5-Criteria Verified Token Standard

Not available yet: in production the verification endpoints answer not_available_yet (read) or 410 (attest), and no ✓ VERIFIED badge is issued. The intended standard requires all 5 of 5 security criteria:

# Criterion Key Requirement
1 mintAuthorityRevoked SPL Token Mint Authority is permanently revoked (null), preventing any post-launch supply inflation.
2 freezeAuthorityRevoked SPL Token Freeze Authority is permanently revoked (null), preventing wallet blacklisting or honeypots.
3 lpBurnedOrLocked 100% of Raydium CPMM / PumpSwap LP tokens are permanently burned or locked in the canonical graduation vault.
4 safetyScoreMin85 Composite on-chain safety & holder-distribution score is ≥ 85 / 100.
5 noHoneypotOrBundleRisk Zero malicious sniper bundle concentration (≤ 15% top-10 cluster) and verified two-way swap execution.

$SHIT Protocol Token Hub & Tokenomics (/shit-token)

The dedicated https://shittag.fun/shit-token page and its API endpoints (GET /api/shit-token/hub/live and GET /api/tokenomics/shit-supply) expose chain facts for the native $SHIT token (1,000,000,000 fixed supply, decimals, mint and freeze authority read with getMint). Market data and burns answer not_available_yet until they exist. There is no staking. Buyback & burn: by default 30% of the treasury's SOL revenue goes to the program's on-chain buyback vault; it is swapped and burned only once a $SHIT pool exists. GET /api/tokenomics/shit-supply answers not_available_yet in production.

1. Canonical 1,000,000,000 $SHIT Supply Allocation (30% / 5% / 10% / 4% / 16% / 20% / 15%)

Vault / Pool Share Allocation ($SHIT) On-Chain Custody & Release Policy
Rewards Vault (program) 30% 300,000,000 $SHIT Reward vault (program PDA) · welcome amounts on first domain registrations by tier (halving applied on-chain), social rewards (at most half of the $SHIT burned by the reaction or boost), the graduation creator reward and failed-launch consolation drops. No raid bounties. Rekt-Fest pays SOL from its own pool, not from this vault.
Campaign Airdrop S1 5% 50,000,000 $SHIT Held by the team multisig for the devnet campaign airdrop: eligible wallets claim on mainnet, from 24 hours after the $SHIT pool opens. 100 to 250,000 $SHIT per wallet; points do not guarantee any allocation. Planned claim: 10% at claim, the rest unlocks daily over 90 days. Unclaimed $SHIT is burned after the deadline.
Future Seasons 10% 100,000,000 $SHIT Locked with the program's vesting instruction · 6-month cliff + 18-month linear · later seasons and ecosystem rewards.
Raydium SHIT/SOL Pool 4% 40,000,000 $SHIT 40M $SHIT + 20 SOL in a Raydium CPMM pool · 100% of the pool's LP tokens burned.
Liquidity Reserve 16% 160,000,000 $SHIT Locked with the program's vesting instruction for 24 months; afterwards only added to the pool (LP burned).
Protocol Treasury 20% 200,000,000 $SHIT Locked with the program's vesting instruction · 6-month cliff + 30-month linear. By default 30% of the treasury's net SOL revenue goes to the on-chain buyback vault for buyback & burn.
Core Team & Security Lock 15% 150,000,000 $SHIT Locked with the program's vesting instruction · 12-month cliff + 24-month linear.

2. Welcome Airdrop Halving (on-chain)

The program pays the welcome airdrop on a first registration, with a per-wallet cooldown and 24h limit from the on-chain config, and an on-chain registration counter applies this halving:

Halving Epoch Registered Tag Range Multiplier 3L God (1.00 SOL) 4L Elite (0.50 SOL) 5L Premium (0.25 SOL) 6+L Standard (0.10 SOL)
Epoch 1 (Genesis) 1 – 100,000 100% 2,500 $SHIT 1,250 $SHIT 600 $SHIT 250 $SHIT
Epoch 2 (Halving #1) 100,001 – 500,000 50% 1,250 $SHIT 625 $SHIT 300 $SHIT 125 $SHIT
Epoch 3 (Halving #2) 500,001 – 2,000,000 10% 250 $SHIT 125 $SHIT 60 $SHIT 25 $SHIT
Epoch 4 (Halving #3) 2,000,001+ 2% 50 $SHIT 25 $SHIT 12 $SHIT 5 $SHIT

Machine-Readable OpenAPI v3

We publish a full, compliant OpenAPI v3 specification suitable for generating Swagger UI, Postman collections, or client SDKs in TypeScript, Python, Go, and Rust.

📄 View OpenAPI v3 Schema (JSON) Open $SHIT Token Hub

Authentication & Rate Limits

Most read-only market discovery endpoints (/tokens, /tokens/verification/live/:sym, /tokens/solana-og-catalog/live, /shit-token/hub/live) are publicly queryable without authentication tokens.

Protected actions need a session: sign the sign-in message of POST /api/auth/challenge with your Solana wallet (Ed25519) and send it to POST /api/auth/session. The answer sets an HttpOnly session cookie; send it with the following requests:

Cookie: shittag_wallet_session=<set by POST /api/auth/session>
GET /api/tokens/verification/live/{symbolOrMint}

Not available yet (answers not_available_yet in production). Intended to return the 5-Criteria ✓ VERIFIED security audit for any ShitTag or Solana OG token (Mint Authority revoked, Freeze Authority revoked, LP Burned/Locked, Safety Score ≥ 85, and No Honeypot/Bundle Risk).

curl -X GET "https://shittag.fun/api/tokens/verification/live/SHIT" \
  -H "Accept: application/json"
POST /api/tokens/verification/verify-live

Retired (answers 410): no verification badges are issued.

curl -X POST "https://shittag.fun/api/tokens/verification/verify-live" \
  -H "Content-Type: application/json" \
  -d '{
    "tokenSymbol": "BONK",
    "requester": "alpha.shit"
  }'
GET /api/tokens/solana-og-catalog/live

Not available yet (answers not_available_yet in production). Intended to return the Solana OG tokens (SHIT, BONK, WIF, POPCAT, PENGU, FARTCOIN, GOAT, MEW, BOME, PNUT, MOODENG, GIGACHAD, AI16Z, ACT, FWOG) with verified status and compact market cap metrics.

curl -X GET "https://shittag.fun/api/tokens/solana-og-catalog/live" \
  -H "Accept: application/json"
GET /api/shit-token/hub/live

Returns live telemetry for the official $SHIT Protocol Token Hub (/shit-token). In production it returns chain facts only: total supply (1B), decimals, the mint and its mint/freeze authority (read with getMint), and marketData: "not_available_yet". There is no staking.

curl -X GET "https://shittag.fun/api/shit-token/hub/live" \
  -H "Accept: application/json"
POST /api/shit-token/burn-buyback-live

Retired (answers 410). Buyback & burn runs on-chain: by default 30% of the treasury's SOL revenue goes to the program's buyback vault.

curl -X POST "https://shittag.fun/api/shit-token/burn-buyback-live" \
  -H "Content-Type: application/json" \
  -d '{
    "identifier": "whale.shit",
    "solAmount": 0.25
  }'
GET /api/launches

Returns the published launch rules (supply split, the 1.25% fee split, anti-sniper window and cap, deadline, refund rate) with example quotes, and every launch with its indexed market metrics. It takes no query parameters (no filter, no paging).

curl -X GET "https://shittag.fun/api/launches" \
  -H "Accept: application/json"
GET /api/tokens/verification/live/{symbolOrMint}

Not available yet (answers not_available_yet in production; see the verification card above). For an indexed launch's curve progress, price, holders and 24h flow use GET /api/tokens/live-telemetry/:symbolOrMint below.

curl -X GET "https://shittag.fun/api/tokens/verification/live/PLUNG" \
  -H "Accept: application/json"
GET /api/swap/quote-live

Not available yet (answers not_available_yet in production). Curve quotes are computed by the program's own math: the TypeScript SDK (@shittag/sdk, buildBuyInstruction / buildSellInstruction) returns the exact quote with the instruction.

curl -X GET "https://shittag.fun/api/swap/quote-live?tokenSymbol=PLUNG&side=buy&amountSol=1.5&slippageBps=100" \
  -H "Accept: application/json"
POST /api/swap/execute-live

Retired custodial swap (answers 410). Trades are user-signed on-chain transactions; the program routes the 0.75% treasury share of the 1.25% curve fee.

curl -X POST "https://shittag.fun/api/swap/execute-live" \
  -H "Content-Type: application/json" \
  -d '{
    "identifier": "alpha.shit",
    "tokenSymbol": "PLUNG",
    "side": "buy",
    "amountSol": 0.5
  }'
POST /api/trading-wallet/mint-domain

Retired custodial route (answers 410): domains are registered on-chain from the user's own wallet (98 public TLDs in 6 categories on devnet, e.g. .shit, .pump, .bonk, .whale, .ai, .chad, .mbo, .420). The program pays the welcome $SHIT (devnet test tokens) by tier and splits the fee 80% treasury / 20% (SOL) to the Rekt-Fest pool; USDC fees go to the treasury.

curl -X POST "https://shittag.fun/api/trading-wallet/mint-domain" \
  -H "Content-Type: application/json" \
  -d '{
    "identifier": "alpha.shit",
    "domain": "degen.pump"
  }'
GET /api/nft/domain/{domain}/metadata.json

Standard Metaplex NFT metadata resolver for sovereign ShitTag domains. Fully compatible with Solana wallets and NFT marketplaces.

curl -X GET "https://shittag.fun/api/nft/domain/degen.shit/metadata.json"
GET /api/tokens/live-telemetry/:symbolOrMint

Telemetry of an indexed on-chain launch (by mint or symbol, newest launch for a symbol): bonding curve progress, price (SOL and USD), market cap, 24h volume and change, holder and trade counts, 24h buys / sells, last trade time and migration state (source: "chain"). A symbol or mint without an indexed launch answers not_available_yet in production. Recorded trades come from the launch terminal reads, not from here.

const res = await fetch("https://shittag.fun/api/tokens/live-telemetry/PLUNG");
const { ok, telemetry } = await res.json();
console.log("Bonding Curve %:", telemetry.bondingCurvePct, "Price USD:", telemetry.priceUsd);
POST /api/webhooks/solana

Automated ingestion endpoint for Helius Solana enhanced transactions, reconciling on-chain Raydium migrations and escrow states.