---
# System prepended metadata

title: ⚔️ Quay Backend Needs ⚔️
tags: [' Proposal', Codename FeNXT]

---

---
tags: Codename FeNXT
title: ⚔️ Quay Backend Needs ⚔️
---
# Quay Backend Needs



## Creating Orders
These are some tweaks needed on the current POST requests, `/listing` and `/offer`
* Replace `nonce` with `counter`
    * Include counter when storing the entire order (parameter + signature)

## Retrieving Orders
There are a few things needed in these GET requests, `/listing` and `/offer`
*  Remove "0x" wherever "0x" was NOT used when creating the order
    * Basically anywhere it was originally a uint or string
*  If there are no query params such as offerer, contract or tokenId, then retrieve all listings or offers (within pageNumber and limitPerPage)
*  By default, sort orders by most recent timestamp for all requests
    * Include a sortBy param that allows oldest to newest and newest to oldest
*  Include query params pageNumber and limitPerPage
    * This should be an extension or replacement of the current `limit` param
*  Include sorting under the following filters:
    * By offerer
        * timestamp - newest to oldest / oldest to newest
        * pricing (consideration/offer) - highest to lowest / lowest to highest
    * By contract address
        * timestamp - newest to oldest / oldest to newest
        * pricing (consideration/offer) - highest to lowest / lowest to highest
    * By contract address && tokenIds
        * timestamp - newest to oldest / oldest to newest
        * pricing (consideration/offer) - highest to lowest / lowest to highest
    * By recipient (within consideration item)
        * timestamp - newest to oldest / oldest to newest
        * pricing (consideration/offer) - highest to lowest / lowest to highest
*  By default, exclude cancelled, fulfilled and expired orders unless specifically request as a query param
    * e.i. `/listings?fulfilled=true&cancelled=true&expired=true&pending=false`
        * Boolean values in which include fulfilled, cancelled and expired orders and excludes current orders awaiting fulfillment (pending)

***The OpenSea documentation includes similar query params for additional guidance:***
* Retrieve listings - https://docs.opensea.io/v2.0/reference/retrieve-listings
* Retrieve offers - https://docs.opensea.io/v2.0/reference/retrieve-offers

## Fulfilling Orders
**[not needed as implemented on the blockchain level]**
This would be 2 new POST request (1 for listing and 1 for offer) that would take any existing order created and mark it as fulfilled. Likely log the tx, signature or return value from seaport.

## Cancel Orders
**[not needed as implemented on the blockchain level]**
This would be 2 new POST request (1 for listing and 1 for offer) that would take any existing order created and mark it as cancelled. Likely log the tx, signature or return value from seaport.

## Retrieve Collection Stats (???)
There are 2 possible statistics needed that requires aggregating all the orders and grouping by collection (contract address). These are:
*  Trading volume within a particular time period
    * Query params are most likely:
        * startTime (required)
        * endTime (required)
        * contract address (optional - if empty, then get all collections sorted in descending order of value traded)
*  Floor price
    * Query params are most likely:
        * startTime (required)
        * endTime (required)
        * contract addresses (optional - if empty, then get all collections sorted by highest to lowest floor prices)