# Sales

A primary sale runs through the shared fixed-price minter, a single ownerless contract per chain that
serves every project. Only the fixed-price minter ships now; see [Minting](../../protocol/minting.md)
for the protocol model.

Sales run against a collection. A 1/1 has no minter, so to sell a single piece, deploy a one-token
collection (`abx deploy-series --count 1`).

## Configure and buy

- `abx minter configure <token> --price <eth> --allocation <n>`: set the price and how many tokens this minter may sell for the project. Use `--price-raw <units>` for exact base units, and `--erc20 0x...` to price in an ERC-20 instead of ETH. Only the token owner can configure.
- `abx minter show <token>`: the sale terms, whether the minter is assigned on the token, the payee, the pause state, and supply.
- `abx minter buy <token> [--to 0x...]`: buy one token. An ERC-20 sale needs a prior approval to the minter.

## Wiring a collection for sale

A sale needs two separate grants, both from the project owner, plus a payee. Run them in this order:

1. `abx minter configure <token> ...`: set the sale terms on the minter.
2. `abx set-minter <token> --minter <address>`: authorize that minter on the token.
3. `abx set-primary-payee <token> --payee 0x...`: set the payout address. A sale reverts without one.
4. `abx unpause <token>`: open minting. Run this last.

"Configured" on the minter and "assigned" on the token are different grants; a sale needs both. Use
`abx set-max-invocations <token> --max <n>` to lower the supply cap, which only decreases, and
`abx pause <token>` to return to owner-only minting.

## Mint page

`abx mint-page <token>` scaffolds a self-contained mint site for the fixed-price minter, ready to deploy
to a static host. It reads the sale state and images directly from the chain. Sales are in ETH in this
version.
