# Split Pool CSWR Play

> Split Pool CSWR Play is a paid API for AI agents from split.compose.land, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-15).

Stakes USDC into a Continuous Stake-Weighted Rollover pool on Base and immediately settles a win/lose outcome with an on-chain payout.

## Facts

- Endpoint: POST https://split.compose.land/v1/pool/play
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/split-pool-cswr-play-42050d53
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0PgIn8l4y3tOMDir6HHgF

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 split-pool-cswr-play-42050d53 -d '<json body>'
```

Example prompt: Play a round on the Split Pool CSWR with a 0.50 USDC stake and tell me whether I won or lost and what my payout was.

## When to prefer this

Choose this endpoint when you want an instant, single-event, on-chain USDC stake-and-payout game on Base with no lobby or batching. It is ideal for autonomous agents running independent plays, testing pool dynamics, or building automated game loops where each call is self-contained and settled immediately to the calling wallet.

## Known failure modes

- Stake amount outside allowed range (0.10–5.00 USDC) returns a validation error
- Insufficient pool liquidity may trigger a solvency cap reducing the actual payout below target
- On-chain payout transaction failure returns payoutError with a message and null payoutTxHash
- x402 payment not included or malformed results in 402 Payment Required before play is attempted
- Network or RPC issues on Base may delay or fail settlement

## How this service works

Continuous Stake-Weighted Rollover (CSWR) pool on Base. Stake USDC, win a pool-scaled multiple or get a partial refund back. Every /v1/pool/play call is an independent event — no lobby, no batching. Payout always returns to the same wallet that signed the payment.

## Output

Returns a JSON object with the play outcome (win or lose), stake and payout amounts in atomic USDC units, rake deducted, pool size before and after the play, the dynamic multiplier in basis points, solvency cap if applied, an on-chain payout transaction hash (or null on loss), and an ISO timestamp of settlement. The paying wallet address is also echoed back.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "stakeUsdc": {
   "type": "string",
   "description": "Stake amount in USDC (0.10-5.00)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "ok",
  "outcome",
  "stakeAtomic",
  "rakeAtomic",
  "netStakeAtomic",
  "activePoolBeforeAtomic",
  "payoutAtomic",
  "poolAfterAtomic",
  "wallet",
  "settledAt"
 ],
 "properties": {
  "ok": {
   "type": "boolean"
  },
  "wallet": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$",
   "description": "Paying wallet address."
  },
  "outcome": {
   "enum": [
    "win",
    "lose"
   ],
   "type": "string"
  },
  "capAtomic": {
   "type": [
    "string",
    "null"
   ],
   "description": "Solvency cap applied, or null for losses."
  },
  "settledAt": {
   "type": "string",
   "format": "date-time",
   "description": "ISO timestamp when this play was processed."
  },
  "rakeAtomic": {
   "type": "string",
   "description": "Rake taken in atomic USDC units."
  },
  "payoutError": {
   "type": [
    "string",
    "null"
   ],
   "description": "Payout error message, or null."
  },
  "stakeAtomic": {
   "type": "string",
   "description": "Stake amount in atomic USDC units (6 decimals)."
  },
  "payoutAtomic": {
   "type": "string",
   "description": "Actual payout in atomic USDC units."
  },
  "payoutTxHash": {
   "type": [
    "string",
    "null"
   ],
   "description": "On-chain payout transaction hash, or null."
  },
  "netStakeAtomic": {
   "type": "string",
   "description": "Stake net of rake in atomic USDC units."
  },
  "poolAfterAtomic": {
   "type": "string",
   "description": "Pool size after this play in atomic USDC units."
  },
  "targetPayoutAtomic": {
   "type": [
    "string",
    "null"
   ],
   "description": "Target payout before solvency cap, or null for losses."
  },
  "dynamicMultiplierBps": {
   "type": [
    "number",
    "null"
   ],
   "description": "Dynamic multiplier in basis points, or null."
  },
  "activePoolBeforeAtomic": {
   "type": "string",
   "description": "Pool size before this play in atomic USDC units."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/split-pool-cswr-play-42050d53/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from split.compose.land](https://www.zero.xyz/host/split.compose.land/llms.txt)
