Docs
Build on KICKED.
Read the protocol state, launch coins programmatically, or verify any gift receipt yourself on Solana.
All coins
Every KICKED coin with live market cap, bonding-curve progress, queued fees and gifted subs, plus every gift receipt. Indexed from Solana, cached for 30 seconds.
GET/api/coins
{
"coins": [{
"handle": "xqc",
"mint": "…pump",
"symbol": "XQC",
"marketCapUsd": 8412.33,
"progress": 0.12,
"pendingSol": 0.041,
"pendingSubs": 1,
"subsGifted": 14,
"feesSol": 0.62
}],
"gifts": [{ "handle": "xqc", "subs": 14, "lamports": 579000000, "signature": "…" }],
"creatorFeeBps": 30
}Launch a coin
Uploads the image and metadata to IPFS and returns a create_v2 (+ buy_v2 dev buy) transaction, already signed by the fresh mint. The creator is the streamer's vault key. Your wallet signs and you post it to /api/launch/submit.
POST/api/launch/prepare
multipart/form-data
handle xqc
name xQc Coin
symbol XQC
description … (optional)
devBuy 0.1 (SOL, 0 for none)
user <wallet pubkey>
image <png | jpg | gif | webp, ≤ 4 MB>
// → 200
{ "tx": "<base64 v0 tx>", "mint": "…", "creator": "…", "handle": "xqc" }Submit a launch
Relays the wallet-signed transaction to Solana and waits for confirmation. Only KICKED transactions are accepted.
POST/api/launch/submit
{ "tx": "<base64 signed tx>" }
// → 200
{ "signature": "…" }Kick lookup
Server-side proxy to Kick for avatars, banners, followers and live status.
GET/api/kick/channel/xqc
{
"slug": "xqc",
"username": "xQc",
"avatar": "https://files.kick.com/…",
"banner": "https://files.kick.com/…",
"followers": 1118894,
"verified": true,
"live": { "viewers": 10206, "title": "…", "category": "GTA V" }
}Protocol constants
chainsolana-mainnet
launchpadpump.fun (create_v2 + buy_v2)
creatored25519 seed = sha256(master ‖ "kicked:creator:v1:" ‖ handle)
launch_memokicked:launch:<handle>
gift_memokicked:gift:<handle>:<subs>:<lamports>
one_coin_per_streamerearliest launch wins