View as Markdown

Auctions

Read more about the Auctions system in Hiro here .

Creating a New Auction #

To create a new auction, use the auctionsCreate function.

1
2
3
4
5
6
7
var request = AuctionCreateRequest();
request.templateId = "template_auction_001";
request.conditionId = "condition_001";
request.instanceIds = ["item_instance_001"];

var auction = await hiro.auctionsCreate(session!, request);
print(auction);

Set allowedUserIds to restrict the auction to specific players, for example a guild, a friends list, or a single player for a one-to-one trade. When omitted, the auction is public and visible to everyone.

1
2
3
4
5
6
7
8
var request = AuctionCreateRequest();
request.templateId = "template_auction_001";
request.conditionId = "condition_001";
request.instanceIds = ["item_instance_001"];
request.allowedUserIds = ["user_id_456"];

var auction = await hiro.auctionsCreate(session!, request);
print(auction);

Placing a Bid on an Auction #

You can place a bid on an auction using the auctionsBid function.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
var request = AuctionBidRequest();
request.id = "auction_instance_123";
request.version = "1.0";
request.bid = AuctionBidAmount();
request.bid!.currencies = {
    "gold": 1000
};

var auction = await hiro.auctionsBid(session!, request);
print(auction);

A bid can also include inventory items instead of, or alongside, currencies. Set bid.instanceIds to the item instance IDs you want to escrow as part of the bid. The currencies field is optional, so an item-only bid can omit it entirely.

1
2
3
4
5
6
7
8
var request = AuctionBidRequest();
request.id = "auction_instance_123";
request.version = "1.0";
request.bid = AuctionBidAmount();
request.bid!.instanceIds = ["item_instance_045", "item_instance_046"];

var auction = await hiro.auctionsBid(session!, request);
print(auction);

Canceling an Auction #

If an auction needs to be canceled before it ends, the auctionsCancel method can be used.

1
2
3
4
5
var request = AuctionsCancelRequest();
request.id = "auction_instance_123";

var auctionCancel = await hiro.auctionsCancel(session!, request);
print(auctionCancel);

Claiming a Winning Bid #

Once an auction has ended, the winning bidder can claim their item using auctionsClaimBid.

1
2
3
4
5
var request = AuctionClaimBidRequest();
request.id = "auction_instance_123";

var auctionClaimBid = await hiro.auctionsClaimBid(session!, request);
print(auctionClaimBid);

Listing Available Auctions #

You can list the currently available auctions using the auctionsList function.

1
2
3
4
var request = AuctionListRequest();

var auctionList = await hiro.auctionsList(session!, request);
print(auctionList);

By default, auctionsList only returns public auctions. Set allowedOnly to true to instead return only directed auctions where the caller is on the allowed list. The two result sets are disjoint, so you need separate calls to see both public and directed auctions.

1
2
3
4
5
var request = AuctionListRequest();
request.allowedOnly = true;

var auctionList = await hiro.auctionsList(session!, request);
print(auctionList);