> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voiz.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# Seed a market

> Preview with quoteSeed, then open the OutcomeAmm with market.seed.

Seeding is first LP: `OutcomeAmm.addFunding` with named-outcome odds (Invalid weight 0). Prefer `createMarket({ seedWei, oddsBps })` when you want create+seed in one factory tx. Otherwise `quoteSeed` then `market.seed`. There is no `client.seedMarket`.

You need the market address, enough collateral for `quoteSeed(…).totalCollateral`, and `owner` as the connected wallet.

Odds are percents. `normalizeOddsBps` turns them into basis points that sum to 10\_000 (each outcome 1%–99%).

```ts theme={null}
import { normalizeOddsBps, quoteSeed } from '@voiz-digital/markets-sdk'
import { parseUnits } from 'viem'

const seedWei = parseUnits('100', 18) // match collateral decimals
const oddsBps = normalizeOddsBps([60, 40])

const { splitAmount, poolCollateral, totalCollateral } = quoteSeed({
  seedWei,
  oddsBps,
})
// Show totalCollateral before they confirm — for OutcomeAmm this equals seedWei.

await market.seed({
  seedWei,
  oddsBps,
  owner: yourAddress,
})
```

That is **one** `sendCalls` batch: collateral approve + `addFunding`. On AA, one UserOp. On a plain wallet, still one signature per inner call.

`quoteSeed` does not need a market yet. It returns `totalCollateral === seedWei` (one complete-set deposit). Later LP is [`market.addLiquidity`](/market/add-liquidity), which joins current proportions with an empty hint.

```ts theme={null}
await market.seedStatus() // 'none' | 'seeded'  (AMM totalSupply > 0)
```

## Next

[How liquidity works](/market/liquidity)
