CREW / CrewPay
CrewPay MCP: Pump.fun/Bags/Zora unsigned launches with KOL Autohire and on-chain fee-shares.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"crewpay-mcp": {
"command": "npx",
"args": [
"crewpay-mcp"
]
}
}
}Runnable packages
1.2.11stdioRemote endpoints
https://mcp.crewpay.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (16)
π’crew_build_unsigned(name, ticker, description, imageUrl, imageBase64, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 32
},
"ticker": {
"type": "string",
"minLength": 2,
"maxLength": 13
},
"description": {
"type": "string",
"maxLength": 204
},
"imageUrl": {
"type": "string",
"format": "uri"
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"seats": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"mode": {
"type": "string",
"enum": [
"agent",
"split",
"buyback",
"raid"
]
},
"initialBuySol": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"twitter": {
"type": "string",
"maxLength": 128
},
"website": {
"type": "string",
"format": "uri"
},
"launcherPubkey": {
"type": "string",
"minLength": 20,
"maxLength": 64
},
"mintPubkey": {
"description": "Required for Pump.fun. Caller-generated mint public key. The API never invents or stores a mint secret.",
"type": "string",
"minLength": 20,
"maxLength": 64
},
"optInOnly": {
"type": "boolean"
},
"treasuryBps": {
"type": "integer",
"minimum": 2000,
"maximum": 3000
},
"platform": {
"description": "Launch venue. Default pumpfun. bags=Bags.fm (Solana). zora=Zora coins (Base).",
"type": "string",
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
]
},
"crew": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"minLength": 20,
"maxLength": 64,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"share": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Integer percent of the crew slice (1β100). Crew shares must total 100."
},
"hireRole": {
"description": "Optional hire role label. One of caller | chart | raid | kol | dev.",
"type": "string",
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
]
},
"evmWallet": {
"description": "Optional 0x⦠Base address (42 chars) for Zora/Clanker payouts.",
"type": "string",
"minLength": 42,
"maxLength": 42
}
},
"required": [
"handle",
"wallet",
"share"
]
}
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"required": [
"name",
"ticker",
"launcherPubkey"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π΄crew_submit_signed(signed, platform)
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.
Input Schema
{
"type": "object",
"properties": {
"signed": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 64
}
},
"platform": {
"type": "string",
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
]
}
},
"required": [
"signed"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_discover
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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺcrew_claim_key(label, agentName, model, referral_code)
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.
Input Schema
{
"type": "object",
"properties": {
"label": {
"description": "Key label (default agent)",
"type": "string",
"minLength": 2,
"maxLength": 64
},
"agentName": {
"description": "Your agent name for the label",
"type": "string",
"minLength": 2,
"maxLength": 48
},
"model": {
"description": "Model id e.g. claude, gpt, grok",
"type": "string",
"minLength": 1,
"maxLength": 48
},
"referral_code": {
"description": "KOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env.",
"type": "string",
"minLength": 2,
"maxLength": 24
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_search_kols(q, limit)
Search the CREW KOL / Pump profile directory by handle or wallet. Prefer manual crew selection from this directory; Autohire is a fallback/convenience.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Handle, pump username, or wallet substring"
},
"limit": {
"description": "Max results (default 20)",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"q"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_list_kols(q, limit, offset)
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.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Optional: handle, pump username, or wallet substring",
"type": "string",
"maxLength": 64
},
"limit": {
"description": "Max results (default 50)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Offset for pagination (default 0)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_autohire(name, ticker, description, seats)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Token name (2β32 on launch)",
"type": "string",
"maxLength": 32
},
"ticker": {
"description": "Token ticker (2β13 on launch)",
"type": "string",
"maxLength": 13
},
"description": {
"description": "Narrative / vibe (β€204 β leaves room for βLaunched from CrewPay.dev platformβ)",
"type": "string",
"maxLength": 204
},
"seats": {
"description": "Crew seats 1β8 (default 5)",
"type": "integer",
"minimum": 1,
"maximum": 8
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺcrew_notify_hired_crew(mint, handles, message)
DM hired KOLs via @CrewPay_Bot. Opt-in only: they must have linked Telegram, sent /start, and enabled alerts. Never uses channel member counts.
Input Schema
{
"type": "object",
"properties": {
"mint": {
"description": "Coin mint β notifies that launchβs hired crew",
"type": "string",
"maxLength": 64
},
"handles": {
"description": "Optional hired handles if mint is omitted",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"message": {
"description": "Optional short note (β€500)",
"type": "string",
"maxLength": 500
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_launch_dry_run(intent, name, ticker, description, imageUrl, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"intent": {
"description": "launch (default) or wire-fees",
"type": "string",
"enum": [
"launch",
"wire-fees"
]
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 32
},
"ticker": {
"type": "string",
"minLength": 2,
"maxLength": 13
},
"description": {
"description": "β€204 chars; attribution appended to reach β€240 final",
"type": "string",
"maxLength": 204
},
"imageUrl": {
"description": "Public image URL (or use imageBase64)",
"type": "string",
"format": "uri"
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"seats": {
"type": "integer",
"minimum": 1,
"maximum": 8
},
"mode": {
"type": "string",
"enum": [
"agent",
"split",
"buyback",
"raid"
]
},
"initialBuySol": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"twitter": {
"type": "string",
"maxLength": 128
},
"website": {
"type": "string",
"format": "uri"
},
"holderKol": {
"type": "boolean"
},
"mint": {
"description": "Required when intent=wire-fees",
"type": "string",
"minLength": 32,
"maxLength": 64,
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$"
},
"launcherPubkey": {
"description": "Optional public launcher address for balance check (never a secret)",
"type": "string",
"minLength": 20,
"maxLength": 64
},
"agentName": {
"type": "string",
"minLength": 2,
"maxLength": 48
},
"agentObjective": {
"type": "string",
"minLength": 8,
"maxLength": 280
},
"agentModel": {
"type": "string",
"maxLength": 48
},
"crew": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"minLength": 20,
"maxLength": 64,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"share": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Integer percent of the crew slice (1β100). Crew shares must total 100."
},
"hireRole": {
"description": "Optional hire role label. One of caller | chart | raid | kol | dev.",
"type": "string",
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
]
},
"evmWallet": {
"description": "Optional 0x⦠Base address (42 chars) for Zora/Clanker payouts.",
"type": "string",
"minLength": 42,
"maxLength": 42
}
},
"required": [
"handle",
"wallet",
"share"
]
}
},
"platform": {
"type": "string",
"enum": [
"pumpfun",
"bags",
"zora",
"clanker",
"vibevibe",
"sui"
]
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_status(mint)
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.
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"minLength": 32,
"maxLength": 64,
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"description": "Required. Solana mint (base58, 32β64 chars). Example: from crew_list_launches or crew_launch."
}
},
"required": [
"mint"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π΄crew_wire_fees(mint, dryRunId, mode, name, ticker, ...)
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).
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"minLength": 32,
"maxLength": 64,
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"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."
},
"dryRunId": {
"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.",
"type": "string",
"minLength": 16,
"maxLength": 64
},
"mode": {
"description": "Optional desk mode. One of agent | split | buyback | raid. Default agent.",
"type": "string",
"enum": [
"agent",
"split",
"buyback",
"raid"
]
},
"name": {
"description": "Optional coin name (β€32 chars) if the mint is not already on the board. Example: \"Desk Cat\".",
"type": "string",
"maxLength": 32
},
"ticker": {
"description": "Optional ticker (β€13 chars). Example: \"DESK\". Omit to reuse the board ticker.",
"type": "string",
"maxLength": 13
},
"crew": {
"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.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"minLength": 20,
"maxLength": 64,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"share": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Integer percent of the crew slice (1β100). Crew shares must total 100."
},
"hireRole": {
"description": "Optional hire role label. One of caller | chart | raid | kol | dev.",
"type": "string",
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
]
},
"evmWallet": {
"description": "Optional 0x⦠Base address (42 chars) for Zora/Clanker payouts.",
"type": "string",
"minLength": 42,
"maxLength": 42
}
},
"required": [
"handle",
"wallet",
"share"
]
}
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"required": [
"mint"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_list_launches(limit)
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.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Optional integer 1β100. Max launches to return. Example: 20. Default is the API default.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π΄crew_lock_holder_kol(mint, mode, name, ticker, launcherKey, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"minLength": 32,
"maxLength": 64,
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"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": {
"type": "string",
"enum": [
"agent",
"split",
"buyback",
"raid"
]
},
"name": {
"type": "string",
"maxLength": 32
},
"ticker": {
"type": "string",
"maxLength": 13
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"required": [
"mint"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π΄crew_crank_remits(mint, launcherKey, privateKey, secretKey)
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.
Input Schema
{
"type": "object",
"properties": {
"mint": {
"type": "string",
"minLength": 32,
"maxLength": 64,
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
"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."
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"required": [
"mint"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’crew_proof(limit)
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.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Optional integer 1β100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}π΄crew_launch(dryRunId, name, ticker, description, imageUrl, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"dryRunId": {
"description": "Optional unless the API key has requireApproval=true",
"type": "string",
"minLength": 16,
"maxLength": 64
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 32
},
"ticker": {
"type": "string",
"minLength": 2,
"maxLength": 13,
"pattern": "^\\$?[A-Za-z0-9]{2,13}$"
},
"description": {
"description": "β€204 chars; attribution appended to reach β€240 final",
"type": "string",
"maxLength": 204
},
"imageUrl": {
"description": "Public image URL (or use imageBase64)",
"type": "string",
"format": "uri"
},
"imageBase64": {
"type": "string",
"minLength": 64
},
"seats": {
"description": "Autohire seats when crew omitted",
"type": "integer",
"minimum": 1,
"maximum": 8
},
"mode": {
"type": "string",
"enum": [
"agent",
"split",
"buyback",
"raid"
]
},
"initialBuySol": {
"description": "Dev buy 0β10 SOL (site+API aligned)",
"type": "number",
"minimum": 0,
"maximum": 10
},
"twitter": {
"description": "X / Twitter handle or URL",
"type": "string",
"maxLength": 128
},
"website": {
"type": "string",
"format": "uri"
},
"holderKol": {
"description": "Open Holder-KOL (fees unlocked until crew_lock_holder_kol)",
"type": "boolean"
},
"agentName": {
"type": "string",
"minLength": 2,
"maxLength": 48
},
"agentObjective": {
"type": "string",
"minLength": 8,
"maxLength": 280
},
"agentModel": {
"description": "e.g. claude, gpt, gemini, grok",
"type": "string",
"maxLength": 48
},
"idempotencyKey": {
"description": "Retry-safe key; replays cached launch for 15m",
"type": "string",
"minLength": 8,
"maxLength": 128
},
"crew": {
"description": "Explicit crew (shares must total 100%) overrides Autohire when provided",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "X / Pump handle without @. Example: \"crewpayhq\". Required."
},
"wallet": {
"type": "string",
"minLength": 20,
"maxLength": 64,
"description": "Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
},
"share": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Integer percent of the crew slice (1β100). Crew shares must total 100."
},
"hireRole": {
"description": "Optional hire role label. One of caller | chart | raid | kol | dev.",
"type": "string",
"enum": [
"caller",
"chart",
"raid",
"kol",
"dev"
]
},
"evmWallet": {
"description": "Optional 0x⦠Base address (42 chars) for Zora/Clanker payouts.",
"type": "string",
"minLength": 42,
"maxLength": 42
}
},
"required": [
"handle",
"wallet",
"share"
]
}
},
"launcherKey": {
"description": "FORBIDDEN β rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.",
"type": "string"
},
"privateKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
},
"secretKey": {
"description": "FORBIDDEN β rejected if set.",
"type": "string"
}
},
"required": [
"name",
"ticker"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence