---
title: "Create a collection bid"
method: POST
path: "/v1/chains/{chain_name}/orders/collection-bids"
tags: ["orders"]
---

# Create a collection bid

`POST /v1/chains/{chain_name}/orders/collection-bids`

Create a collection bid

## Path parameters

- `chain_name` string, required — The name of chain

## Request body

- CreateCollectionBidRequestBody
  - `account_address` string, required
  - `order_hash` string, required
  - `buy` AssetCollectionItem[], required — Buy item for collection bid should either be ERC721 or ERC1155 collection item
    - union
      - ERC721CollectionItem
        - `type` 'ERC721_COLLECTION', required — Token type user is offering, which in this case is ERC721
        - `contract_address` string, required — Address of ERC721 collection
        - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
      - ERC1155CollectionItem
        - `type` 'ERC1155_COLLECTION', required — Token type user is offering, which in this case is ERC1155
        - `contract_address` string, required — Address of ERC1155 collection
        - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
  - `fees` Fee[], required — Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.
    - `amount` string, required — Fee payable to recipient upon settlement
    - `type` 'ROYALTY' | 'MAKER_ECOSYSTEM' | 'TAKER_ECOSYSTEM' | 'PROTOCOL', required — Fee type
    - `recipient_address` string, required — Wallet address of fee recipient
  - `end_at` string, date-time, required — Time after which the Order is considered expired
  - `protocol_data` ProtocolData, required
    - `order_type` 'FULL_RESTRICTED' | 'PARTIAL_RESTRICTED', required — Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED
    - `counter` string, required — big.Int or uint256 string for order counter
    - `zone_address` string, required — Immutable zone address
    - `seaport_address` string, required — Immutable Seaport contract address
    - `seaport_version` string, required — Immutable Seaport contract version
  - `salt` string, required — A random value added to the create Order request
  - `sell` ERC20Item[], required — Sell item for collection bid should be an ERC20 item
    - `type` 'ERC20', required — Token type user is offering, which in this case is ERC20
    - `contract_address` string, required — Address of ERC20 token
    - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
  - `signature` string, required — Digital signature generated by the user for the specific Order
  - `start_at` string, date-time, required — Time after which Order is considered active

## Response `201`

Created response.

