# CrewPay Agent Launch (Unsigned Transaction)

> CrewPay Agent Launch (Unsigned Transaction) is a paid API for AI agents from api.crewpay.dev, paid per call via x402, $0.1/call, status unknown (last checked 2026-11-03).

Prepares an unsigned Solana transaction to launch a meme coin on Pump.fun (or Bags/Zora) with permanent on-chain KOL fee-shares, returning a base64 transaction for local signing.

## Facts

- Endpoint: POST https://api.crewpay.dev/api/agent/launch/unsigned?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-03
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crewpay-agent-launch-unsigned-transaction-b5a47767
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JyKoMBiInwLr31YynaSpZ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crewpay-agent-launch-unsigned-transaction-b5a47767 -d '<json body>'
```

Example prompt: Launch a new meme coin called 'MoonCat' with ticker $MCAT on Pump.fun using my wallet ABC123, auto-hire 3 KOL seats, use this image https://example.com/mooncat.png, and set an initial buy of 0.5 SOL — the vibe is 'the internet's favorite cat, now on-chain'.

## When to prefer this

Choose this endpoint when you need to launch a meme coin on Pump.fun, Bags, or Zora with automatic on-chain KOL fee splits — particularly when you want AI agents to programmatically hire influencers and distribute revenue shares without manual coordination. Prefer this over generic token launch tools when permanent fee-sharing (60/15/25 split) and KOL management are requirements.

## Known failure modes

- Missing launcherPubkey for pumpfun/bags platform causes validation error
- KOL crew shares not summing to 100 causes rejection
- imageUrl not publicly accessible or wrong format (non-PNG/JPEG/WebP/GIF) causes failure
- ticker or name exceeding character limits returns 400 validation error
- initialBuySol exceeding 10 SOL maximum causes rejection
- treasuryBps outside 2000-3000 range causes validation failure
- Unsigned transaction must still be submitted to /api/agent/launch/submit or coin is never created

## How this service works

Production Pump.fun fee desk on Solana mainnet. AI agents hire KOLs with permanent on-chain fee-shares (60% KOLs · 15% agent · 25% CrewPay treasury). Buyback cron not live yet.

## Output

Returns a JSON object with ok:true, a base64-encoded unsigned transaction to be signed locally, step-by-step signing instructions (sign then POST to /api/agent/launch/submit), a human-readable fee map (60% KOLs, 15% agent, 25% treasury), and the target platform name. The private key never leaves the client.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "crew": {
   "type": "array",
   "items": {
    "type": "object"
   },
   "description": "Explicit KOL crew. Prefer this over Autohire. Shares must total 100."
  },
  "name": {
   "type": "string",
   "maxLength": 32,
   "minLength": 2,
   "description": "Coin name."
  },
  "seats": {
   "type": "integer",
   "maximum": 20,
   "minimum": 1
  },
  "ticker": {
   "type": "string",
   "maxLength": 13,
   "minLength": 2,
   "description": "Ticker."
  },
  "twitter": {
   "type": "string",
   "maxLength": 128
  },
  "website": {
   "type": "string",
   "maxLength": 256
  },
  "autoHire": {
   "description": "true | seats number | { seats }. Fallback when crew[] is omitted."
  },
  "imageUrl": {
   "type": "string",
   "format": "uri",
   "description": "Public PNG/JPEG/WebP/GIF URL."
  },
  "platform": {
   "enum": [
    "pumpfun",
    "bags",
    "zora",
    "clanker",
    "vibevibe"
   ],
   "type": "string",
   "default": "pumpfun",
   "description": "Launch venue. pumpfun and bags are Solana; zora and clanker are Base; vibevibe is Robinhood Chain."
  },
  "optInOnly": {
   "type": "boolean"
  },
  "mintPubkey": {
   "type": "string",
   "description": "Required for Pump.fun unsigned builds. Caller-generated mint public key. The API does not invent or store a mint secret."
  },
  "description": {
   "type": "string",
   "maxLength": 204,
   "description": "User vibe (≤204 chars)."
  },
  "imageBase64": {
   "type": "string",
   "description": "Raw image bytes as base64 (alternative to imageUrl)."
  },
  "treasuryBps": {
   "type": "integer",
   "maximum": 3000,
   "minimum": 2000
  },
  "initialBuySol": {
   "type": "number",
   "maximum": 10,
   "minimum": 0
  },
  "launcherPubkey": {
   "type": "string",
   "description": "Address that will sign. Required for pumpfun/bags. Zora may use the paying wallet."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "note": "Sign locally, then POST /api/agent/launch/submit. CrewPay never holds the key.",
  "steps": [
   {
    "action": "sign",
    "encoding": "base64"
   }
  ],
  "feeMap": "60% to the KOL crew, 15% to the launching agent, 25% to the treasury",
  "platform": "pumpfun"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crewpay-agent-launch-unsigned-transaction-b5a47767/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.crewpay.dev](https://www.zero.xyz/host/api.crewpay.dev/llms.txt)
