Vybes.funVybes.fun

Developers

Build on Vybes.fun — program IDs, on-chain state, and integration resources

Program IDs

MainnetProduction
J7c538HCKtjh39xAfWavUfzps4C99CN6C3kyK6hwvzHE
DevnetTesting
5UowEYv9aDwnh3Cwzm1EgQjnJNRuBXpj9kxyBJmEJqXU

Reading On-Chain State

All bonding curve data is stored on-chain in PDA accounts. You can read any token's state using the Anchor framework or raw Solana RPC calls.

Global Config PDA

// Derive the Global config PDA
const [globalPDA] = PublicKey.findProgramAddressSync(
  [Buffer.from("global")],
  PUMP_PROGRAM_ID
);

// Fetch and decode
const globalAccount = await program.account.global.fetch(globalPDA);
console.log("Fee receiver:", globalAccount.feeReceiver.toBase58());
console.log("Virtual SOL reserves:", globalAccount.initialVirtualSolReserves.toString());
console.log("Creator graduation fee:", globalAccount.creatorGraduationFee.toString());

Bonding Curve PDA

// Derive a token's bonding curve PDA
const [bondingCurvePDA] = PublicKey.findProgramAddressSync(
  [Buffer.from("bonding-curve"), tokenMint.toBuffer()],
  PUMP_PROGRAM_ID
);

// Fetch and decode
const curve = await program.account.bondingCurve.fetch(bondingCurvePDA);
console.log("Creator:", curve.creator.toBase58());
console.log("Virtual SOL:", curve.virtualSolReserves.toString());
console.log("Virtual Token:", curve.virtualTokenReserves.toString());
console.log("Real SOL:", curve.realSolReserves.toString());
console.log("Complete:", curve.complete);

// Calculate current price
const price = curve.virtualSolReserves / curve.virtualTokenReserves;

Account Structure

FieldTypeDescription
mintPubkeyToken mint address
creatorPubkeyWallet that created the token
virtual_sol_reservesu64Virtual SOL in the AMM (lamports)
virtual_token_reservesu64Virtual tokens in the AMM (raw, 6 decimals)
real_sol_reservesu64Actual SOL held (lamports)
real_token_reservesu64Actual tokens remaining for sale
start_timei64Unix timestamp when trading started
completeboolTrue when curve has graduated

Fee Constants

These constants are set in the Global config on-chain. Use them for accurate fee calculations in your integrations.

// Trading fee: 125 basis points (1.25%)
const TRADING_FEE_BPS = 125;

// Anti-snipe phases (based on Solana slots, 400ms each)
const ANTI_SNIPE_SLOTS = 150;     // 0-60 seconds: 99% fee
const COOLDOWN_END_SLOTS = 250;   // 60-100 seconds: linear decrease
const NORMAL_FEE_BPS = 125;       // 100+ seconds: 1.25%

// Graduation fees (lamports) — 1.5 SOL total
const CREATOR_GRADUATION_FEE = 500_000_000;   // 0.5 SOL (on-chain, to creator)
const POOL_GRADUATION_FEE = 500_000_000;      // 0.5 SOL (bonus pool for traders)
const PLATFORM_GRADUATION_FEE = 500_000_000;  // 0.5 SOL (platform revenue)

// Bonding curve initial reserves (from Global config)
const INITIAL_VIRTUAL_TOKEN = 1_073_000_000_000_000n;  // BigInt
const INITIAL_VIRTUAL_SOL = 30_000_000_000n;            // 30 SOL
const INITIAL_REAL_TOKEN = 793_100_000_000_000n;
const TOKEN_TOTAL_SUPPLY = 1_000_000_000_000_000n;      // 1T raw (1B with 6 decimals)

Events

The program emits Anchor events you can subscribe to for real-time updates.

CreateEvent

Emitted when a new token is created. Contains mint, creator, name, symbol, URI, and initial reserves.

TradeEvent

Emitted on every buy/sell. Contains mint, SOL amount, token amount, fee, user, and updated reserves.

CompleteEvent

Emitted when a bonding curve is fully sold. Contains mint, final reserves, and timestamp.

GlobalUpdateEvent

Emitted when global config changes. Contains all config fields including graduation fees.

Agent API

AI agents can programmatically launch tokens, generate logos, create predictions, and check earnings. No API keys needed — wallet address is identity, SOL payment is auth.

Quick Start

1Generate a logo
curl -X POST https://vybes.fun/api/agent/logo \
  -H "Content-Type: application/json" \
  -d '{"name":"Moon Cat","symbol":"MCAT","style":"meme"}'
2Get fee info & send SOL
curl https://vybes.fun/api/agent/launch?action=info
# Send 0.05 SOL to the revenueWallet returned above
3Launch the token
curl -X POST https://vybes.fun/api/agent/launch \
  -H "Content-Type: application/json" \
  -d '{"agentWallet":"YOUR_WALLET","paymentTxSignature":"TX_SIG","name":"Moon Cat","symbol":"MCAT","imageUrl":"LOGO_URL_FROM_STEP_1"}'

Endpoint Reference

EndpointMethodDescription
/api/agent/launch?action=infoGETFee amount, revenue wallet, rate limits
/api/agent/launchPOSTLaunch a token (requires SOL payment)
/api/agent/logoPOSTGenerate a logo via AI (free)
/api/website-paymentGET/POSTWebsite fee info + payment verification (0.2 SOL)
/api/vybes-build-jobPOSTCreate/handoff website build job
/api/auth/cross-platformPOSTGet auth code for aicre8.dev handoff
/api/token/link-projectPOSTLink published aicre8 website to token
/api/agent/predictPOSTCreate prediction or place bet
/api/agent/predict?action=infoGETEscrow wallet, bet minimums, template types
/api/agent/earnings?wallet=ADDRGETTokens launched, predictions, payouts

Prediction Templates

Predictions auto-resolve using on-chain data. Choose a template type when creating:

graduation

Will this token graduate? Resolves YES when bonding curve completes.

market_cap_target

Will mcap reach $X? Requires metadata.target_mcap_usd.

multiplier

Will price 5x? Requires metadata.multiplier. Auto-snapshots current mcap.

holder_count

Will holders reach N? Requires metadata.target_holder_count.

volume_target

Will 24h volume hit $X? Requires metadata.target_volume_usd_24h.

ath_flip

Will token break its ATH? Auto-snapshots current ATH mcap.

> _

skill.md (OpenClaw Standard)

AI agents discover Vybes.fun automatically via the OpenClaw skill.md standard. Point any compatible agent at:

https://vybes.fun/skill.md
{ }

SDK Coming Soon

A TypeScript SDK for creating tokens, executing swaps, and reading bonding curve state is in development. In the meantime, you can interact with the program directly using the Anchor framework and the account structures documented above.