Run your own launchpad
Mainnet. This page is about the testnet's launch contract, VyrePad, whose launches can name a partner and a partner fee. Mainnet's launch contract, VyrePadV2, has no partner fee, no promoters and no fee splitter: a trade there pays the creator's tax and nothing more, and a tenth of what is paid out of it goes to the platform wallet (how). A website of your own can launch and trade through VyrePadV2 and the SwapRouter like any other app, but the contracts pay it nothing: its fee, if it has one, would have to be its own. The addresses of mainnet's first deployment, which had a fee splitter and an app router, are on the contract addresses page, marked as not used.
A launchpad is a website. The contracts that make a token, open its pool, lock the liquidity and charge the fees are already on VYRE (the launchpad contracts). A team can run its own website on them, under its own name, domain and look, and set its own fee on every trade of the tokens launched through it, paid to it by the contracts when the fees are collected (not on each trade). This page says how that works, what the team controls, what it does not, and what it is responsible for.
Nothing here needs a deployment, a sign-up or VYRE's permission. A launch names a partner wallet and a fee; the contracts do the rest. (The launchpad contract has an owner switch that closes new launches for everyone; trading on existing tokens never stops. It is a safety brake, not a licence.)
No code: the launchpad builder
You do not need to write code. The launchpad builder is a page that makes a ready-to-upload copy of the starter site for you:
- Fill in a form: a name, a one-line description, a link to your logo, a colour, the wallet your fee is paid to, your own fee (0% to 1%), which launches your site lists, and links to your own terms, privacy and contact pages.
- Press Download my launchpad. The page builds a zip file in your browser and hands it to you. Nothing you typed is sent to VYRE.
- Unzip it and put the files on any host that serves plain files (the page lists steps for Cloudflare Pages, Netlify, GitHub Pages and Vercel). Your site is then yours, at your own address.
What is in the folder is the starter site, built once, with your answers written into one text file, launchpad.config.json, next to index.html. The site reads that file when it opens, so you change a setting by editing the file and uploading it again; nothing is rebuilt.
What stays the same for everyone who uses the builder:
- You host it and you are responsible for it. VYRE does not host your site, your pictures, your launch metadata or any other content of yours, does not review it, and cannot change or take it down. The logo is a link to a picture you host; the builder uploads nothing.
- VYRE's 1% platform fee is built in. It is inside every pool made through VYRE's launchpad contracts, whichever website was used, and is separate from your own fee. Like yours, it reaches VYRE when the fees are collected.
- Your own fee is paid when fees are collected, not on each trade, as described below, and arrives as WUSDC.
- It runs on VYRE Testnet only for now. The folder refuses any other network, and testnet USDC has no value.
The builder checks every answer again before it writes the file (only known settings, https links, a wallet address whose capital letters match its checksum, a fee from 0% to 1%), and the starter site checks the file once more when it opens. Anything it does not accept is refused with a message that says what to fix.
Who runs what
| Your launchpad | VYRE | |
|---|---|---|
| The website, its domain and its host | Yours. You build it and host it anywhere that serves static files. VYRE hosts nothing of yours and you have no VYRE account or login | |
| Name, look, wording, terms and privacy pages | Yours | |
| Which launches you show | Yours (you filter by your own partner wallet, or show everything) | |
| Your fee, 0% to 1%, per launch | Yours, set when each token is launched. It is added on top of the other fees | |
| Where your fee is paid | Your payout wallet. Only you can move it, in two steps (below) | VYRE cannot redirect it |
| Pictures people upload on your site, takedowns, moderation | Your responsibility, on your own site | VYRE's upload service is for VYRE's own sites and is not offered to partners |
| VYRE's 1% platform fee | Not yours to change or take | Fixed in the contract on every launch, whichever website made it |
| The rules of a launch: opening market cap, supply limits, tax limits (10% a side), the pool, the locked liquidity | Not yours to change | Fixed in the contracts (the opening market cap is enforced by the newer pad contract; the test network's pad predates that rule, and the SDK and the starter site keep to it there) |
| VYRE's shared services: the public RPC and the explorer, and any other service VYRE runs for the whole chain | You may use them or not; they are shared | They are run for the whole chain and may leave out any token |
A token launched through your site is an ordinary token on the VYRE chain. It trades on the chain whichever website is open, appears on VYRE's explorer, and VYRE's shared services may list it or leave it out. Your site decides what your site shows; it cannot decide what the chain's shared services show.
How the fee works
Every launch carries two fields: partner, the wallet to pay, and partnerFeeBps, the fee in basis points from 0 to 100 (100 is 1%). They are written into the launch and into its pool when it is created, and they cannot be changed afterwards.
Each trade of that token pays a fee in USDC, taken from the USDC side of the trade: out of what a buyer pays, out of what a seller receives. It has up to three parts:
| Part | Size | Paid to |
|---|---|---|
| The creator's tax | 0–10% a side, chosen by the creator, lowered but never raised | The creator |
| VYRE's platform fee | 1% | VYRE |
| Your partner fee | 0–1% | Your payout wallet |
The contract does not check that a launch comes from your site: anyone can name any address as partner on a launch of their own. A partner fee on a token therefore only says where that fee goes, not that the token came through that launchpad, and a token can charge up to 12% a side in all (10% creator tax, 1% platform fee, 1% partner fee). The one exception is a buy in a new token's first seconds: where the pool factory has the early-buy fee switched on, such a buy pays that fee on top, at most 99% in all with the others, and all of it goes to VYRE, not to the creator or to you. It is kept apart from the three parts above, so it never changes your fee or what is collected for you. The starter site shows it on a token's page, read from the pool.
Your fee is added on top: it never reduces VYRE's 1% or the creator's tax. The fee splitter (testnet 0xcd874cEDA1A51ed7F18b2358F6A399aD81f9BCd5) divides the platform part, and a promoter's share of a trade, where there is one, comes out of VYRE's part only, so it never changes what you are paid or what a trader pays.
Worked example. A buyer spends 100 USDC on a token whose creator set a 2% tax, launched through your site at a 0.5% partner fee, some time after the token opened (past any early-buy window). The fee is 3.5 USDC:
| USDC | |
|---|---|
| Creator (2%) | 2.00 |
| VYRE (1%) | 1.00 |
| You (0.5%) | 0.50 |
| Total taken from the buyer's 100 | 3.50 |
A sale that would pay out 100 USDC before fees works the same way, on those 100. At the most the contracts allow (a 10% tax, your 1% and VYRE's 1%) a token charges 12% a side, and it is all in the open on the explorer. A buy in the first seconds of a token that has an early-buy fee pays more than the 3.50 above: the table is for a buy after that window, and the extra goes to VYRE alone. A figure computed by the starter site agrees with what the contracts pay to within a couple of wei, because the pool rounds as it trades.
When you are paid
The fee is set aside in each token's pool as people trade. It is paid out when the fee splitter collects that pool: collect(address[] pools) on the fee splitter, which anyone can call. Trades made through VYRE's app router collect only in some cases (for example when the trader has an approved promoter), so do not assume a payout follows every trade. Nothing is lost while fees wait in a pool. The starter site has a page that shows what is waiting and a button that collects it; you can also call collect from a script or an explorer. The payout arrives as WUSDC, which withdraw turns into USDC one to one.
Moving your payout
Fees are paid to the partner wallet unless it moves its payout. The fee splitter lets the wallet that is paid now offer the payout to another address, and that address must accept:
function offerPartnerPayout(address partner, address to) external; // sent by whoever is paid now
function acceptPartnerPayout(address partner) external; // sent by the address it was offered to
function payoutOf(address partner) view returns (address);
function pendingPartnerPayout(address partner) view returns (address);Two steps, both by you, covering all your launches. An offer does not expire; to withdraw one nobody has accepted, offer the payout to the zero address (the starter site has a "Cancel the offer" button). Neither VYRE nor the pool's creator can change it. Take care with the address you offer: once the other side accepts, the fees go there for good. A payout address that is the fee splitter, the pad, the launch's pool or token, WUSDC or the pool factory can never move the money, so the splitter pays VYRE instead; the starter site refuses those addresses.
Launching with your fee
With the SDK:
import { launch } from '@vyrechain/sdk'
await launch(walletClient, publicClient, {
name: 'My Token', symbol: 'MTKN', totalSupply: 1_000_000_000n * 10n ** 18n,
buyTaxBps: 200, sellTaxBps: 200, // the creator's choice
partner: '0xYourPayoutWallet', // yours, from your site's config, never from the form
partnerFeeBps: 50, // 0.5%
metadataURI: 'https://example.org/token.json',
})The creator is whoever signs the transaction, so a user's own wallet launches directly on the chain: your site never holds keys or funds. Your site decides the partner and the fee, and shows the user what they will pay before they sign.
Showing your launches
Each launch that names a partner emits LaunchPartner(token, partner, partnerFeeBps) on the pad, with partner indexed, so a node can return just your launches. partnerOf(token) on the pad reads the same record. The starter site reads the events, asks the pad for each launch, and keeps only those whose own record still names your wallet.
What the partner field does not prove. It names who is paid the fee. It does not prove who made the launch or that your site had anything to do with it: anyone can name any address as a partner. Someone can launch elsewhere and name your wallet (it pays you a fee, but your list will show the token until you hide it, and you cannot refuse the fee), and a site that said "launched on our platform" for every such token would be saying something it cannot know. Say "tokens that pay this launchpad a fee" or keep your own record of what your site prepared (for example the metadata files your own upload service saved), and keep a way to hide a token you do not want to show (the starter site has
hiddenTokensandblockedCreatorslists in its config). A token that is hidden on your site is still on the chain.
Pictures, files and your own responsibilities
A launch carries a link to a small metadata file (metadataURI, at most 256 bytes) holding a picture link, a description and links. VYRE does not host pictures or files for partners. Its upload service is for VYRE's own sites and is not offered to partners or to their servers, because hosting other people's files is a legal duty of whoever hosts them. The starter site therefore:
- asks for a picture link and a description and links, and
- saves them through an upload service you run yourself if you configure one (
metadataEndpoint), or asks the user for a link to a metadata file they host.
Your upload service takes a POST with Content-Type: application/json and a body such as {"image":"https://…","description":"…","links":{"website":"https://…"}} (at most 4 KB), allows your site's origin with CORS, and answers 200 with {"uri":"https://…"} (or ipfs://…, at most 256 bytes): the link the launch will carry. The starter site sends no cookies and does not run this service for you.
If your site shows or stores people's pictures, you are responsible for them on your site: what you allow, how people report a problem, taking things down, and any legal duties where you and your users are. The same goes for your own terms and privacy pages, which the starter site links from its footer and does not write for you. A checklist to start from (placeholders, not legal text; have a lawyer write the real pages):
- Who runs the site: the legal name, a contact address that is read, and where disputes go.
- That tokens are made by their creators, are not vetted or endorsed by the site, can lose all their value, and that nothing on the site is advice.
- What you collect (a browser wallet address is public on the chain; server logs, analytics) and who sees it; that token pictures load from servers the creators chose.
- How a person reports a picture, a link or a token, how fast you act, and what you do (hide it on your site).
- Your fee, in words and in numbers, and that it is part of each token for good.
- Who may use the site (places you do not serve) and anything you promise or do not promise. Do not promise returns.
What you must not claim
- That VYRE runs, operates, vouches for, endorses or is a partner of your site, or that it checks the tokens on it. It is a separate website that uses VYRE's contracts, and you may say it is built on VYRE.
- That a token is safe, vetted or will rise. Do not promise or imply a return.
- That a launch was "made on" your site because it names your wallet (see above).
About locking other launchpads
Two separate things are true, and neither is a promise that nothing else can exist on VYRE.
- Using these contracts under your own brand is open. Any front end can name a partner and a fee. No approval is needed.
- Making pools is limited. VYRE's pool factory (mainnet
0xdB209972c8E49d55774b65380fBd27547bF13f1E, testnet0x0Ea6D827B02E6d52b9860B84C696E1D2186cb553) lets only approved pool creators make pools, and the launchpad contract (VyrePadV2 on mainnet, VyrePad on the testnet) is the only one approved today. Adding another issetPoolCreator(address, true)by the factory's owner. It takes effect only after 7 days' notice (POOL_CREATOR_DELAY), the address must already be a contract, and removing one takes effect at once. Because every pool pays its platform fee to the treasury the factory had when the pool was made, a second pool-creating contract would not pay you your fee unless it came with a fee splitter of its own, so this is a design decision for VYRE and not a form to fill in. None are approved now, and if you think you need your own contract, write to team@vyrechain.com first.
Nothing stops anyone from deploying their own contracts on VYRE. The chain is open. What VYRE's rules cover is the launchpad contracts above and the pools they make; the fees are in the code, and you can read them on the explorer.
A safety list for your site
- Never ask a user to sign anything except the transactions your own pages describe, and never ask for a seed phrase or a private key.
- Simulate every transaction before the wallet is asked (the SDK does), and approve exact amounts, never unlimited allowances. The starter site sells with a permit for the exact amount.
- Show the fee in numbers before a launch or a trade, read from the pool itself, not from a stored figure.
- Take addresses and fees from your own configuration, never from a page address or a form, so a link cannot change who is paid.
- Show token names, descriptions and links as plain text. Allow only
httpslinks, and never put anything a token's creator wrote into HTML. - Link to the explorer for every address and transaction so people can check for themselves.
- Say what your site contacts. The starter site reads the chain through one RPC, loads each token's picture and description file from the address its creator chose (a setting turns that off), and contacts your own upload service and IPFS gateway if you configure them; its Fees page lists them. If you point it at your own RPC, you are responsible for that service: prices, quotes and fee figures come through it (the site checks that it answers as the VYRE chain), and the address is public, so it must not carry a key.
- Keep a way to hide a token or a creator you do not want to show, and use it quickly: the starter site's config has
hiddenTokensandblockedCreators. A blocked creator is matched by the wallet that is the token's creator now, and a creator can hand a token to another wallet, so hide the tokens themselves as well. - Test on the testnet with test USDC first. It has no value.
The starter site
A small static website (plain TypeScript, built with Vite) is available as a starting point: it launches tokens with your partner wallet and fee, lists your launches, trades with exact approvals and simulation, shows the fee as the contracts charge it, collects your fee and moves your payout. Everything about it (name, colours, logo, wallet, fee, links, RPC and explorer) is in one launchpad.config.json. It has no server, so any static host serves it. Ask team@vyrechain.com for a copy.
