# Merchants

Players can interact with merchants to exchange for their hard-earned <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU** for items. These are often commonly used items like food for Kamigotchi and the Player. Some merchants will also purchase items from players.

## Characters

### <img src="/files/MAUWa4y3MA3KtpfSfA2l" alt="" data-size="line"> Mina

Mina is likely the first merchant you'll encounter. Her humble storefront is accessible through a portal found along the northern edge of the first map. Many players have reportedly fallen in love at first sight. But be warned. Mina only loves money. Spend more at her shop to earn her favor and a place in her ~~wallet~~ heart. She keeps track, you know.&#x20;

The lovely red haired ribbon mogul is acutely aware of her regional monopoly over new players and adjusts her prices according to player demand.

<figure><img src="/files/PNN5TaKSQ40gGE810j7L" alt=""><figcaption><p>Ugajin has wares if you have coin.</p></figcaption></figure>

## Listings

Listings are the items a merchant hold in stock. Listings are priced in different ways and are unique to each merchant. For example, just because Mina stocks ![](/files/e8irBPDk6ZiX7PGKtu8E) **Ice Cream** does not mean other merchants will stock it as well. And if they do, there is no guarantee that they will price them the same way Mina does.&#x20;

<figure><img src="/files/IJb7zW6g5tfgWiowDBui" alt=""><figcaption><p>Mina's store boasts a wide selection for new players to choose from.</p></figcaption></figure>

### <img src="/files/NNeTVsnfC14dmAR7lsGC" alt="" data-size="line"> Fixed Pricing

Fixed listings are those with prices that stay consistent. Regardless of player demand for the items, these listings will be offered at a set price.

### <img src="/files/pQyY5Qy0mGxVvRnm0F2h" alt="" data-size="line"> Dynamic Pricing

Dynamic listings are those with prices that fluctuate according to demand. Merchants track the number of sales for these listings and adjust the price if that sales volume deviates from their projections. These prices even fluctuate in the middle of a purchase. Players should always double check the total price of their cart to confirm they are indeed willing to pay any premiums resulting from the demand they themselves generate.

Merchants use a Discrete Gradual Dutch Auction (dGDA) to calculate the prices for any dynamic listings. The price of the *n-*&#x74;h item purchased from a listing is calculated by:

$$
p\_n(t) = k \alpha^n  e^{-\lambda t}
$$

where

$$
k:= initial\ price
\\\alpha := scale\ factor\ (multiplier\ per\ purchase)

\\\lambda := decay\ constant
\t := time\ elapsed\ since\ listing\ launched
$$

This formula can extend to the purchase of quantities > 1. However, in the name of gas efficiency, Kamigotchi World uses the aggregate formulation to support purchases of items in bulk:

$$
P(q) =\frac{k\alpha^m(\alpha^q-1)}{e^{\lambda T}(\alpha-1)}
$$

where

$$
k:= initial\ price
\\\alpha := scale\ factor\ (multiplier\ per\ purchase)
\\\lambda := decay\ constant
\T := time\ elapsed\ since\ start\ of\ listing
\m := total\ historically\ purchased
\q := current\ purchase\ quantity
$$

Derivations for the latter can be found in this lovely [blog article](https://www.paradigm.xyz/2022/04/gda) by Frankie et al of Paradigm.

### Dynamic Pricing in Action

For an example of Dynamic Pricing in the world of Kamigotchi, consider a situation in which a particularly strong <img src="/files/DsxuORIMyzmJ3944xJ23" alt="" data-size="line"> **Predator** Kami has just <img src="/files/C2oH9OMGv5Hm4jWoBNEN" alt="" data-size="line"> **liquidated** a large number of other Kami in a short period of time. As a result demand for <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy** — which can be used to revive Kami — increases.&#x20;

Let's assume that, post-murderous rampage, the first buyer comes to purchase a single <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy** for 95 <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**. Let's also assume a scale factor of 1.02 and a decay constant of .01 for dynamic pricing of <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy**. Exactly one minute after the initial buyer pays 95  <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU** for their  <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy**, a second buyer arrives and buys a  <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy**. What price do they pay? Putting our assumptions together, we get:

&#x20;               95 (initial price) \* 1.02 (scale factor) \* (e^-(.01 (decay factor) \*1 (minutes elapsed)))

This resolves to just shy of 96  <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**.. Not much of a difference! But what if we iterate over ten players each needing to buy one <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy** and buying one minute apart? The third buyer will pay 97 <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**. The fourth will pay 98  <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**.. The tenth will pay....a little less than 104  <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**..&#x20;

As long as buyers keep buying at this same interval, the rate of growth of the price will increase, though only slightly under an assumed 1.02 scale factor. But what happens when players stop buying for, say, ten minutes? Let's return to the equation:

&#x20;         103.72 (Price at 10th buy) \* 1.02 (scale factor) \* (e^-(.01 (decay factor) \*10 (minutes elapsed)))

This resolves to 95.77 <img src="/files/EFAsqvfLNlME2xG9bVpB" alt="" data-size="line"> **MUSU**. We are nearly back at our starting price! In this way the market price of <img src="/files/zL1y5YFvhocB9l98Ltp1" alt="" data-size="line"> **Red Ribbon Gummy** is responsive to buyers, both when demand is increasing and when it abates.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kamigotchi.io/gameplay/econ/merchants.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
