Gold Curve is the XAUConnect launchpad on Meteora. Six partner configs are already live on mainnet. A launch picks one preset and one quote. The economics of that preset are the same for every token that uses it.
Presets
- Fair uses one segment, even liquidity, and a fixed 1% fee.
- Shield starts the fee at 50% and decays to 1% over 10 minutes (10 periods of 60 seconds).
- Distribute uses three segments with liquidity weights 1, 4, and 1, and a fixed 1% fee.
Quote is sol or usdc. Graduation is exactly 10 SOL or 750 USDC. Supply is 1,000,000,000 tokens with 6 decimals. Metadata is immutable and the mint has no mint authority. At graduation, 20% of supply is in the pool and the migrated LP is permanently locked, split 50/50 between the creator and the partner. The creator receives 50% of bonding-phase trading fees. Migration is to Meteora DAMM v2 only. After graduation, swaps route through Jupiter.
1. Prepare
POST /api/launchpad/prepare validates the launch and returns a base64 unsigned Solana transaction plus the mint, pool, and config addresses. No API key. The wallet must sign. XAUConnect never asks for a private key.
POST /api/launchpad/prepare
{
"chainKey": "solana",
"launchType": "bonding-curve",
"curvePreset": "fair",
"quote": "sol",
"name": "XAU Gold Curve",
"symbol": "XAUGC",
"description": "A fair curve on SOL.",
"totalSupply": "1000000000",
"creator": "<wallet>",
"firstBuyAmount": "0.05"
}curvePreset is fair, shield, or distribute. firstBuyAmount is optional and is denominated in whole quote tokens. Solana names must be 32 characters or fewer and symbols 10 or fewer, uppercase alphanumerics. The response includes solanaTransaction, mint, pool, config, and quoteMint.
2. Sign and submit
import { VersionedTransaction } from "@solana/web3.js";
const tx = VersionedTransaction.deserialize(
Buffer.from(solanaTransaction, "base64"),
);
tx.sign([keypair]); // or wallet.signTransaction(tx)
const signed = Buffer.from(tx.serialize()).toString("base64");
const res = await fetch("https://xauconnect.com/api/swap/submit-solana", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ signedTransaction: signed }),
});
const { signature } = await res.json();3. Record
After the transaction confirms, POST /api/launchpad/record lists the token on Discover. Send the same launch body, the mint as tokenAddress, the signature as deployTxHash, and the metadataURI from prepare.
Read the curve
GET /api/launchpad/curve/:mintreturns progress, quote raised, the fee now and the final fee, and whether the pool has migrated.GET /api/launchpad/launchesreturns recent XAU launches.GET /api/launchpad/fees?creator=returns unclaimed creator fees for that wallet.POST /api/launchpad/claimwithcreator,pool, andkind(trading,surplus, orlocked-lp) returns another unsigned transaction. Submit it the same way as the create transaction.
SDK
import { XauApiClient } from "@xauconnect/sdk";
const api = new XauApiClient({ baseUrl: "https://xauconnect.com/api" });
const prepared = await api.prepareLaunch({ /* launch body */ });
const { curve } = await api.goldCurve(prepared.mint!);
const { pools } = await api.goldCurveFees(creator);
const claim = await api.claimGoldCurve({
creator,
pool: prepared.pool!,
kind: "trading",
});The in-app form is at /launchpad. A live example is the XAU Gold Curve token page.