# Listings and offers

Orders are EIP-712 messages signed by the maker and stored off-chain; settlement happens on-chain when a taker fills them.

## Create a listing

`POST /listings` with the signed order. The API validates the signature, the maker's ownership and approval, and returns the order with an `id` and `hash`.

## Fulfil a listing

`POST /listings/{id}/fulfillment` with the taker address. The response contains the transaction parameters to submit — and, for creator-earnings-enforced collections, the Unvault server signature required by the settlement route. Signatures are short-lived; request them at the moment of fulfilment.

## Offers

`POST /offers` for item, collection and trait offers (paid in a wrapped or ERC-20 currency). `POST /offers/{id}/fulfillment` returns the transaction for the holder accepting the offer.

## Cancellation

Cancelling a signed order requires an on-chain transaction from the maker; `DELETE /listings/{id}` only hides an order from Unvault's index and does not invalidate it.
