VC docs
VC is a launchpad where every coin gets its own voice chat. Holders walk into the coin's room and talk. Anyone who sells is thrown out, and the whole room sees it.
- Spend 0.5 SOL buying a coin and you can join its voice chat.
- Sell any amount and you're kicked within seconds.
- The bigger your bag, the further your voice carries across the room.
- Coins launch on pump.fun, and the voice chat opens the moment the coin exists.
Getting in
To join a coin's voice chat, your wallet needs to have spent 0.5 SOL buying that coin since its last sell.
- Buy anywhere. Buys on pump.fun, PumpSwap, Axiom or the buy box on the coin's page all count. Terminals take a small fee before the swap, so a 0.5 SOL buy in Axiom still gets you in.
- Buys add up. Five buys of 0.1 SOL count the same as one buy of 0.5 SOL.
- Only buys count. Tokens sent to you by someone else don't count, because you didn't spend anything on them.
- The dev is always allowed in. The wallet that launched the coin can walk into its own room without buying.
Joining
- Open the coin's page and connect your wallet. Phantom, Solflare and Backpack all work.
- Sign in. Your wallet signs a short message to prove it's yours. It's not a transaction, and it can't move anything.
- Press Walk in and allow your browser to use your microphone. You join muted.
If you're short, the coin's page tells you exactly how much more to buy, and lets you in as soon as your buy lands.
Getting kicked
There are three ways to be thrown out of a room.
- Selling. Any sell, of any size, kicks you within seconds. Everyone inside hears a door slam and sees what you sold. Your total goes back to zero, so you need another 0.5 SOL of buys to come back.
- Moving your bag. Sending your tokens to another wallet counts as leaving. VC checks every room once a minute, and anyone holding less than they bought gets kicked.
- The dev. The coin's creator can kick anyone from their room. A kicked wallet can walk straight back in. A banned wallet can never come back into that coin's room.
Each room holds 200 people at once. When it's full, you'll have to wait for someone to leave.
The floor
Each room is a floor you walk around, seen from above. You only hear people near you, and they get quieter as you move away. Voices on your left come from your left speaker.
To walk, click or tap where you want to go, or use the arrow keys or W A S D.
How far you carry
How far a voice carries depends on the bag behind it: everything bought since the last sell. Range grows with the square root of the bag, so four times the SOL carries twice as far. It stops at 4x.
| Spent since last sell | Voice carries |
|---|---|
| 0.5 SOL | 1x, close by |
| 2 SOL | 2x |
| 4.5 SOL | 3x |
| 8 SOL or more | 4x, the most anyone gets |
Range only decides who can hear you, not how loud you are. Every voice is levelled the same way (see Sound below).
Voice controls
The bar at the bottom of the floor has everything you need while you're inside.
- Mute. Turns your mic on and off. You always join muted.
- Deafen. Silences everyone for you and mutes your mic. Undeafening turns your mic back on only if it was on before. Others see when you're deafened.
- Leave. Walks you out of the room.
Settings
Open settings with the slider button on the bar.
- Microphone. Choose which mic to use. The meter underneath moves when it hears you.
- Speakers. Choose where the room plays. Only Chrome and Edge let a website choose this.
- Volume. Sets the volume for the whole room.
- Push to talk. When it's on, your mic only works while you hold Space.
Turning one person down
In the people list next to the floor, each person has their own volume slider, from silent up to 150%, and a mute button. Only you hear the change. This browser remembers it for the next time you're in a room with them.
Shortcuts
| Action | Keys |
|---|---|
| Mute or unmute | Ctrl Shift M |
| Deafen or undeafen | Ctrl Shift D |
| Talk, with push to talk on | Hold Space |
| Walk | Arrow keys or W A S D |
Sound
- Your mic. Echo cancellation, noise suppression and automatic volume are always on, so others hear your voice rather than your room.
- Levelling. Loud voices are pulled down and quiet ones lifted, so nobody drowns out everyone else.
- Limiter. The whole room goes through a limiter before it reaches your speakers. Even if a lot of people talk at once, or someone's mic is far too loud, nothing can blast you.
If your connection drops, a "Reconnecting" notice appears at the top of the floor and VC brings you back on its own.
Rooms
The Rooms page lists every coin on VC. You can sort it in four ways.
- Live now. Rooms with people in them, busiest first.
- New. The newest coins.
- Market cap. The biggest coins.
- Dev in VC. Rooms the coin's creator is in right now.
The Dev in VC badge means the wallet that launched the coin is in its room at that moment. It disappears the moment they leave.
Launching a coin
Go to Launch a coin. Fill in a name, a ticker and an image. You can also add a description and links to your X, Telegram and website. You can buy your own coin in the same transaction if you want to. Your wallet asks you to approve once, and then three steps run.
- Launch. The coin is created on pump.fun.
- Split fees. The coin's creator fee is set to split between you and VC.
- Open the room. The coin's voice chat opens, and you can walk in straight away.
Launching costs only Solana network fees and rent, about 0.03 SOL, plus any buy you add. Coins trade on the pump.fun curve and move to PumpSwap when they graduate. The room, its rules and its kicks keep working after that.
Fees
VC doesn't charge for launching, trading or joining rooms. Each coin's pump.fun creator fee is split down the middle:
| Creator fee goes to | Share |
|---|---|
| The coin's creator | 50% |
| VC, to pay for running the voice chats | 50% |
The split is set on the coin itself on pump.fun, so VC never touches your half.
Safety
- VC never holds your SOL or your tokens. Every buy, sell and launch is sent from your own wallet, and you approve each one.
- Signing in is not a transaction. It's a message that proves you own the wallet. It can't spend anything or give anyone permission to.
- VC's wallet only receives its half of creator fees:
7GcBYmwmSYtxuu4PhN9gJeW6dHVUY9QHey238DfirSsJ - Voice isn't recorded. Rooms are live only, and nothing anyone says is saved.
FAQ
Only buys since your last sell count, so a sell before your buy resets your total. Also check that you signed in with the same wallet you bought with. The page updates within seconds of a buy landing.
Check that you're not deafened and that the volume in settings isn't at zero. Then walk closer: you only hear people within reach of their voice. If the people list shows them talking but you hear nothing, choose your speakers again in settings.
You join muted, so press the mic button first. If the meter in settings doesn't move when you talk, choose a different microphone, or allow microphone access for vcpad.fun in your browser's site settings. With push to talk on, you have to hold Space.
Each wallet counts on its own. The wallet you sign in with must be the one that made the buys.
No. The creator can always walk into their own coin's room, whether they hold the coin or not. The Dev in VC badge shows when they're there.
API
Everything on the board and the coin pages can be read from a public API, so you can build a bot, a dashboard or a holders-only chat on top of VC. It doesn't need a key, and it works from any website.
- Base URL:
https://www.vcpad.fun - Answers are JSON. SOL amounts are in SOL, not lamports, and times are milliseconds since 1970 (Unix time).
- Answers are cached for 2 to 3 seconds, so checking more often than that only gets you the same answer.
/api/coinsEvery recent coin on VC, busiest voice chat first, plus the site-wide numbers and the latest joins and kicks.
| Query | Meaning |
|---|---|
limit | How many coins to return. 60 if you leave it out, at most 120. |
{
"coins": [{
"mint": "7xKX…pump", "name": "Example", "symbol": "EX",
"image": "https://…", "creator": "9WzD…AWWM", "createdAt": 1791877314176,
"x": "https://x.com/…", "telegram": null, "website": null,
"live": 14, // people in its voice chat right now
"devIn": true, // the creator is in the voice chat right now
"mcapUsd": 48210.5, "mcapSol": 444.3, "migrated": false,
"lastTradeAt": 1791879001000
}],
"totals": { "people": 31, "rooms": 4, "devs": 2, "kicked": 57 },
"events": [{
"t": "kick", "mint": "7xKX…pump", "wallet": "3Fq1…",
"sold": 1.2, "at": 1791879002000, "symbol": "EX"
}],
"rules": { "entry_sol": 0.5, "radius_cap": 4, "room_cap": 200 }
}
totals.kicked counts today's kicks. Each event's t is join, dev (the creator walked in) or kick. A kick also says why: sold (how much SOL they sold), moved (their tokens left the wallet), late (a sell that landed as they walked in) or by: "dev", with ban: true for a ban.
/api/coins?mint=<mint>&wallet=<wallet>One coin and its latest joins and kicks. Add wallet to find out whether that wallet can join the coin's voice chat. A token-gated bot needs nothing else.
{
"coin": { "mint": "7xKX…pump", "symbol": "EX", "live": 14, "devIn": true, … },
"events": [ … ],
"pass": {
"wallet": "3Fq1…",
"canEnter": true, // allowed into the voice chat right now
"creator": false, // is this the coin's creator
"inRoom": true, // in the voice chat right now
"spentSol": 2, // spent on buys since their last sell
"needSol": 0, // still to buy before they can join
"reach": 2 // how far their voice carries, 1x to 4x
}
}
A coin VC doesn't know returns 404, and an address that isn't valid returns 400. Both come with an error message.
/api/position?mint=<mint>&owner=<wallet>A coin's market right now. Add owner to also get that wallet's SOL and token balance.
{
"mcapSol": 444.3, "mcapUsd": 48210.5, "priceSol": 0.000000444, "solUsd": 108.5,
"progress": 0.62, // bonding curve progress, 1 once graduated to PumpSwap
"migrated": false,
"wallet": { "sol": 3.21, "tokens": 1520000 }
}
Example
const r = await fetch('https://www.vcpad.fun/api/coins?mint=' + mint + '&wallet=' + wallet);
const { pass } = await r.json();
if (pass.canEnter) console.log('Welcome in');
else console.log(`Buy ${pass.needSol} more SOL to join`);