Auctions #

Hiro Auctions provides an open marketplace for users to trade items through competitive bidding within a set time frame. The system ensures fair participation by validating a user’s ability to afford bids, and guarantees reliable exchanges between the highest bidder and the seller at the end of each listing.

An auction listing is essentially an item for sale with a series of bids. Key elements include:

  • The end time of the listing.
  • The current highest bid or starting bid.
  • The minimum required bid for the next participant.

Listings can only be created for items in the seller’s Hiro Inventory.

Lifecycle #

Each auction progresses through a simple, linear process:

  1. Creating a Listing: The seller chooses an item from their inventory, and it is removed from their possession until the auction concludes.
  2. Bidding: Other users bid, with amounts deducted from their wallets to ensure they can afford the bid at both placement and auction close. Users cannot bid on their own listings or on those where they are the current highest bidder. Bidders that were outbid get their currency back immediately, no waiting until the end of the auction.
  3. End of Auction: The listing concludes, and both the seller and winning bidder are notified to claim their rewards.
    • The seller collects the bid amount (minus fees).
    • The bidder receives the item.

Customization Parameters: #

The following JSON represents the customization parameters you can use to configure the default user experience for the Auctions system.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
  "auctions": {
    "auction1": {
      "items": [],
      "item_sets": ["weapons"],
      "conditions": {
        "short": {
          "duration_sec": 3600,
          "listing_cost": {
            "currencies": {
              "coins": 50
            }
          },
          "bid_start": {
            "currencies": {
              "coins": 10
            }
          },
          "fee": {
            "percentage": 0.10
          },
          "extension_threshold_sec": 30,
          "extension_sec": 60,
          "extension_max_sec": 300
        },
        "long": {
          "duration_sec": 86400,
          "listing_cost": {
            "currencies": {
              "coins": 200
            }
          },
          "bid_start": {
            "currencies": {
              "coins": 10
            }
          },
          "fee": {
            "percentage": 0.05
          }
        }
      }
    }
  }
}

The JSON schema defines an auctions object which must contain an individual object for each auction you wish to define in the system. You can configure as few or as many auction types as needed for your desired gameplay.

PropertyTypeDescription
auctionsstring:AuctionA map of all auctions.

Each individual auction is keyed by name and may define the following:

Auction #

PropertyTypeDescription
items[]stringThe list of items that are allowed to be sold in this type of auction.
item_sets[]stringThe list of item sets that are allowed to be sold in this type of auction.
conditionsstring:AuctionConditionA set of configuration variants for the auction.

Auction Condition #

PropertyTypeDescription
duration_secint64The duration of the auction.
listing_costAuctionConditionCostThe cost to creating a listing.
bid_startAuctionConditionBidThe minimum amount of currency that is required to bid on a listing.
bid_incrementAuctionConditionBidIncrementThe minimum difference between the current bid and the next bid amount, expressed as either a flat amount or a percentage based on current bid. If both a flat value and percentage are specified, both must be satisfied by any new bid for it to be allowed.
extension_threshold_secint64If a bid is placed within this number of seconds from the listing ending, the listing is extended.
extension_secint64The number of seconds to extend the listing by. This time is added to the original listing end time, not based on the time the bid was placed.
extension_max_secint64The maximum number of seconds that the original listing end time can be extended by.
feeAuctionConditionFeeA flat and/or percentage-based fee paid by the seller when collecting the winning bid amount. If both a flat fee as well as a percentage are specified, the fee will be the minimum amount that satisfies both conditions. The successful bidder does not pay an additional fee when claiming their item at the end of the listing.

Auction Condition Cost #

PropertyTypeDescription
currenciesstring:int64A map of currency IDs and quantities to be paid.
energiesstring:int64A map of energy IDs and quantities to be paid.
itemsstring:int64A map of item IDs and quantities to be paid.

Auction Condition Bid #

PropertyTypeDescription
currenciesstring:int64A map of currency IDs and quantities to be paid.

Auction Condition Bid Increment #

PropertyTypeDescription
percentagefloat64The minimum percentage increase of currencies required above the previous bid amount for a new bid to be allowed. Expressed as a fraction, e.g. 0.1 = 10%, 0.5 = 50%, 1.25 = 125%
fixedAuctionConditionBidThe minimum amount of currency required above the previous bid amount for a new bid to be allowed.

Auction Condition Fee #

PropertyTypeDescription
percentagefloat64The percentage of the winning bid required to claim the winning bid.
fixedAuctionConditionBidThe flat amount of currency required to claim the winning bid.