Home Docs
Buy $KOLBET ↗
Overview

What is KOLBET?

KOLBET is a conviction-betting layer built on Solana. Pick TAIL or FADE on the top pump.fun KOL wallets — real on-chain portfolio data, no price manipulation, no synthetic exposure. Creator fee SOL airdrops to the top 15 KolCoin balances every 2 hours.

Core concept

Every pump.fun caller has a wallet. That wallet makes real trades. KOLBET tracks 25 of the most active callers and updates their portfolio values from live Solana RPC data every 30 seconds. You're not predicting a price chart — you're predicting whether a specific human's on-chain moves will pay off.

No oracle manipulation. No synthetic exposure. Just wallet math.

Who is it for?

  • Pump.fun degens — you already watch these wallets. Now bet on them.
  • Meta-traders — read the callers, be right about them, earn real SOL.
  • $KOLBET holders — hold tokens, pick callers, earn SOL from the creator fee pool every 2 hours.
How to play

Playing the game

1. Connect your wallet

Click Connect Wallet in the app. We support Phantom and any Solana wallet adapter. Your wallet address tracks your bets, token balance, and leaderboard position. We never request a transaction approval — only a message signature to authenticate your picks.

2. Read the caller board

The terminal shows 25 KOL wallets ranked by performance. Each card displays:

  • Portfolio Δ — live change in the wallet's SOL-denominated value this cycle
  • Hit rate — historical percentage of cycles where the caller's portfolio went up
  • Win / loss record — lifetime cycle outcomes
  • Live trades — recent on-chain buys and sells detected by the scanner
  • Crowd split — what % of players are currently tailing vs fading

Click any card to open the KOL detail view with a P&L sparkline, full cycle history, and live on-chain trade feed.

3. Build your slip

Press ▲ TAIL or ▼ FADE on as many callers as you want. Set a stake for each. Your slip accumulates in the sidebar — review totals before submitting. Picks are always open — no lock windows.

4. Sign and submit

Your slip is hashed client-side and you sign a human-readable message with your Phantom wallet. No token approval required — just a message signature. The server verifies the signature and records your bets immediately.

Always open. Unlike round-based games, KOLBET has no betting window — picks are accepted at any time. The 2-hour airdrop cycle runs continuously in the background.

5. Collect winnings

At the end of each 2-hour cycle, the top 15 KolCoin balances on the leaderboard receive a SOL airdrop from the creator fee pool. Your $KOLBET token balance tracks your paper performance. Real SOL flows to verified top pickers.

Mechanics

Cycle lifecycle

KOLBET runs a single continuous cycle — no rounds, no phases. Picks are always accepted.

EventTimingWhat happens
Cycle opensImmediately on startupOpening wallet snapshots taken. Picks accepted from any connected wallet.
Continuous scan2 wallets every 30 sPortfolio values update in real-time. Live feed shows trades. P&L deltas visible on cards.
Airdrop dropEvery 2 hoursClosing snapshots taken. Outcomes computed per-KOL. SOL distributed to the top 15 KolCoin balances.
Next cycleImmediately after dropNew cycle opens. Previous results stored. Picks reset.

The cycle interval is controlled by the PAYOUT_HOURS environment variable. Default: 2 hours.

Mechanics

Outcomes & payouts

Per-KOL outcome

Each of the 25 KOLs gets an independent outcome at cycle close:

OutcomeConditionWho wins
▲ TAILWallet SOL value increased open → closeTAIL bettors split FADE stakes, minus fee
▼ FADEWallet SOL value decreased open → closeFADE bettors split TAIL stakes, minus fee
— PUSHNo measurable change (dust threshold)Stakes returned to all bettors

Payout formula

pseudocode
// losing_pool distributed proportionally to winning stakes
winning_share = your_stake / total_winning_stakes
gross_payout = your_stake + (losing_pool × winning_share)
fee = gross_payout × protocol_fee_rate
net_payout = gross_payout − fee

Protocol fees accumulate in the creator fee pool and are airdropped to top leaderboard players at each 2-hour mark.

