CREATORCAP Get in
Documentation

How it works.

CREATORCAP turns every X account into a market: back the callers who are right, and see the receipts on everyone else. This page explains exactly how receipts are scored, what a cap is, where fees go, how owners claim, and how to use the API.

Overview

Three things exist for every public X account:

Access is invite only during the beta. Receipts pages are public; trading, claiming and launching caps need membership.

Receipts & scoring

What counts as a call

A public post that names a Solana token: a $TICKER, a mint address, or a link to pump.fun, GMGN, DEX Screener, Axiom, Fomo, Birdeye, Photon or Jupiter. Majors and fiat tickers (SOL, BTC, ETH, USDC, USDT, USD) are ignored. Links that point to a trading pair are resolved to the token before scoring.

How a call is scored

FieldDefinition
Price at postThe token price at the minute the post was published
PeakHighest price in the 24 hours after the post, as % change from the price at post
24h lowLowest price in the same window, as % change
Time to peakMinutes from the post to the peak
HitPeak reached 1.5× the price at post or more within 24 hours
Hit rateHits ÷ scored calls

Calls are scored after their 24-hour window closes. The leaderboard covers the last 30 days and lists accounts with at least five scored calls.

Clocked

A Clocked badge is a fact about a linked wallet's trades around a call. It never states a motive.

BadgeRule
Bought beforeA linked wallet bought the token within 30 minutes before the post
Sold afterA linked wallet sold 25% or more of what it held at post time within 30 minutes after the post

A wallet is linked when the account owner claims with it, or when the account publicly posted it as its own. Every badge links the transaction on Solscan. Owners can dispute a badge; disputed badges show "under review" until resolved.

Caps

Each handle's cap is an SPL token launched on a shared Meteora DBC config:

ParameterValue
Supply1,000,000,000, 6 decimals, immutable metadata
QuoteSOL (USDC and geo-fenced stock quotes later)
CurveStarts near 25 SOL market cap, graduates near 420 SOL
GraduationMigrates automatically to a Meteora DAMM v2 pool
Liquidity after graduation100% permanently locked
Pool creatorThe handle's vault PDA until the owner claims
A cap is a coin. It gives no rights in a person or company and its price can go to zero.

Fees

Every trade pays a flat 2% fee. Meteora's program keeps a fixed 20% of it; the rest is split between the pool creator and CREATORCAP.

ShareOf the feeOf the tradeGoes to
Creator40%0.80%The handle's vault until claimed, then the owner
Meteora20%0.40%DBC protocol
Holders20%0.40%Holder rewards pool, paid out time-weighted
Buyback20%0.40%Buys back and burns $NOCAP

Claiming

  1. Connect the wallet you want the fees in and press Claim with X.
  2. Sign in with X from the handle's account (scopes users.read tweet.read; we never post for you).
  3. CREATORCAP signs a short-lived attestation: this X user id may claim into this wallet, valid for 10 minutes.
  4. You send one transaction: an Ed25519 verification of that attestation, then cap_vault::claim. Only your wallet can use it.
  5. A crank calls release_pool for each of your caps, moving the creator role to your wallet. Accrued fees move with it, and you claim them directly from the pool.

The vault is keyed to your numeric X user id, not your handle, so renaming the account never loses the claim.

Invites

RuleValue
Codes per member3 per rolling 24 hours
Code lifetime48 hours, single use
FormatNOCAP-XXXX-XXXX
EligibilityX account 30+ days old with 25+ followers; one membership per X account
Invite treeEvery member shows who invited them and their depth
EnforcementCodes are never sold. Farming or selling codes revokes the seller and the codes they minted

No code? Join the waitlist. Codes are released to the front of the line every week.

$NOCAP

$NOCAP is the platform token. It launches after the invite-only beta proves invites and claims on mainnet, on CREATORCAP's own Meteora DBC config. From launch, 20% of every cap trade's fee buys back and burns $NOCAP. There is no presale and no points-for-deposits program.

Delisting

An account owner can ask to remove their handle. Until claims open, message @creatorcap from the account; we remove the receipts page and stop new caps the same day. After claims open, delisting is a button on the claim page.

API

The site runs on a public JSON API. The full contract is the OpenAPI 3.1 spec at /openapi.json.

MethodRouteWhat it doesLimit / cache
GET/api/statsLive counts: waitlist, handles, scored calls, members, invites used 24h, claimed handlesedge 30 s
GET/api/handles?q=Type-ahead, up to 8 handles by prefix60 / min
GET/api/handles/{handle}Receipts: summary, last 100 calls, Clocked facts, caps30 s
GET/api/leaderboard?by=hit_rate, median_peak or calls; 30 days, 5+ scored callsedge 60 s
POST/api/waitlist{handle} → position10 / hour
GET/api/invite/statusWhether redemption is open, with reasons—
POST/api/invite/check{code} → valid / used / expired / unknown20 / 10 min
POST/api/invite/redeem/start{code, wallet} → X sign-in URL; reserves the code 10 min20 / 10 min
GET/api/meMember profile, allowance, minted codes (cookie)—
POST/api/invitesMint an invite (member, 3 per rolling 24 h)allowance
GET/api/claim/statusWhether claims are open, with reasons—
POST/api/claim/start{wallet} → X sign-in URL10 / 10 min
GET/api/claim/attestation?session=Signed claim attestation for the on-chain claim—

Errors

Every error is JSON: {"error": "code", "message": "text"}, with reasons when a feature is closed. Browsers must call from the same origin; cross-origin writes get 403 cross_origin. Rate limits are per IP.

curl -s https://creatorcap.app/api/stats
curl -s "https://creatorcap.app/api/handles?q=ansem"
curl -s https://creatorcap.app/api/handles/ansem

Program

Claims run through cap-vault, an Anchor program. The vault never holds tokens: it only holds the creator role of each pool until the owner claims.

InstructionWhoWhat it checks
register_handleAnyoneCreates the vault PDA ["handle", x_user_id]; deterministic, so it cannot be squatted
claimOwner walletEd25519 attestation from the configured attestor over program id, X user id, wallet and expiry (≤ 15 min); vault unclaimed
release_poolAnyone (crank)Vault claimed; new creator equals the claimed wallet; calls Meteora DBC transfer_pool_creator
set_configAdmin (multisig)Rotate the attestor key or pause claims; cannot move a claimed vault

Meteora DBC program: dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN. The cap-vault program id is published here at mainnet deploy, with its upgrade authority held by a multisig.

Trust model. X sign-in can't be verified on chain, so the attestor key vouches for account ownership. It lives in Cloudflare's secret store, can be rotated, and claims can be paused. It can never move a handle that has already been claimed.

Risks

FAQ

Is my handle listed without my permission?

Receipts are built from public posts, like any analytics site. A cap can be launched for any public handle; its creator fees are held for the owner until they sign in with X and claim. Owners can ask to delist at any time.

What counts as a "hit"?

A call hits when the coin trades at 1.5× or more of the price at the time of the post, within 24 hours. Calls are scored once the 24-hour window closes.

What does "Clocked" mean?

A fact-only badge on a call where a wallet linked to the account bought within 30 minutes before posting, or sold 25% or more of its position within 30 minutes after. Every badge links the transaction, and owners can dispute it.

Is a cap a share in a person?

No. A cap is a coin on a bonding curve. It gives no rights in a person or company, and its price can go to zero.

When does $NOCAP launch?

After the invite-only beta proves invites and claims on mainnet. 20% of every cap trade's fee buys back and burns $NOCAP from launch.