> For the complete documentation index, see [llms.txt](https://docs.artinals.com/artinals-protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.artinals.com/artinals-protocol/market-module/data-structures/buy-offer-buyoffer.md).

# Buy Offer (BuyOffer)

A **buy order** that allows users to place an offer to purchase NFTs at a specified price.

Structure Definition

```
public struct BuyOffer has key, store {
    id: UID,                           // Unique identifier for the buy offer
    buyer: address,                    // Address of the buyer
    collection_id: ID,                  // NFT collection ID
    requested_asset_count: u64,         // Number of NFTs the buyer wants to purchase
    offered_currency: TypeName,         // Currency type offered for the purchase
    offered_amount: u64,                // Price per NFT in the specified currency
    status: u8,                         // Status of the buy offer (OPEN, FILLED, etc.)
    timestamp: u64,                     // Timestamp when the buy offer was created
    ledger_id: ID                        // Reference to the trade ledger
}

```

#### **Purpose**

* Allows users to **place buy orders** for NFTs at a specific price.
* Supports **partial fulfillment**, meaning sellers can accept portions of the order.
* Facilitates **liquidity in NFT trading** by enabling an **order book system**.