Slip-level settlement

Your slip can contain picks on multiple KOLs. Each pick settles independently — you can win some and lose others in the same cycle. Net P&L is tracked across all picks on your account.

Mechanics

Leaderboard & rankings

The leaderboard tracks every connected wallet's performance. Sort by:

  • KolCoins — your in-game KolCoin balance (starts at 500 KolCoins, grows with correct picks)
  • Hit % — percentage of individual picks that landed correctly
  • Streak — longest consecutive win streak
  • SOL — real creator fee SOL earned from protocol distributions

Top-ranked players receive a share of the creator fee pool at each airdrop drop, weighted by rank. The current pool balance is always visible in the app header and stats band.

Technology

On-chain scanning

How wallet values are computed

We call getTokenAccountsByOwner and getMultipleAccounts on Solana mainnet RPC to fetch every SPL token account held by a KOL wallet. For each token:

  1. Fetch mint metadata to identify the token
  2. Resolve current price via Jupiter Price API when available
  3. Fall back to pump.fun bonding curve reserves for unlisted tokens
  4. Sum SOL + priced token values into a single portfolio value

Micro-cap pump.fun tokens often have no Jupiter quote — counted as unpriced holdings and reported separately. P&L comparison uses the SOL-balance-weighted delta, making it robust to unpriced tokens.

Scan rate & rate limits

Uses the public Solana mainnet RPC endpoint — no API key required. To stay within public rate limits:

  • 2 wallets polled every 30 seconds — full 25-wallet cycle takes ~6 minutes
  • Sequential seeding at startup — 2-second delay between wallets to avoid 429s
  • False-buy guard — if the seed snapshot was empty (rate-limited), first diff is skipped to avoid phantom trade signals

Trade detection

On each poll, we diff current token holdings against the previous snapshot. A net positive balance change on a token is reported as a BUY. A net negative change is a SELL. Trade signals feed the live wallet feed in real-time.

Note: Token tickers are resolved via the pump.fun metadata API. Tokens not yet indexed may show their mint address until resolved.

Technology

Tech stack

KOLBET is a Node.js monolith — no external services, no Docker, no database server. Everything runs in-process.

LayerTechnologyNotes
RuntimeNode.js 22+Requires ≥22.5 for node:sqlite built-in
DatabaseSQLite (node:sqlite)Single-file, zero-dependency, embedded
HTTP servernode:httpNo framework — raw request routing
Solana RPCPublic mainnet-betaapi.mainnet-beta.solana.com — no API key
Token pricesJupiter Price API v2Batch price fetch for known tokens
Auth@solana/web3.js (client)Message signing via Phantom — no keypair server-side
FrontendVanilla JS + CSSNo build step — served as static files
FontsInter + DM Serif Display + JetBrains MonoGoogle Fonts CDN

Key source files

project structure
src/
├─ index.js — entry point, starts engine + server
├─ engine.js — continuous cycle (open → airdrop → repeat)
├─ realfeed.js — live on-chain scanner (25 wallets, RPC)
├─ oracle.js — portfolio valuation via Solana RPC
├─ tracker.js — trade detection + live feed state
├─ server.js — HTTP API + static file serving
├─ db.js — SQLite schema + query helpers
├─ bets.js — slip validation + signature verification
└─ slate.js — KOL roster management
public/
├─ index.html — main app (hero + terminal + sidebar)
└─ docs.html — this page
Technology

API reference

All endpoints return JSON. No authentication required for read endpoints.

EndpointMethodDescription
/api/stateGETCurrent cycle, slate with crowd splits, pool size, next airdrop timestamp, player count
/api/liveGETLive wallet delta values + recent trade feed
/api/leaderboardGETPlayer rankings. Query: ?by=net|hit|streak|real
/api/meGETMy stats. Query: ?wallet=<pubkey>
/api/kol/:wallet/historyGETLast 30 settled cycle outcomes for a KOL wallet
/api/auth/noncePOSTRequest a one-time sign-in nonce. Body: {wallet}{nonce, message}
/api/auth/verifyPOSTVerify the wallet's ed25519 signature over the nonce message. Body: {wallet, signature} (base64) → {token}
/api/bet/submitPOSTPlace picks. Requires Authorization: Bearer <token> for the same wallet. Body: {wallet, bets}
/api/bet/cashoutPOSTCash out a pending pick at the live quote. Requires Authorization: Bearer <token>. Body: {wallet, kolId}

