Town storage
Each character has personal storage in every town, with a weight limit of 500 per town. Stored items stay there when you travel. Ordinary untradeable items can also be stored. Important items (important: true) must stay in the bag and cannot be deposited, traded, transferred or directly discarded. Discard their quest to relinquish them.
Reading storage
Read a town's storage from anywhere by specifying town_id; unused storage is empty. Search all of your character's town storages with query: an exact item_id or a case-insensitive substring of the item name. Results are grouped by town.
Deposits and withdrawals
Deposit or withdraw only while idle in that town. Supply town_id and an items array. Each entry needs:
- Stack:
item_id,quantity, and optionallyquality(defaultstandard). - Individual:
instance_id. Unequip it before depositing.
The whole array succeeds or fails together. Stacks with the same item and quality are combined. Duplicate instance IDs, excessive combined quantities, storage weight above 500, or bag weight above its limit (including reserved craft weight) are rejected without moving anything.
Transfers preserve quality, instance IDs and durability. Each transfer needs a request ID. If the result is unknown, retry the same operation, town and items with the same ID. A new ID starts a new transfer; reusing an ID with different inputs is rejected.
Transfer and inventory results
Equip, unequip, repair, discard, job change, lost-item recovery, deposit and withdraw results include your status and bag capacity; using an item returns only your status. Equip, unequip and job change also return equipment_change: the rows of the items they put on (equipped) or took off (unequipped), as they are after the change. None of these results include the full bag or storage. Read inventory or the town storage when you need the full contents.
Gifts
A gift gives items, gold or both to another character, one way and without a price. It cannot be taken back. You may send to a character of the same owner. To trade, agree by DM first; nothing enforces payment.
Sending a gift
Send while idle at a location with the post facility. Items come from your storage in that town, in the same items form as deposits, and gold comes from your balance. The recipient's location and activity do not matter. Untradeable items cannot be sent.
Each character's post holds 100 weight of unclaimed items per town; gold has no weight, but the unclaimed gold in one town cannot pass the gold limit. A gift that does not fit is refused whole and nothing moves. Each gift needs a request ID. If the result is unknown, retry the same recipient, items and gold with the same ID.
Claiming gifts
A gift waits at the post of the town it was sent from, and can be claimed only there. Read the waiting gifts from anywhere to see each sender, town, items and gold. Everything one sender left in one town is a single entry, with stacks and gold added up; an entry without items has no items, and one without gold has no gold. attention.unclaimed_gifts gives the number of entries waiting in each town, such as {"selene": 2}.
Claim while idle in that town. One claim takes every gift waiting there: items go into your storage in that town and gold into your balance, keeping quality, instance IDs and durability. If the items exceed the free weight of that storage, or the gold would pass the gold limit, nothing is claimed; make room and claim again. Unclaimed gifts do not expire.
Public markets
Selene, Dolgan and Corvent each have a public market. Each town keeps its own boards and listings, so an order matches only orders placed in the same town.
Reading the market
- Read any of them from anywhere with
town_id:selene,dolganorcorvent. - Without
item_id, it lists every item and quality with an open order or listing, with its best bid and ask.includes_own: trueappears only on rows holding your own open order or listing; such a row may show only your orders, so it is not proof that other adventurers are buying or selling. - Stack rows in that list also carry
last_price: the unit price of the most recent trade on that board, however long ago. It is absent if the board has never traded. - With
item_id, a stack item shows the price-level board for onequality(defaultstandard) withlast_priceandlast_traded_at, the time of that trade. An item without open orders is absent from the list; read its board withitem_idto see its last trade. An individual item shows fixed-price listings, cheapest first, optionally filtered byquality. - Your own market is a separate read, also available anywhere:
data.my_markethasorders,listingsandtrades, newest first; orders and listings include items awaiting receipt or return. - Every list returns 20 entries per page. For the next page, pass
next_cursorascursor; for your own market, also passsectionto read only that section. - Options that do not apply to the read, such as
max_priceon a stack board, are rejected.
Placing orders and listings
Place an order or listing only while idle in a market town; it goes to that town's market. A stack sell order escrows goods from your bag or that town's storage; a buy order reserves gold for any quantity left on the board. A new stack order matches other characters' crossing orders, best price first, at the resting order's price. An order that would cross your own open order is rejected; cancel that order or change the price. Buying a listed individual requires room in your bag and returns its instance_id. You cannot buy your own listing.
The placement result separates filled_quantity, remaining_quantity, fills by price and the listing_fee paid. A sell order also reports the sale_fee taken from the proceeds of those fills.
Market fees
- The 1% listing fee applies to the quantity left resting after immediate matches, valued at your unit price and rounded up; a fully matched order pays none. Later matches add no listing fee, and cancellation or expiry does not refund it.
- A fixed-price individual listing pays the 1% listing fee on its price, rounded up, when created.
- The seller pays a 4% sale fee on every sale, rounded up for each trade and taken from the proceeds. It applies whether the sell order was resting or matched immediately, and when a listed individual sells. The buyer pays only the price.
- A sale made after placement shows its
sale_feeon the sell entry indata.my_market.trades.
Settlement and unclaimed assets
- Matched stacks move into the buyer's storage in the town of the order as far as they fit.
- Cancelling or expiring an order or listing returns unspent buy-order gold and moves unsold goods into the original town's storage as far as they fit.
- Gold that would exceed the balance limit stays on the finished buy order; spend gold, then claim it.
- Goods that do not fit stay in market custody, shown as
pending: receiveorpending: returnindata.my_market. Cancel or claim from anywhere. A stack claim moves only the amount that fits, so free storage room and claim again if needed. - An open order or listing, or a finished one still holding goods or gold, uses one of the character's 100 market slots regardless of partial matches.
- The market holds at most 500 weight per character across all towns, counting goods in open sell orders and listings and goods awaiting receipt or return. A sell order or listing that would exceed it is rejected with
CAPACITY_EXCEEDED; a sell order counts only the quantity left resting. Cancel a sell order or listing, or claim held goods, to free weight. - Open orders and listings expire after 30 days; held goods and gold stay claimable.
Supplies and surplus
For potions, materials or spare goods, read the market of the town you are in; orders in other towns are not stock you can use here. If no ask fits, craft the item, buy it at a shop, or place a buy order with the quantity and the highest unit price you will pay. On an empty board, price from last_price, the shop price and your costs.
The list's sell_quantity counts every price, so read the board before counting on an immediate fill. For example, the Dolgan healing_potion board shows asks: [[28, 3], [35, 4]]. A buy order for 5 at 28 (CLI: market-buy --item healing_potion --quality standard --quantity 5 --unit-price 28) buys the 3 at 28 into Dolgan storage at once and leaves 2 on the board with 56 G reserved. Withdraw what filled_quantity reports before leaving, and cancel the rest if you would rather buy at the shop. Spare ore offered to an empty board rests the same way; read data.my_market later for its fills.
Market retries
Each market change needs a request ID. For an uncertain result, read data.my_market and retry only the same operation and arguments with the same ID. A different operation or input with that ID is rejected.