Deploy a token
curl --request POST \
--url https://eu.solana.bloombot.app/api/v1/deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"metadata": {
"name": "My Token",
"symbol": "MTK",
"description": "A community token launched via Bloom.",
"image_url": "https://example.com/token-logo.png",
"twitter": "https://x.com/mytoken",
"website": "https://mytoken.xyz"
},
"configs": [
{
"dex": "pump_fun",
"data": {
"is_mayhem_mode": false,
"is_cashback_enabled": false
}
}
],
"creator_buy_sol_amount": 100000000,
"buys": [
{
"wallet_address": "9mZWxyz1234567890abcdef",
"sol_amount": 50000000,
"priority_fee_sol": 0.001
}
],
"bundle_mode": "packed",
"jito_tip": 5000000,
"slippage_bps": 500
}
'import requests
url = "https://eu.solana.bloombot.app/api/v1/deploy"
payload = {
"wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"metadata": {
"name": "My Token",
"symbol": "MTK",
"description": "A community token launched via Bloom.",
"image_url": "https://example.com/token-logo.png",
"twitter": "https://x.com/mytoken",
"website": "https://mytoken.xyz"
},
"configs": [
{
"dex": "pump_fun",
"data": {
"is_mayhem_mode": False,
"is_cashback_enabled": False
}
}
],
"creator_buy_sol_amount": 100000000,
"buys": [
{
"wallet_address": "9mZWxyz1234567890abcdef",
"sol_amount": 50000000,
"priority_fee_sol": 0.001
}
],
"bundle_mode": "packed",
"jito_tip": 5000000,
"slippage_bps": 500
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallet_address: '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
metadata: {
name: 'My Token',
symbol: 'MTK',
description: 'A community token launched via Bloom.',
image_url: 'https://example.com/token-logo.png',
twitter: 'https://x.com/mytoken',
website: 'https://mytoken.xyz'
},
configs: [{dex: 'pump_fun', data: {is_mayhem_mode: false, is_cashback_enabled: false}}],
creator_buy_sol_amount: 100000000,
buys: [
{
wallet_address: '9mZWxyz1234567890abcdef',
sol_amount: 50000000,
priority_fee_sol: 0.001
}
],
bundle_mode: 'packed',
jito_tip: 5000000,
slippage_bps: 500
})
};
fetch('https://eu.solana.bloombot.app/api/v1/deploy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu.solana.bloombot.app/api/v1/deploy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallet_address' => '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
'metadata' => [
'name' => 'My Token',
'symbol' => 'MTK',
'description' => 'A community token launched via Bloom.',
'image_url' => 'https://example.com/token-logo.png',
'twitter' => 'https://x.com/mytoken',
'website' => 'https://mytoken.xyz'
],
'configs' => [
[
'dex' => 'pump_fun',
'data' => [
'is_mayhem_mode' => false,
'is_cashback_enabled' => false
]
]
],
'creator_buy_sol_amount' => 100000000,
'buys' => [
[
'wallet_address' => '9mZWxyz1234567890abcdef',
'sol_amount' => 50000000,
'priority_fee_sol' => 0.001
]
],
'bundle_mode' => 'packed',
'jito_tip' => 5000000,
'slippage_bps' => 500
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu.solana.bloombot.app/api/v1/deploy"
payload := strings.NewReader("{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu.solana.bloombot.app/api/v1/deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.solana.bloombot.app/api/v1/deploy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"mint_addresses": [
"<string>"
],
"landed_txs": [
{
"kind": "<string>",
"dex": "<string>",
"mint": "<string>",
"signature": "<string>"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}Endpoints
Deploy a token
Launch a token on a supported DEX from one of your wallets.
POST
/
api
/
v1
/
deploy
Deploy a token
curl --request POST \
--url https://eu.solana.bloombot.app/api/v1/deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"metadata": {
"name": "My Token",
"symbol": "MTK",
"description": "A community token launched via Bloom.",
"image_url": "https://example.com/token-logo.png",
"twitter": "https://x.com/mytoken",
"website": "https://mytoken.xyz"
},
"configs": [
{
"dex": "pump_fun",
"data": {
"is_mayhem_mode": false,
"is_cashback_enabled": false
}
}
],
"creator_buy_sol_amount": 100000000,
"buys": [
{
"wallet_address": "9mZWxyz1234567890abcdef",
"sol_amount": 50000000,
"priority_fee_sol": 0.001
}
],
"bundle_mode": "packed",
"jito_tip": 5000000,
"slippage_bps": 500
}
'import requests
url = "https://eu.solana.bloombot.app/api/v1/deploy"
payload = {
"wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"metadata": {
"name": "My Token",
"symbol": "MTK",
"description": "A community token launched via Bloom.",
"image_url": "https://example.com/token-logo.png",
"twitter": "https://x.com/mytoken",
"website": "https://mytoken.xyz"
},
"configs": [
{
"dex": "pump_fun",
"data": {
"is_mayhem_mode": False,
"is_cashback_enabled": False
}
}
],
"creator_buy_sol_amount": 100000000,
"buys": [
{
"wallet_address": "9mZWxyz1234567890abcdef",
"sol_amount": 50000000,
"priority_fee_sol": 0.001
}
],
"bundle_mode": "packed",
"jito_tip": 5000000,
"slippage_bps": 500
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallet_address: '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
metadata: {
name: 'My Token',
symbol: 'MTK',
description: 'A community token launched via Bloom.',
image_url: 'https://example.com/token-logo.png',
twitter: 'https://x.com/mytoken',
website: 'https://mytoken.xyz'
},
configs: [{dex: 'pump_fun', data: {is_mayhem_mode: false, is_cashback_enabled: false}}],
creator_buy_sol_amount: 100000000,
buys: [
{
wallet_address: '9mZWxyz1234567890abcdef',
sol_amount: 50000000,
priority_fee_sol: 0.001
}
],
bundle_mode: 'packed',
jito_tip: 5000000,
slippage_bps: 500
})
};
fetch('https://eu.solana.bloombot.app/api/v1/deploy', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://eu.solana.bloombot.app/api/v1/deploy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallet_address' => '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
'metadata' => [
'name' => 'My Token',
'symbol' => 'MTK',
'description' => 'A community token launched via Bloom.',
'image_url' => 'https://example.com/token-logo.png',
'twitter' => 'https://x.com/mytoken',
'website' => 'https://mytoken.xyz'
],
'configs' => [
[
'dex' => 'pump_fun',
'data' => [
'is_mayhem_mode' => false,
'is_cashback_enabled' => false
]
]
],
'creator_buy_sol_amount' => 100000000,
'buys' => [
[
'wallet_address' => '9mZWxyz1234567890abcdef',
'sol_amount' => 50000000,
'priority_fee_sol' => 0.001
]
],
'bundle_mode' => 'packed',
'jito_tip' => 5000000,
'slippage_bps' => 500
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eu.solana.bloombot.app/api/v1/deploy"
payload := strings.NewReader("{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://eu.solana.bloombot.app/api/v1/deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://eu.solana.bloombot.app/api/v1/deploy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"metadata\": {\n \"name\": \"My Token\",\n \"symbol\": \"MTK\",\n \"description\": \"A community token launched via Bloom.\",\n \"image_url\": \"https://example.com/token-logo.png\",\n \"twitter\": \"https://x.com/mytoken\",\n \"website\": \"https://mytoken.xyz\"\n },\n \"configs\": [\n {\n \"dex\": \"pump_fun\",\n \"data\": {\n \"is_mayhem_mode\": false,\n \"is_cashback_enabled\": false\n }\n }\n ],\n \"creator_buy_sol_amount\": 100000000,\n \"buys\": [\n {\n \"wallet_address\": \"9mZWxyz1234567890abcdef\",\n \"sol_amount\": 50000000,\n \"priority_fee_sol\": 0.001\n }\n ],\n \"bundle_mode\": \"packed\",\n \"jito_tip\": 5000000,\n \"slippage_bps\": 500\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"mint_addresses": [
"<string>"
],
"landed_txs": [
{
"kind": "<string>",
"dex": "<string>",
"mint": "<string>",
"signature": "<string>"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>"
}
}Token deploys are Solana-only. The supported DEXes (pump.fun, Bags, and
Bonk) are all on Solana, and every amount is denominated in SOL (lamports). The
EVM host serves swaps only — it returns
404 for this path.Authorizations
Your Bloom API key, e.g. Authorization: Bearer blm_sol_live_…. Create one in Bloom Manager → Manage API Keys.
Body
application/json
Creator wallet, must be yours.
Show child attributes
Show child attributes
Minimum array length:
1A DEX configuration. JSON shape is { "dex": <pump_fun|bags|bonk>, "data": <variant config> }.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Lamports.
Show child attributes
Show child attributes
Available options:
packed, non_packed, sniper Lamports.
Show child attributes
Show child attributes
Priority fee in SOL.
⌘I

