API
This API covers the creation of tokens, revenune managers, uploading images.
To reduce the friction of creating launchpads and launching tokens we have released an API, allowing builders to create their own launchpad contract and users to launch tokens via their launchpad with no-wallet/no-gas API calls.
There is no requirement for a wallet to be connected and instead a user can Flaunch a token connected to their email address, X (Twitter), Farcaster account or Base wallet address.
The account connected to the flaunched token will be able to connect to Flaunch, or any external flow, using Privy to have access to their launchpad fee or coin fee claims and offramp their fees into either crypto or fiat.
So whether you're extending your existing platform to benefit from token launches, or building a more generic plugin that an entire ecosystem can use, the Flaunch API should have ample logic to support you.
API Keys
No API keys are required for the use of the Web 2 API endpoint. If you are hitting the current rate limits reach out on discord for increased access.
Example Integration
To demonstrate the power of this API, we have put together a landing page that will allow for fast flaunching across multiple recipient types.
Available API Calls
Below we have documented the API calls that are available for the Memecoin API. These are also available as a Postman collection for quicker prototyping.
Base API URI
https://web2-api.flaunch.gg/livez
Health Check
GET
/livez
Checks if the API is running and returns the network configuration.
Headers
Content-Type
application/json
Response
{
"status": "ok",
"serverWallet": "0x4d7c5DFceC78E011E16BFe9F701D857841bbDFbB",
"network": "base-sepolia"
}
Create a Revenue Manager (Launchpad)
POST
/api/v1/{{ base | base-sepolia }}/create-revenue-manager
Required Fields
protocolFee
Protocol fee in basis points (0-10000, where 100 = 1%)
Fee Recipient Options (MUST choose one)
recipientAddress
Ethereum wallet address for the fee recipient
recipientEmail
Email address for the fee recipient
recipientTwitterUsername
Twitter username (without @ symbol)
recipientFarcasterUsername
Farcaster username (without the @ symbol)
Optional Fields
ownerAddress
Ethereum address that will own the revenue manager (defaults to fee recipient below)
Headers
Content-Type
application/json
Body
{
"protocolFee": "1000",
"recipientAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"ownerAddress": "0xabcdef123456789abcdef123456789abcdef1234"
}
Response
{
"success": true,
"managerAddress": "0x57ac78c4a704233e274bbcdeb057ba640b65de23",
"txHash": "0x171c6358fabc86337bfe6decc6d2d6fc2fe3ca9918a680ad36b5a71bec34e56e",
"owner": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"recipientAddress": "0xF1a700000087c011413C21C9b357A6962Aa256f9",
"protocolFee": 1000,
"privy": null
}
Create a Fee Split Manager (Launchpad)
POST
/api/v1/:chain/create-fee-split-manager
Create a reusable fee split manager contract that can be used across multiple token launches.
Required Fields
recipients
Array
Array of fee split recipients (same format as feeSplitRecipients
above)
Owner (one required):
ownerAddress
string
Wallet address of the fee split manager owner
ownerEmail
string
Email address of the owner
ownerTwitterUsername
string
Twitter username of the owner
ownerFarcasterUsername
string
Farcaster username of the owner
Creator Share (optional)
creatorShare
number
Optional: Creator share in basis points (0-10000, where 1000 = 10%). Defaults to 0 when not included.
Request Examples:
Basic Fee Split Manager with Wallet Owner:
{
"recipients": [
{"type": "email", "id": "[email protected]"},
{"type": "twitter", "id": "justinavery"},
{"type": "wallet", "id": "0x1234567890123456789012345678901234567890"}
],
"creatorShare": 1500 // 15% to creator
"ownerAddress": "0x9876543210987654321098765432109876543210"
}
Custom Splits with Email Owner:
{
"recipients": [
{"type": "email", "id": "[email protected]", "split": "5000000"},
{"type": "twitter", "id": "justinavery", "split": "3000000"},
{"type": "wallet", "id": "0x123...", "split": "2000000"}
],
"creatorShare": 5000 // 50% to creator
"ownerEmail": "[email protected]"
}
Success Response
{
"success": true,
"message": "Fee split manager created",
"managerAddress": "0x6baa4ec493a9698dc7388c0f290e29ea3d149f99",
"txHash": "0x04e594ee46312eecee8827aa2fef777dd2a94d247b723662be3a6daabb300028",
"owner": "0x9876543210987654321098765432109876543210",
"recipients": [
{
"address": "0x1234567890123456789012345678901234567890",
"percentage": "33.33333",
"originalInput": {"type": "email", "id": "[email protected]"}
},
{
"address": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
"percentage": "33.33333",
"originalInput": {"type": "twitter", "id": "justinavery"}
},
{
"address": "0x1234567890123456789012345678901234567890",
"percentage": "33.33334",
"originalInput": {"type": "wallet", "id": "0x1234567890123456789012345678901234567890"}
}
],
"totalRecipients": 3
}
Image Upload
POST
/api/v1/upload-image
Uploads and validates an image before creating a memecoin. Images are checked for appropriate content and stored on IPFS.
Headers
Content-Type
application/json
Body
{
// Base64 Encoded Image String (https://www.base64-image.de/)
"base64Image": "data:image/jpeg;base64,/9j/4AAQSkZJRgAB...FwySj0f/2Q=="
}
Response
{
"success": true,
"ipfsHash": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"tokenURI": "ipfs://QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"nsfwDetection": null
}
Launch Token
POST
/api/v1/{{ base | base-sepolia }}/launch-memecoin
Creates a new memecoin token on the selected network with the following default parameters:
$10k starting market cap
60% of the total supply for fair launch
80% dev / 20% community split
No revenue manager
After a token has been flaunched, a jobId
will be returned in the response. This jobId
signifies its position in a queue to be flaunched. It can then be referenced when querying the launch-status
endpoint to retrieve the status of the token and subsequent deployed contract address of the token.
Required Fields
name
Token name.
symbol
Token symbol (max 8 characters).
description
Token description.
imageIpfs
IPFS hash from the image upload endpoint.
Creator Authentication Options (MUST choose one)
creatorAddress
Ethereum address to receive creator benefits.
creatorEmail
Email address to create a managed wallet via Privy.
creatorTwitterUsername
Twitter username for verification and wallet creation.
creatorFarcasterUsername
Farcaster username for verification and wallet creation.
If no creator authentication option is provided, the creator fees will go to the Flaunch.gg wallet.
Optional Fields
revenueManagerAddress
Ethereum address of a deployed revenue manager (must be valid address format)
feeSplitManagerAddress
Ethereum address of a deployed fee split manager (must be valid address format)
feeSplitRecipients
An array of Ethereum wallet addresses that will automatically receive an equal share of fees from the launched token [0x123..., 0xabc...]
creatorShare
Only include when specifying feeSplitRecipients
if you also want the creator to take a portion of the fees. (default: 0, basis points so 8000 = 80%)
marketCap
Initial market cap in USDC (default: 10,000 = 10000000000)
creatorFeeSplit
Creator fee allocation in basis points (default: 8000 = 80%)
fairLaunchDuration
Duration of fair launch in seconds (default: 1800 = 30 minutes)
fairLaunchSupply
Percentage mount of total token supply available for fair launch (default: 60% of initial supply = 60)
websiteUrl
Website URL
telegramUrl
Telegram group URL
discordUrl
Discord server URL
twitterUrl
Twitter/X URL
Treasury Management Options for Token Launches
The memecoin launch API supports four distinct treasury management options:
No Treasury Management: Default behavior with no fee splitting
Revenue Manager: Use a pre-deployed revenue manager contract
Fee Split Manager: Use a pre-deployed fee split manager contract
Custom Fee Split: Define recipients directly in the launch request
Field Documentation
revenueManagerAddress
string (optional)
Address of a pre-deployed revenue manager contract
feeSplitManagerAddress
string (optional)
Address of a pre-deployed fee split manager contract
feeSplitRecipients
Array (optional)
Array of fee split recipients in one of three formats (see below). Remember to also inclue creatorShare
if you want the token creator to take a portion of the fees.
Mutual Exclusivity Rules
You can specify either revenueManagerAddress OR feeSplitManagerAddress, never both
You cannot specify manager addresses and feeSplitRecipients at the same time
Choose only one treasury management option per token
Enhanced feeSplitRecipients Field
The feeSplitRecipients field supports three formats:
1. Array of wallet addresses (legacy format)
"feeSplitRecipients": [
"0x1234567890123456789012345678901234567890",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
]
2. Array of objects with account types (even split):json
"feeSplitRecipients": [
{"type": "email", "id": "[email protected]"},
{"type": "twitter", "id": "username"},
{"type": "farcaster", "id": "username"},
{"type": "wallet", "id": "0x1234567890123456789012345678901234567890"}
]
3. Array of objects with custom splits:json
"feeSplitRecipients": [
{"type": "email", "id": "[email protected]", "split": "5000000"},
{"type": "twitter", "id": "username", "split": "3000000"},
{"type": "wallet", "id": "0x123...", "split": "2000000"}
]
Custom Split Rules
When using custom splits, all recipients must have splits if any recipient has a custom split
Splits must sum to exactly
10000000
(representing100.00000%
)Split values are in micro-percentages: multiply UI percentage by
100000
Example:
33.33333
% ="3333333"
,50
% ="5000000"
Maximum 100 recipients allowed
5 decimal precision supported
Account Type Validation
Type
Validation Rule
Example
wallet
Must be valid Ethereum address (0x + 40 hex chars)
"0x1234567890123456789012345678901234567890"
twitter
Alphanumeric + underscores, max 15 chars
"justinavery"
farcaster
Alphanumeric + underscores, 1+ chars
"javery"
Headers
Content-Type
application/json
Body
{
"name": "Example Coin",
"symbol": "EXCOIN",
"description": "This is an example memecoin for demonstration purposes.",
"imageIpfs": "QmR4Tnqvm4SahFwez3FBCbweYwUPUXo2SP8yePhLXYQJkd",
"websiteUrl": "https://example.com",
"discordUrl": "https://discord.gg/example",
"twitterUrl": "https://twitter.com/example",
"telegramUrl": "https://t.me/example",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"marketCap": "10000000000",
"creatorFeeSplit": "8000",
"fairLaunchDuration": "1800"
}
{
"name": "Community Coin",
"symbol": "COMM",
"description": "A token with shared revenue among community members",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"websiteUrl": "https://community.example.com",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"creatorShare": 5000 // creator receives 50% of the fees, the other 50% shared to feeSplitRecipients
// NEW: Fee Split Recipients (choose this OR revenueManagerAddress, not both)
"feeSplitRecipients": [
"0x1234567890123456789012345678901234567890",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
"0x9876543210987654321098765432109876543210"
],
// Optional advanced settings
"marketCap": "10000000000",
"creatorFeeSplit": "8000",
"fairLaunchDuration": "1800"
}
{
"name": "Community Coin",
"symbol": "COMM",
"description": "A token with shared revenue among community members",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"websiteUrl": "https://community.example.com",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"revenueManagerAddress": "0x57ac78c4a704233e274bbcdeb057ba640b65de23",
// Optional advanced settings
"marketCap": "10000000000",
"creatorFeeSplit": "8000",
"fairLaunchDuration": "1800"
}
Option 1: No Treasury Management
{
"name": "Simple Token",
"symbol": "SIMPLE",
"description": "A basic token with no fee management",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96"
}
Option 2: Revenue Manager (require Revenue Manager)
{
"name": "Revenue Token",
"symbol": "REV",
"description": "A token using a revenue manager",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"revenueManagerAddress": "0x712fa8ddc7347b4b6b029aa21710f365cd02d898"
}
Option 3: Fee Split Manager (require Fee Split Manager)
{
"name": "Split Token",
"symbol": "SPLIT",
"description": "A token using a pre-deployed fee split manager",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"feeSplitManagerAddress": "0xb31435D40c0cB02c27bf732940dB3d9e4A3b253A"
}
Option 4: Custom Fee Split (Even Distribution, no fees for the creator)
{
"name": "Community Token",
"symbol": "COMM",
"description": "A token with shared revenue among community members",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"feeSplitRecipients": [
{"type": "email", "id": "[email protected]"},
{"type": "twitter", "id": "justinavery"},
{"type": "farcaster", "id": "javery"},
{"type": "wallet", "id": "0x1234567890123456789012345678901234567890"}
]
}
Option 5: Custom Fee Split (Custom Percentages, 20% of the fees to the creator)
{
"name": "Weighted Token",
"symbol": "WCOMM",
"description": "A token with custom revenue splits",
"imageIpfs": "QmX7UbPKJ7Drci3y6p6E8oi5TpUiG7NH3qSzcohPX9Xkvo",
"creatorAddress": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96",
"creatorShare": 2000
"feeSplitRecipients": [
{"type": "email", "id": "[email protected]", "split": "5000000"},
{"type": "twitter", "id": "justinavery", "split": "3000000"},
{"type": "wallet", "id": "0x123...", "split": "2000000"}
]
}
Response
{
"success": true,
"message": "Memecoin launch request queued",
"jobId": "40",
// Queue status will show how long the expected flaunch time should be. The
// `estimatedWaitSeconds` can offset the initial "Check Launch Status" delay.
"queueStatus": {
"position": 0,
"waitingJobs": 0,
"activeJobs": 1,
"estimatedWaitSeconds": 0
},
// Privy data will vary depending on the `creatorType` specified
"privy": {
"type": "wallet",
"address": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96"
}
}
Check Launch Status
GET
/api/v1/launch-status/{{ jobId }}
Retrierves the launch status of a jobId
.
Headers
Content-Type
application/json
Response
{
"success": true,
"state": "completed",
"queuePosition": 0,
"estimatedWaitTime": 0,
"transactionHash": "0x04e594ee46312eecee8827aa2fef777dd2a94d247b723662be3a6daabb300028",
"collectionToken": {
"address": "0x06199b4b69f815141C197D034698d9E67Cdd265b",
"imageIpfs": "QmQX8pdLRGeNps92Ma4esew7cbnYuBxQK7xUvp5soe3Lec",
"name": "Community Coin",
"symbol": "COMM",
"tokenURI": "ipfs://QmSxzzNaeHbYZbPyFF29Z1PrhrsfNNMyFvebZeuLPrkzvA",
"creator": "0x498E93Bc04955fCBAC04BCF1a3BA792f01Dbaa96"
},
"revenueManagerAddress": null,
// NEW: Fee split information
"feeSplitManagerAddress": "0x6baa4ec493a9698dc7388c0f290e29ea3d149f99",
"feeSplitRecipients": [
"0x1234567890123456789012345678901234567890",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
"0x9876543210987654321098765432109876543210"
]
}
Last updated
Was this helpful?