# Launch a Cash Payback or basket coin

> Fees to the coin's holders, in the pairing or a basket of assets.


Send `mode: "cash_payback"` and leave out `fees_to`. The coin's fees go to its holders; the launching wallet gets the $299 DexScreener cost back first.

```json
{ "wallet": "...", "name": "Example", "symbol": "EXM", "image": "...", "dev_buy_sol": 0.5, "mode": "cash_payback" }
```

Any pair in `quote_mint` works for a plain Cash Payback coin.

## Baskets

A basket coin pays holders in up to 15 assets instead of the pairing. Read `GET /payback` (`baskets`) and `GET /rewards/assets` first: they list the types, the size limits and every asset a basket may hold.

```json
{ "mode": "cash_payback",
  "basket": { "type": "payout",
              "legs": [ { "mint": "So11111111111111111111111111111111111111112", "weight": 5000 },
                        { "mint": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB", "weight": 5000 } ] } }
```

- **Payout basket:** the holders' part buys the basket and every asset is sent to holders each dividend. Nothing is held.
- **Fund basket:** the holders' part buys the basket and the coin keeps it. Holders are paid each asset's gain above what it cost. A Fund basket takes stocks, pre-stocks, majors and big memes, never USDC. `payback` adds one asset that part of the holders' share buys and pays every round.
- `weight` is in basis points adding up to 10000. Leave out every weight for an even split.
- Each asset is checked before anything is built: at most a 5% transfer fee, no transfer hook, not frozen, and a swap route from the pairing. A refusal answers 400 with `error.rejected`, one reason per asset.
- The basket is locked at launch. Baskets need a SOL pair.
- Send `basket`. The older `reward_basket` and `basket_type` fields still work in v1 but are deprecated; never send both forms.