- CollectionBidResult
  - `result` Order, required
    - `account_address` string, required
    - `buy` Item[], required
      - union
        - NativeItem
          - `type` 'NATIVE', required — Token type user is offering, which in this case is the native IMX token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC20Item
          - `type` 'ERC20', required — Token type user is offering, which in this case is ERC20
          - `contract_address` string, required — Address of ERC20 token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC721Item
          - `type` 'ERC721', required — Token type user is offering, which in this case is ERC721
          - `contract_address` string, required — Address of ERC721 token
          - `token_id` string, required — ID of ERC721 token
        - ERC1155Item
          - `type` 'ERC1155', required — Token type user is offering, which in this case is ERC1155
          - `contract_address` string, required — Address of ERC1155 token
          - `token_id` string, required — ID of ERC1155 token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC721CollectionItem
          - `type` 'ERC721_COLLECTION', required — Token type user is offering, which in this case is ERC721
          - `contract_address` string, required — Address of ERC721 collection
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC1155CollectionItem
          - `type` 'ERC1155_COLLECTION', required — Token type user is offering, which in this case is ERC1155
          - `contract_address` string, required — Address of ERC1155 collection
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
    - `fees` Fee[], required
      - `amount` string, required — Fee payable to recipient upon settlement
      - `type` 'ROYALTY' | 'MAKER_ECOSYSTEM' | 'TAKER_ECOSYSTEM' | 'PROTOCOL', required — Fee type
      - `recipient_address` string, required — Wallet address of fee recipient
    - `chain` Chain, required — The chain details
      - `id` string, required — The id of chain
      - `name` string, required — The name of chain
    - `created_at` string, date-time, required — Time the Order is created
    - `end_at` string, date-time, required — Time after which the Order is considered expired
    - `id` string, required — Global Order identifier
    - `order_hash` string, required
    - `protocol_data` ProtocolData, required
      - `order_type` 'FULL_RESTRICTED' | 'PARTIAL_RESTRICTED', required — Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED
      - `counter` string, required — big.Int or uint256 string for order counter
      - `zone_address` string, required — Immutable zone address
      - `seaport_address` string, required — Immutable Seaport contract address
      - `seaport_version` string, required — Immutable Seaport contract version
    - `salt` string, required — A random value added to the create Order request
    - `sell` Item[], required
      - union
        - NativeItem
          - `type` 'NATIVE', required — Token type user is offering, which in this case is the native IMX token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC20Item
          - `type` 'ERC20', required — Token type user is offering, which in this case is ERC20
          - `contract_address` string, required — Address of ERC20 token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC721Item
          - `type` 'ERC721', required — Token type user is offering, which in this case is ERC721
          - `contract_address` string, required — Address of ERC721 token
          - `token_id` string, required — ID of ERC721 token
        - ERC1155Item
          - `type` 'ERC1155', required — Token type user is offering, which in this case is ERC1155
          - `contract_address` string, required — Address of ERC1155 token
          - `token_id` string, required — ID of ERC1155 token
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC721CollectionItem
          - `type` 'ERC721_COLLECTION', required — Token type user is offering, which in this case is ERC721
          - `contract_address` string, required — Address of ERC721 collection
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
        - ERC1155CollectionItem
          - `type` 'ERC1155_COLLECTION', required — Token type user is offering, which in this case is ERC1155
          - `contract_address` string, required — Address of ERC1155 collection
          - `amount` string, required — A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).
    - `signature` string, required — Digital signature generated by the user for the specific Order
    - `start_at` string, date-time, required — Time after which Order is considered active
    - `status` union, required — The Order status
      - CancelledOrderStatus
        - `name` 'CANCELLED', required — The order status indicating a order is has been cancelled or about to be cancelled.
        - `pending` boolean, required — Whether the cancellation of the order is pending
        - `cancellation_type` 'ON_CHAIN' | 'OFF_CHAIN' | 'UNDERFUNDED', required — Whether the cancellation was done on-chain or off-chain or as a result of an underfunded account
      - PendingOrderStatus
        - `name` 'PENDING', required — The order status that indicates the order is yet to be active due to various reasons.
        - `evaluated` boolean, required — Whether the order has been evaluated after its creation
        - `started` boolean, required — Whether the order has reached its specified start time
      - ActiveOrderStatus
        - `name` 'ACTIVE', required — The order status that indicates an order can be fulfilled.
      - InactiveOrderStatus
        - `name` 'INACTIVE', required — The order status that indicates an order cannot be fulfilled.
        - `sufficient_approvals` boolean, required — Whether the order offerer has sufficient approvals
        - `sufficient_balances` boolean, required — Whether the order offerer still has sufficient balance to complete the order
      - FilledOrderStatus
        - `name` 'FILLED', required — A terminal order status indicating that an order has been fulfilled.
      - ExpiredOrderStatus
        - `name` 'EXPIRED', required — A terminal order status indicating that an order cannot be fulfilled due to expiry.
    - `type` 'LISTING' | 'BID' | 'COLLECTION_BID' | 'TRAIT_BID' | 'METADATA_BID', required — Order type
    - `updated_at` string, date-time, required — Time the Order is last updated
    - `fill_status` FillStatus, required — The ratio of the order that has been filled, an order that has been fully filled will have the same numerator and denominator values.
      - `numerator` string, required — The numerator of the fill status
      - `denominator` string, required — The denominator of the fill status
    - `trait_criteria` TraitFilter[] — Trait filters for TRAIT_BID orders; omitted for other order types.
      - `trait_type` string, required — The trait type (attribute name)
      - `values` string[], required — The trait values to match against
    - `metadata_id` string, uuid — Metadata identifier for METADATA_BID orders created with a single metadata stack. Omitted for other order types and for metadata bids created with `metadata_criteria`.
    - `metadata_criteria` MetadataFieldFilter[] — Field-level metadata filters for METADATA_BID orders created with criteria instead of a `metadata_id`. Omitted for other order types and for metadata bids created with a `metadata_id`.
      - `field_name` string, required — The metadata field name (top-level field or `attribute:<trait_type>`)
      - `values` string[], required — The metadata field values to match against (OR semantics)

## Other responses

- `400` — Bad Request (400)
- `404` — The specified resource was not found (404)
- `500` — Internal Server Error (500)
- `501` — Not Implemented Error (501)
- `503` — Service Unavailable (503) - RPC or upstream service temporarily unavailable
- `504` — Gateway Timeout (504) - Upstream validation request timed out

---

[API](https://skmtc.dev/immutable/apis/immutable-zkevm-api.md) · [All operations](https://skmtc.dev/immutable/apis/immutable-zkevm-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/immutable/immutable-zkevm-api/revisions/59f94155fcd0/schema)