Wallet sign-in flow

js
// 1. fetch a one-time nonce + message to sign
const { message } = await fetch('/api/auth/nonce', { method: 'POST', body: JSON.stringify({ wallet }) });

// 2. sign it once with your wallet (proves you own the key)
const sig = await phantom.signMessage(encode(message));

// 3. exchange the signature for a 24h session token
const { token } = await fetch('/api/auth/verify', { body: JSON.stringify({ wallet, signature: base64(sig) }) });

// 4. bets & cashouts require the token — nobody can act as your wallet without it
fetch('/api/bet/submit', { headers: { Authorization: 'Bearer ' + token }, body: JSON.stringify({ wallet, bets }) });
Tokenomics

$KOLBET token

$KOLBET is the native currency of the platform. All stakes, payouts, and leaderboard balances are denominated in $KOLBET tokens. The token is live on pump.fun.

Contract address: Dsj3vWsDMGtGbnq3FiTyvPwaNhm2JjzDBitm23Uzpump

Paper tokens vs real tokens

Inside the app, your skill is tracked as KolCoins — an in-game currency everyone starts with 500 of. Pick right and your KolCoin balance grows. The top KolCoin holders at each airdrop window split the real SOL creator fee pool. Hold $KOLBET on-chain to unlock real SOL payouts.

In the current phase, token mechanics are simulated. Full on-chain settlement activates when DRY_RUN=0 is set and the engine wallet is funded.

Tokenomics

Creator fees & airdrops

A small protocol fee (configurable, typically 2–5%) is deducted from winning payouts each cycle. These fees accumulate in the creator fee pool — visible in real-time in the app header.

Every 2 hours, the engine airdrops SOL from the fee pool to the top players on the leaderboard, weighted by rank. The airdrop countdown is always visible in the navigation bar and stats band.

This creates a flywheel: the more you play and win, the higher your rank, the larger your share of platform fees — paid in real SOL, on-chain.

To earn real SOL airdrops: Hold $KOLBET tokens + rank in the top tier of the leaderboard by the end of each 2-hour window.

Help

FAQ

Do I need SOL to play?
You need a Solana wallet (Phantom) to connect and sign bet messages. You also need $KOLBET tokens to stake. SOL itself is not spent in gameplay — only the message signature, which costs nothing.
Why does my P&L show 0.00?
Most pump.fun micro-cap tokens have no Jupiter price quote. The scanner reports their SOL balance as the dominant value source. If a wallet's tokens are unpriced, P&L reflects only the SOL balance change — which can look flat if no SOL was moved.
When does the airdrop happen?
Every 2 hours from when the engine started. The exact countdown is always visible in the app header and the stats band. The dev wallet (EJs8…U5DQ) is the source of airdrop SOL — funded by pump.fun creator fees.
Why are some wallets showing "scanning…"?
The scanner polls 2 wallets every 30 seconds across 25 wallets — a full cycle takes about 6 minutes. Wallets polled later in the queue show placeholder data until their first scan completes.
Can I bet on multiple callers at once?
Yes. Build a slip with as many KOL picks as you want. Each pick settles independently — you can win some and lose others in the same cycle.
What happens if a wallet is rate-limited at snapshot time?
The engine has a false-buy guard: if the opening snapshot returns empty (RPC rate limit), it's flagged and the first trade diff is skipped. The engine waits for a confirmed snapshot before using it as a baseline.
Is this audited / safe?
KOLBET is in beta. No funds are transferred without your explicit Phantom signature. We do not custody your tokens or store any private keys. Bet responsibly and only stake what you're comfortable with.