CREW / CrewPay
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
CrewPay MCP: Pump.fun/Bags/Zora unsigned launches with KOL Autohire and on-chain fee-shares.
| Author | io.github.fxams |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 325 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
" CrewPay": {
"url": "https://mcp.crewpay.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
crew_build_unsignedread-onlyThe 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.
Parameters:
name(required) — stringticker(required) — stringlauncherPubkey(required) — stringcrew— arraymode— stringseats— integertwitter— stringwebsite— stringimageUrl— stringplatform— string — Launch venue. Default pumpfun. bags=Bags.fm (Solana). zora=Zora coins (Base).optInOnly— booleansecretKey— 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— stringimageBase64— stringlauncherKey— string — FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.treasuryBps— integerinitialBuySol— number
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_submit_signeddestructiveSubmit 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.
Parameters:
signed(required) — arrayplatform— string
Hints: read-only no · destructive yes · idempotent no · open-world yes
crew_discoverread-onlyLoad 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_claim_keyMint 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.
Parameters:
label— string — Key label (default agent)model— string — Model id e.g. claude, gpt, grokagentName— string — Your agent name for the labelreferral_code— string — KOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env.
Hints: read-only no · destructive no · idempotent no · open-world yes
crew_search_kolsread-onlySearch the CREW KOL / Pump profile directory by handle or wallet. Prefer manual crew selection from this directory; Autohire is a fallback/convenience.
Parameters:
q(required) — string — Handle, pump username, or wallet substringlimit— integer — Max results (default 20)
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_list_kolsread-onlyList/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.
Parameters:
q— string — Optional: handle, pump username, or wallet substringlimit— integer — Max results (default 50)offset— integer — Offset for pagination (default 0)
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_autohireread-onlyThe 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.
Parameters:
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”)
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_notify_hired_crewDM hired KOLs via @CrewPay_Bot. Opt-in only: they must have linked Telegram, sent /start, and enabled alerts. Never uses channel member counts.
Parameters:
mint— string — Coin mint — notifies that launch’s hired crewhandles— array — Optional hired handles if mint is omittedmessage— string — Optional short note (≤500)
Hints: read-only no · destructive no · idempotent no · open-world yes
crew_launch_dry_runread-onlyThe 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.
Parameters:
crew— arraymint— string — Required when intent=wire-feesmode— stringname— stringseats— integerintent— string — launch (default) or wire-feesticker— stringtwitter— stringwebsite— stringimageUrl— string — Public image URL (or use imageBase64)platform— stringagentName— stringholderKol— booleansecretKey— string — FORBIDDEN — rejected if set.agentModel— stringprivateKey— string — FORBIDDEN — rejected if set.description— string — ≤204 chars; attribution appended to reach ≤240 finalimageBase64— stringlauncherKey— string — FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.initialBuySol— numberagentObjective— stringlauncherPubkey— string — Optional public launcher address for balance check (never a secret)
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_statusread-onlyCheck 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.
Parameters:
mint(required) — string — Required. Solana mint (base58, 32–64 chars). Example: from crew_list_launches or crew_launch.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_wire_feesdestructiveCreate 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).
Parameters:
mint(required) — 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.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.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.
Hints: read-only no · destructive yes · idempotent no · open-world yes
crew_list_launchesread-onlyReturn 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.
Parameters:
limit— integer — Optional integer 1–100. Max launches to return. Example: 20. Default is the API default.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_lock_holder_koldestructiveScan 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.
Parameters:
mint(required) — 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— stringname— stringticker— stringsecretKey— 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.
Hints: read-only no · destructive yes · idempotent no · open-world yes
crew_crank_remitsdestructiveDistribute 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.
Parameters:
mint(required) — 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.
Hints: read-only no · destructive yes · idempotent no · open-world yes
crew_proofread-onlyRead 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.
Parameters:
limit— integer — Optional integer 1–100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
crew_launchdestructiveThe 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.
Parameters:
name(required) — stringticker(required) — stringcrew— array — Explicit crew (shares must total 100%) overrides Autohire when providedmode— stringseats— integer — Autohire seats when crew omittedtwitter— string — X / Twitter handle or URLwebsite— stringdryRunId— string — Optional unless the API key has requireApproval=trueimageUrl— string — Public image URL (or use imageBase64)agentName— stringholderKol— boolean — Open Holder-KOL (fees unlocked until crew_lock_holder_kol)secretKey— string — FORBIDDEN — rejected if set.agentModel— string — e.g. claude, gpt, gemini, grokprivateKey— string — FORBIDDEN — rejected if set.description— string — ≤204 chars; attribution appended to reach ≤240 finalimageBase64— stringlauncherKey— string — FORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.initialBuySol— number — Dev buy 0–10 SOL (site+API aligned)agentObjective— stringidempotencyKey— string — Retry-safe key; replays cached launch for 15m
Hints: read-only no · destructive yes · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.