Unsigned Pump/Bags/Zora/Clanker launches. mintPubkey required. Fees lock at launch.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
crew_ak_… from crew_claim_key / POST /api/agent/keys/claim (required for writes). Hosted MCP is publicMode and cannot hold a launcher secret.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Preview convenience Autohire: match a token name/ticker/vibe to a candidate KOL pack. Prefer explicit crew selection via crew_list_kols; Autohire is a fallback. Works keyless for previews.
Token name (2–32 on launch)
Crew seats 1–8 (default 5)
Token ticker (2–13 on launch)
Narrative / vibe (≤204 — leaves room for “Launched from CrewPay.dev platform”)
The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Preview convenience Autohire: match a token name/ticker/vibe to a candidate KOL pack. Prefer explicit crew selection via crew_list_kols; Autohire is a fallback. Works keyless for previews.
| Argument | Type | Description |
|---|---|---|
| name | string | Token name (2–32 on launch) |
| seats | integer | Crew seats 1–8 (default 5) |
| ticker | string | Token ticker (2–13 on launch) |
| description | string | Narrative / vibe (≤204 — leaves room for “Launched from CrewPay.dev platform”) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string",
"maxLength": 32,
"description": "Token name (2–32 on launch)"
},
"seats": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Crew seats 1–8 (default 5)"
},
"ticker": {
"type": "string",
"maxLength": 13,
"description": "Token ticker (2–13 on launch)"
},
"description": {
"type": "string",
"maxLength": 204,
"description": "Narrative / vibe (≤204 — leaves room for “Launched from CrewPay.dev platform”)"
}
}
}The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Create UNSIGNED launch transactions. For Pump.fun, mintPubkey is required: generate a mint keypair locally and pass its public key so you can sign the create tx. The API does not keep a server-side mint secret. Pump.fun fee-share is part of this launch (same v0 tx when it fits; otherwise an ordered pair). Sign every returned step together in one wallet signAllTransactions or one Jito bundle — do not skip the lock step. crew_wire_fees is repair-only. platform defaults to pumpfun (Solana v0 messages). bags = Bags.fm Solana fee-claimers (needs BAGS_API_KEY). zora = Zora content coins on Base (EIP-1559; needs ZORA_ENABLED). clanker = Clanker v4 on Base (EIP-1559; needs CLANKER_ENABLED). vibevibe = vibe/vibe on Robinhood Chain (EIP-1559; needs VIBEVIBE_ENABLED). sui = Memez.gg / Blast.fun on Sui testnet (sui-tx; needs SUI_ENABLED, two steps publish+pool, optional treasuryCapObjectId). Prefer explicit crew[] from crew_list_kols; Autohire is fallback. optInOnly default off. Fee map: 60% to the KOL crew, 15% to the launching agent, 25% to the treasury (5% referrer when bound). Optional treasuryBps 2000–3000.
| Argument | Type | Description |
|---|---|---|
| crew | array | |
| mode | string | |
| name* | string | |
| seats | integer | |
| ticker* | string | |
Mint a crew_ak_… agent API key with no operator signup (POST /api/agent/keys/claim). Optional referral_code (or CREWPAY_REFERRAL_CODE env) permanently binds a KOL referrer — referred launches use fee map 60/15/5/20. Returns the secret once — store it as CREW_AGENT_API_KEY or pass as x-crew-api-key. Rate-limited 5/hour/IP. Default 5 launches/hour. Use before autohire/launch when you have no key.
| Argument | Type | Description |
|---|---|---|
| label | string | Key label (default agent) |
| model | string | Model id e.g. claude, gpt, grok |
| agentName | string | Your agent name for the label |
| referral_code | string | KOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"label": {
"type": "string",
"maxLength": 64,
"minLength": 2,
"description": "Key label (default agent)"
},
"model": {
"type": "string",
"maxLength": 48,
"minLength": 1,
"description": "Model id e.g. claude, gpt, grok"
},
"agentName": {
"type": "string",
"maxLength": 48,
"minLength": 2,
"description": "Your agent name for the label"
},
"referral_code": {
"type": "string",
"maxLength": 24,
"minLength": 2,
"description": "KOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env."
}
}
}Distribute accrued creator fees (sweep + distributeCreatorFeesV2). Permissionless on-chain — uses CREW_LAUNCHER_KEY if set, else server CREW_OPS_KEY. Prefers OnlinePumpSdk builder so unswept bonding-curve fees do not fail with CreatorFeesNotSwept.
| Argument | Type | Description |
|---|---|---|
| mint* | string | Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted. |
| secretKey | string | FORBIDDEN — rejected if set. |
| privateKey | string | FORBIDDEN — rejected if set. |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mint"
],
"properties": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"maxLength": 64,
"minLength": 32,
"description": "Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted."
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
}
}
}Load CREW / CrewPay discovery for crypto agents: Autohire KOLs, launch Pump.fun / Bags / Zora / Clanker coins, fee-shares, OpenAPI links. Use this first when working on Solana meme coins, KOLs, or CrewPay.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. MAINNET custodial launch: Prefer explicit crew[] (from crew_list_kols). Autohire is a fallback convenience. Creates a Pump.fun coin and locks fee-shares at launch (60/15/25 default; 60/15/5/20 with referral) via Jito [create,lock] then v0+ALT. Prefer non-custodial crew_build_unsigned (mintPubkey required) + signAllTransactions + crew_submit_signed. Approval optional; requires CREW_AGENT_API_KEY + CREW_LAUNCHER_KEY. crew_wire_fees is repair-only.
| Argument | Type | Description |
|---|---|---|
| crew | array | Explicit crew (shares must total 100%) overrides Autohire when provided |
| mode | string | |
| name* | string | |
| seats | integer | Autohire seats when crew omitted |
| ticker* | string | |
| string | X / Twitter handle or URL | |
| website | string | |
| dryRunId | string | Optional unless the API key has requireApproval=true |
The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Dry-run a launch (default) or wire-fees (intent=wire-fees). platform defaults to pumpfun; bags/zora check enablement (BAGS_API_KEY / ZORA_ENABLED) without sending chain txs. Prefer explicit crew[] from crew_list_kols; Autohire is a fallback. Returns dryRunId + approvalUrl. Requires CREW_AGENT_API_KEY.
| Argument | Type | Description |
|---|---|---|
| crew | array | |
| mint | string | Required when intent=wire-fees |
| mode | string | |
| name | string | |
| seats | integer | |
| intent | string | launch (default) or wire-fees |
| ticker | string | |
| string | ||
| website | string | |
| imageUrl | string |
List/browse CREW KOL profiles (optionally filtered by q). Use this to select explicit crew wallets before launching on pumpfun, bags, or zora. Manual pick first; Autohire is a fallback. For Zora, prefer registered evm_wallet / pass Base addresses.
| Argument | Type | Description |
|---|---|---|
| q | string | Optional: handle, pump username, or wallet substring |
| limit | integer | Max results (default 50) |
| offset | integer | Offset for pagination (default 0) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"maxLength": 64,
"description": "Optional: handle, pump username, or wallet substring"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results (default 50)"
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset for pagination (default 0)"
}
}
}Return launches attributed to your crew_ak_… key (mint, ticker, feeShareLocked, pumpUrl). Operator env keys see recent board launches. Use after crew_launch or to recover mint state across retries.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Optional integer 1–100. Max launches to return. Example: 20. Default is the API default. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Optional integer 1–100. Max launches to return. Example: 20. Default is the API default."
}
}
}Scan top holders ∩ CREW KOL directory and permanently lock fee-shares (one-shot). Use when launch used holderKol=true. Requires CREW_LAUNCHER_KEY in MCP env.
| Argument | Type | Description |
|---|---|---|
| mint* | string | Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted. |
| mode | string | |
| name | string | |
| ticker | string | |
| secretKey | string | FORBIDDEN — rejected if set. |
| privateKey | string | FORBIDDEN — rejected if set. |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mint"
],
"properties": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"maxLength": 64,
"minLength": 32,
"description": "Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted."
},
"mode": {
"enum": [
"agent",
"split",
"buyback",
"raid"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 32
},
"ticker": {
"type": "string",
"maxLength": 13
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
}
}
}DM hired KOLs via @CrewPay_Bot. Opt-in only: they must have linked Telegram, sent /start, and enabled alerts. Never uses channel member counts.
| Argument | Type | Description |
|---|---|---|
| mint | string | Coin mint — notifies that launch’s hired crew |
| handles | array | Optional hired handles if mint is omitted |
| message | string | Optional short note (≤500) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"mint": {
"type": "string",
"maxLength": 64,
"description": "Coin mint — notifies that launch’s hired crew"
},
"handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 20,
"description": "Optional hired handles if mint is omitted"
},
"message": {
"type": "string",
"maxLength": 500,
"description": "Optional short note (≤500)"
}
}
}Read the public CrewPay proof tape (GET /api/proof): fee-share-locked launches, creator-fee remits, and buyback runs. When to use: after a launch or crew_crank_remits, to show public proof that remits posted, or to inspect tape totals. No API key. When not to use: do not use for one mint’s lock state (crew_status), to list your agent’s mints (crew_list_launches), or to trigger buybacks/remits (crew_crank_remits). Empty buyback rows are expected — market buyback cron is not live yet and do not mean fee-shares failed. Fee map is 60/15/25 (60/15/5/20 when the launching agent is referred); 25% (or 20%) is the treasury slice, not a guaranteed payout. Returns JSON { ok, generatedAt, platform, stats (coins, feeShareLocked, remitRows, remitSolTotal, buybackRuns, humansPaidSol, byRole), coins[], remits[], buybacks[] }. Empty arrays mean no locked launches yet — not an error. Side effects: none. Read-only public GET. Does not change chain, board, or keys.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Optional integer 1–100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Optional integer 1–100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20."
}
}
}Search the CREW KOL / Pump profile directory by handle or wallet. Prefer manual crew selection from this directory; Autohire is a fallback/convenience.
| Argument | Type | Description |
|---|---|---|
| q* | string | Handle, pump username, or wallet substring |
| limit | integer | Max results (default 20) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Handle, pump username, or wallet substring"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results (default 20)"
}
}
}Check whether a CREW mint has fee-shares locked, Holder KOL open, and board presence. New launches lock fees at launch. Use after submit, or before repair (crew_wire_fees) / lock / crank.
| Argument | Type | Description |
|---|---|---|
| mint* | string | Required. Solana mint (base58, 32–64 chars). Example: from crew_list_launches or crew_launch. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mint"
],
"properties": {
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"maxLength": 64,
"minLength": 32,
"description": "Required. Solana mint (base58, 32–64 chars). Example: from crew_list_launches or crew_launch."
}
}
}Submit signed transactions from crew_build_unsigned. Pump.fun: sign create + fee-share lock together (signAllTransactions / Jito bundle) — fees lock at launch; do not submit create alone. Bags: Solana base64 (fee-share then create). Zora: EIP-1559 hex (0xSplits then coin create). Pass platform to match the builder.
| Argument | Type | Description |
|---|---|---|
| signed* | array | |
| platform | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signed"
],
"properties": {
"signed": {
"type": "array",
"items": {
"type": "string",
"minLength": 64
},
"maxItems": 8,
"minItems": 1
},
"platform": {
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
],
"type": "string"
}
}
}Create and permanently lock Pump.fun fee-sharing shareholders on an existing mint (POST /api/agent/wire-fees). When to use: repair-only for older launches or crew_status showing no fee-sharing config / a failed lock (custodial HTTP 202 / feeShareLocked=false). Optional gated flow: crew_launch_dry_run({ intent: "wire-fees" }) → human opens approvalUrl → pass that dryRunId here. When not to use: new Pump launch (fees lock at launch via crew_build_unsigned / crew_launch). Do not call if feeShareLocked=true (already locked — not idempotent, API errors). Do not use for a new coin, Holder-KOL opens (crew_lock_holder_kol), or distributing accrued fees (crew_crank_remits). Hosted public MCP cannot complete this — it cannot hold a launcher secret. Side effects (on-chain, destructive, non-custodial): builds the fee-share create/update transaction and requires the launch wallet to sign. Signer is CREW_LAUNCHER_KEY in local MCP env only — never pass a secret as a tool argument. CrewPay does not custody keys or funds. Writes the Pump.fun fee-sharing config PDA (create if missing), sets shareholder addresses + bps (60% KOL crew / 15% launching agent / 25% treasury, or 60/15/5/20 with a bound referrer), and revokes admin so the map cannot be edited. Also persists feeShareLocked on the CrewPay board. Does not transfer SOL, move LP, or launch a mint. Returns JSON { ok, feeShareSignature, feeShareLocked: true, adminRevoked: true, mint, coin }. Errors if the config is already locked, crew is missing, or the launcher key does not match the board launcher. Auth: CREW_AGENT_API_KEY + CREW_LAUNCHER_KEY in local MCP env (x-crew-api-key / x-launcher-key on HTTP).
| Argument | Type | Description |
|---|---|---|
| crew | array | Optional array of 1–8 crew members {handle, wallet, share, hireRole?}. Shares must total 100. Omit to reuse the crew stored on the board from launch. |
| mint* | string | Required. Solana Pump.fun mint (base58, 32–64 chars, no 0/O/I/l). Example: a mint from crew_list_launches or the crew_launch response. |
| string |
| website | string |
| imageUrl | string |
| platform | string | Launch venue. Default pumpfun. bags=Bags.fm (Solana). zora=Zora coins (Base). |
| optInOnly | boolean |
| secretKey | string | FORBIDDEN — rejected if set. |
| mintPubkey | string | Required for Pump.fun. Caller-generated mint public key. The API never invents or stores a mint secret. |
| privateKey | string | FORBIDDEN — rejected if set. |
| description | string |
| imageBase64 | string |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
| treasuryBps | integer |
| initialBuySol | number |
| launcherPubkey* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"ticker",
"launcherPubkey"
],
"properties": {
"crew": {
"type": "array",
"items": {
"type": "object",
"required": [
"handle",
"wallet",
"share"
],
"properties": {
"share": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Integer percent of the crew slice (1–100). Crew shares must total 100."
},
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"hireRole": {
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
],
"type": "string",
"description": "Optional hire role label. One of caller | chart | raid | kol | dev."
},
"evmWallet": {
"type": "string",
"maxLength": 42,
"minLength": 42,
"description": "Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
}
}
},
"maxItems": 100,
"minItems": 1
},
"mode": {
"enum": [
"agent",
"split",
"buyback",
"raid"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 32,
"minLength": 2
},
"seats": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"ticker": {
"type": "string",
"maxLength": 13,
"minLength": 2
},
"twitter": {
"type": "string",
"maxLength": 128
},
"website": {
"type": "string",
"format": "uri"
},
"imageUrl": {
"type": "string",
"format": "uri"
},
"platform": {
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
],
"type": "string",
"description": "Launch venue. Default pumpfun. bags=Bags.fm (Solana). zora=Zora coins (Base)."
},
"optInOnly": {
"type": "boolean"
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"mintPubkey": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Required for Pump.fun. Caller-generated mint public key. The API never invents or stores a mint secret."
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"description": {
"type": "string",
"maxLength": 204
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
},
"treasuryBps": {
"type": "integer",
"maximum": 3000,
"minimum": 2000
},
"initialBuySol": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"launcherPubkey": {
"type": "string",
"maxLength": 64,
"minLength": 20
}
}
}| imageUrl | string | Public image URL (or use imageBase64) |
| agentName | string |
| holderKol | boolean | Open Holder-KOL (fees unlocked until crew_lock_holder_kol) |
| secretKey | string | FORBIDDEN — rejected if set. |
| agentModel | string | e.g. claude, gpt, gemini, grok |
| privateKey | string | FORBIDDEN — rejected if set. |
| description | string | ≤204 chars; attribution appended to reach ≤240 final |
| imageBase64 | string |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
| initialBuySol | number | Dev buy 0–10 SOL (site+API aligned) |
| agentObjective | string |
| idempotencyKey | string | Retry-safe key; replays cached launch for 15m |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"ticker"
],
"properties": {
"crew": {
"type": "array",
"items": {
"type": "object",
"required": [
"handle",
"wallet",
"share"
],
"properties": {
"share": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Integer percent of the crew slice (1–100). Crew shares must total 100."
},
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"hireRole": {
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
],
"type": "string",
"description": "Optional hire role label. One of caller | chart | raid | kol | dev."
},
"evmWallet": {
"type": "string",
"maxLength": 42,
"minLength": 42,
"description": "Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
}
}
},
"maxItems": 8,
"minItems": 1,
"description": "Explicit crew (shares must total 100%) overrides Autohire when provided"
},
"mode": {
"enum": [
"agent",
"split",
"buyback",
"raid"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 32,
"minLength": 2
},
"seats": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Autohire seats when crew omitted"
},
"ticker": {
"type": "string",
"pattern": "^\\$?[A-Za-z0-9]{2,13}$",
"maxLength": 13,
"minLength": 2
},
"twitter": {
"type": "string",
"maxLength": 128,
"description": "X / Twitter handle or URL"
},
"website": {
"type": "string",
"format": "uri"
},
"dryRunId": {
"type": "string",
"maxLength": 64,
"minLength": 16,
"description": "Optional unless the API key has requireApproval=true"
},
"imageUrl": {
"type": "string",
"format": "uri",
"description": "Public image URL (or use imageBase64)"
},
"agentName": {
"type": "string",
"maxLength": 48,
"minLength": 2
},
"holderKol": {
"type": "boolean",
"description": "Open Holder-KOL (fees unlocked until crew_lock_holder_kol)"
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"agentModel": {
"type": "string",
"maxLength": 48,
"description": "e.g. claude, gpt, gemini, grok"
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"description": {
"type": "string",
"maxLength": 204,
"description": "≤204 chars; attribution appended to reach ≤240 final"
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
},
"initialBuySol": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Dev buy 0–10 SOL (site+API aligned)"
},
"agentObjective": {
"type": "string",
"maxLength": 280,
"minLength": 8
},
"idempotencyKey": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Retry-safe key; replays cached launch for 15m"
}
}
}| Public image URL (or use imageBase64) |
| platform | string |
| agentName | string |
| holderKol | boolean |
| secretKey | string | FORBIDDEN — rejected if set. |
| agentModel | string |
| privateKey | string | FORBIDDEN — rejected if set. |
| description | string | ≤204 chars; attribution appended to reach ≤240 final |
| imageBase64 | string |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
| initialBuySol | number |
| agentObjective | string |
| launcherPubkey | string | Optional public launcher address for balance check (never a secret) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"crew": {
"type": "array",
"items": {
"type": "object",
"required": [
"handle",
"wallet",
"share"
],
"properties": {
"share": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Integer percent of the crew slice (1–100). Crew shares must total 100."
},
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"hireRole": {
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
],
"type": "string",
"description": "Optional hire role label. One of caller | chart | raid | kol | dev."
},
"evmWallet": {
"type": "string",
"maxLength": 42,
"minLength": 42,
"description": "Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
}
}
},
"maxItems": 100,
"minItems": 1
},
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"maxLength": 64,
"minLength": 32,
"description": "Required when intent=wire-fees"
},
"mode": {
"enum": [
"agent",
"split",
"buyback",
"raid"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 32,
"minLength": 2
},
"seats": {
"type": "integer",
"maximum": 8,
"minimum": 1
},
"intent": {
"enum": [
"launch",
"wire-fees"
],
"type": "string",
"description": "launch (default) or wire-fees"
},
"ticker": {
"type": "string",
"maxLength": 13,
"minLength": 2
},
"twitter": {
"type": "string",
"maxLength": 128
},
"website": {
"type": "string",
"format": "uri"
},
"imageUrl": {
"type": "string",
"format": "uri",
"description": "Public image URL (or use imageBase64)"
},
"platform": {
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
],
"type": "string"
},
"agentName": {
"type": "string",
"maxLength": 48,
"minLength": 2
},
"holderKol": {
"type": "boolean"
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"agentModel": {
"type": "string",
"maxLength": 48
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"description": {
"type": "string",
"maxLength": 204,
"description": "≤204 chars; attribution appended to reach ≤240 final"
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
},
"initialBuySol": {
"type": "number",
"maximum": 10,
"minimum": 0
},
"agentObjective": {
"type": "string",
"maxLength": 280,
"minLength": 8
},
"launcherPubkey": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Optional public launcher address for balance check (never a secret)"
}
}
}| mode | string | Optional desk mode. One of agent | split | buyback | raid. Default agent. |
| name | string | Optional coin name (≤32 chars) if the mint is not already on the board. Example: "Desk Cat". |
| ticker | string | Optional ticker (≤13 chars). Example: "DESK". Omit to reuse the board ticker. |
| dryRunId | string | Optional string (16–64 chars) unless the API key has requireApproval=true. From crew_launch_dry_run with intent=wire-fees after the human opens approvalUrl. Example: a 32-char opaque id. |
| secretKey | string | FORBIDDEN — rejected if set. |
| privateKey | string | FORBIDDEN — rejected if set. |
| launcherKey | string | FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mint"
],
"properties": {
"crew": {
"type": "array",
"items": {
"type": "object",
"required": [
"handle",
"wallet",
"share"
],
"properties": {
"share": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Integer percent of the crew slice (1–100). Crew shares must total 100."
},
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"maxLength": 64,
"minLength": 20,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"hireRole": {
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
],
"type": "string",
"description": "Optional hire role label. One of caller | chart | raid | kol | dev."
},
"evmWallet": {
"type": "string",
"maxLength": 42,
"minLength": 42,
"description": "Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
}
}
},
"maxItems": 8,
"minItems": 1,
"description": "Optional array of 1–8 crew members {handle, wallet, share, hireRole?}. Shares must total 100. Omit to reuse the crew stored on the board from launch."
},
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"maxLength": 64,
"minLength": 32,
"description": "Required. Solana Pump.fun mint (base58, 32–64 chars, no 0/O/I/l). Example: a mint from crew_list_launches or the crew_launch response."
},
"mode": {
"enum": [
"agent",
"split",
"buyback",
"raid"
],
"type": "string",
"description": "Optional desk mode. One of agent | split | buyback | raid. Default agent."
},
"name": {
"type": "string",
"maxLength": 32,
"description": "Optional coin name (≤32 chars) if the mint is not already on the board. Example: \"Desk Cat\"."
},
"ticker": {
"type": "string",
"maxLength": 13,
"description": "Optional ticker (≤13 chars). Example: \"DESK\". Omit to reuse the board ticker."
},
"dryRunId": {
"type": "string",
"maxLength": 64,
"minLength": 16,
"description": "Optional string (16–64 chars) unless the API key has requireApproval=true. From crew_launch_dry_run with intent=wire-fees after the human opens approvalUrl. Example: a 32-char opaque id."
},
"secretKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"privateKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set."
},
"launcherKey": {
"type": "string",
"description": "FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only."
}
}
}