diff --git a/docs/README.md b/docs/README.md index defa5659..bdd6c3ef 100644 --- a/docs/README.md +++ b/docs/README.md @@ -41,7 +41,7 @@ Smart contracts [can be attached to offers](./general/high-level/concepts/smart- * [**Last look:**](./developers/terms/last-look.md) smart offers allow you to code defensive mechanisms that adjust for market condition changes between offer posting and execution. -* [**Bounty:**](./general/high-level/concepts/bounty.md) every single failed offer is compensated with a bounty,; Keeper bots can make money, and Takers don't lose any. +* [**Bounty:**](./general/high-level/concepts/bounty.md) every single failed offer is compensated with a bounty; Keeper bots can make money, and Takers don't lose any. * **Permissionless:** everyone can interact with the core protocol without having to ask permission nor risking to be censored. diff --git a/docs/developers/terms/base-quote.md b/docs/developers/terms/base-quote.md new file mode 100644 index 00000000..c1ccc086 --- /dev/null +++ b/docs/developers/terms/base-quote.md @@ -0,0 +1,17 @@ +--- +id: base-quote +title: Base / Quote +hoverText: Base token is the traded asset, quoted in Quote token. +--- + +### Base token +It is the token traded at a given price, quoted in the Quote token. + +### Quote token +It's the token in which the price of any order is defined on a particular market. + +Example: + +* On a WETH/USDC pair: + * the Base token is WETH, and the quote is USDC + * prices are displayed in USDC (quote) \ No newline at end of file diff --git a/docs/general/FAQ/README.md b/docs/general/FAQ/README.md index a40de31d..6611b9dc 100644 --- a/docs/general/FAQ/README.md +++ b/docs/general/FAQ/README.md @@ -8,24 +8,79 @@ sidebar_position: 2
-## Where can I get Mangrove’s addresses? +### Why do my transactions keep failing? -The deployment addresses for the core contract for Mangrove, as well as the most important periphery contracts are available at [Contracts β†’ Deployment Addresses](../../developers/contracts/technical-references/contract-addresses.md). +Here are a few reasons as to why your transactions are failing on Mangrove exchange: +* The amount of gas or slippage you selected is too low - we encourage you to tweak those values and find out what works best for your trades. +* The [density](../../developers/terms/density.md) for your Limit order is too low - if you're trying to place a Limit order with a small amount, your order will fail and will not be executed. Mangrove requires that you provide a token amount greater than the amount of gas the triggered offer requires to be executed (called density). + * You can check the minimum volume required to post a limit order [here](../web-app/trade/how-to-limit-order.md). + +πŸ’‘ Note: if you still want to place a limit order with a small amount (ex: 10 USDC), you can avoid the density check by using [IOC (Immediate Or Cancel)](../web-app/trade/more-on-order-types.md#immediate-or-cancel-ioc) orders. +
+
-## Who pays the fees on Mangrove? +### Who pays the fees on Mangrove? Fees on Mangrove are paid by the taker: The fee is taken from the tokens that the taker has bought. -Read more about fees here: [Taker fees](../../developers/contracts/technical-references/governance-parameters/local-variables.md#taker-fees). +Read more about fees [here](../web-app/trade/taker-fee.md), and also [here](../../developers/contracts/technical-references/governance-parameters/local-variables.md#taker-fees)
+ +
+ +### The approval amount for my limit orders seems odd - what is going on? + + + +**TL;DR** +* A rule of thumb for limit orders to avoid order failure due to lack of approval is to make sure you approve at least double the amount you target (or infinite approval). +* The easy way to do this is to use the "Use default" option on Metamask when executing an approval. + + +**Let's now clarify the difference between the "Max" and "Use default" approval values offered by Metamask.** +* "Max" will give you the maximum amount available in your wallet. + +* If you have ticked the "allow infinite approval" on Mangrove app, "Use default" will give you an "infinite approval" amount. + +* If you have unticked the "allow infinite approval" on Mangrove app, "Use default" will give you the maximum amount available in your wallet based on what you've keyed in. That amount differs **whether you are executing a market order or a limit order**. + +**Example (no infinite approval)** + +* Market order: if you want to buy some WMATIC with let's say 20 USDT, "Use default" will set the approval amount at _20 + slippage_. For a 2% slippage, the amount to approve would be 20.4 USDT. + +* Limit order: if you want to buy some WMATIC for 20 USDT of worth with a limit order (ex: Good til time), "Use default" will set the approval amount at _40 (20 * 2)_. + * If you have multiple open limit orders for the same token, the approvals then need to compound. + * Example: if you create another Good til time limit order for 20 USDT of worth, the approval amount will be 40 (previous limit order) + 40 (new limit order) = 80 USDT. + +
+ + +
+ +### Where can I get Mangrove’s addresses? + + +The deployment addresses for the core contract for Mangrove, as well as the most important periphery contracts are available at [Contracts β†’ Deployment Addresses](../../developers/contracts/technical-references/contract-addresses.md). +
+ +
+ +### Where is my transaction history? + + +Which order type are you trying to execute? +There are subtle differences between the various limit orders available on our Trade page. They might appear/be processed differently. We encourage you to first read the [More on order types](../web-app/trade/more-on-order-types.md) section. +
+ +
-## Who pays the gas on Mangrove? +### Who pays the gas on Mangrove? If the offer succeeds, the gas costs for the [execution of the trade](../../developers/contracts/technical-references/taking-and-making-offers/reactive-offer/executing-offers.md) are paid by the offer taker. If the offer fails the taker is compensated for these gas costs - see [What happens when an offer fails?](#what-happens-when-an-offer-fails) @@ -33,7 +88,7 @@ If the offer succeeds, the gas costs for the [execution of the trade](../../deve
-## What happens when an offer fails? +### What happens when an offer fails? Offers in the order book may fail when taken, either because the maker consciously chose to [renege on the offer to trade](../../developers/contracts/background/taker-compensation.md), or because the maker contract reverted for other reasons. In that case, the taker has wasted some gas and will be compensated using the [offer provision](../../developers/contracts/technical-references/taking-and-making-offers/reactive-offer/offer-provision.md) (in native token) that the maker has deposited in Mangrove. @@ -41,7 +96,7 @@ Offers in the order book may fail when taken, either because the maker conscious
-## Are Mangrove market orders the same as traditional market orders? +### Are Mangrove market orders the same as traditional market orders? Mangrove's [market orders](../../developers/contracts/technical-references/taking-and-making-offers/taker-order/README.md) are DeFi market orders - which are different from market orders in TradFi: diff --git a/docs/general/kandel/details-on-strats/details-on-strats.md b/docs/general/kandel/details-on-strats/details-on-strats.md index 22dc7f3c..39219017 100644 --- a/docs/general/kandel/details-on-strats/details-on-strats.md +++ b/docs/general/kandel/details-on-strats/details-on-strats.md @@ -18,8 +18,9 @@ Kandel, built by Mangrove, is an example of a market making strategy. Kandel on AAVE works exactly the same as the standard Kandel strategy, with the exception that the [Strategy reserve](../how-does-kandel-work/strategy-reserve.md) (Unallocated and Published liquidity) is deposited on AAVE, thus earning additional yield. When an offer is matched, the liquidity is sourced from the funds deposited on AAVE. After the offer is executed, the received amount is republished and stored on AAVE. -> πŸ’‘ -> Kandel and Kandel on AAVE have minimum inventory and gas requirements. +:::info Note +Kandel and Kandel on AAVE have minimum inventory and gas requirements. +::: Here is more information on the inventory requirements:
diff --git a/docs/general/kandel/how-does-kandel-work/choosing-parameters.md b/docs/general/kandel/how-does-kandel-work/choosing-parameters.md index e5cb0156..5d738e50 100644 --- a/docs/general/kandel/how-does-kandel-work/choosing-parameters.md +++ b/docs/general/kandel/how-does-kandel-work/choosing-parameters.md @@ -9,8 +9,9 @@ sidebar_position: 4 This section goal is to help you develop an intuition to choose your Kandel parameters. It should be taken as an explanation on how the various parameters can impact your Kandel, and how the market conditions (ex: volatility) could be taken into account. It is **not** a trading advice. -> πŸ’‘ -> As a reminder, Kandel is not intended as a "set and forget" strategy, and needs ongoing maintenance and checks. +:::info Note +As a reminder, Kandel is not intended as a "set and forget" strategy, and needs ongoing maintenance and checks. +::: We will be going through standard steps you might want a take in order to check the market and deploy a new Kandel. Essentially, that means that by using discrete AMM such as Kandel, you can fix the level of liquidity you are offering adjusted per volatility. So choosing the spread starts with answering the question - what is the volatility? If you can estimate or predict it well enough, the only thing you need to do is pick the spread (i.e. your parameters for Kandel). @@ -20,21 +21,26 @@ Essentially, that means that by using discrete AMM such as Kandel, you can fix t First, it is good practice to know how often you aim to update your Kandel. Depending on the trading pair you chose, markets can behave very differently. -Example: I will update my Kandel every 24h. +:::info Example +I will update my Kandel every 24h. +::: ## Set your price range Next, you should try to anticipate how much the market/price will vary during that period you just decided on. You are kind of betting on daily volatility. -Example: I will look at the market volatility for the past 24h, and decide on the price range for my new Kandel. +:::info Example +I will look at the market volatility for the past 24h, and decide on the price range for my new Kandel. +::: ## Ratio This is the ratio of the progression used to calculate the price grid. You would logically bet on intra-day volatility (few min or hours). If the volatility is increasing, you might want to increase the grid size (space between price points). - + +:::info Note * High volatility: spaced out price points (less price points in the chosen range) -> higher ratio * Low volatility: narrow price points (more price points in the chosen range) -> smaller ratio - +::: ## Step size @@ -42,7 +48,7 @@ The general idea to configure your step size, is that a bigger volatility would ## Simple use case -Let's say you want to have a continuous Kandel, and maybe your current paramaters allow you only 2 price points. +Let's say you want to have a continuous Kandel, and maybe your current paramaters allow you only 2 price points: * The solution to this is instead of having 2 points with a step size = 1, you can configure 16 points with a step size of 8 * That gives you continuity (more price points for a similar interval) diff --git a/docs/general/kandel/how-does-kandel-work/how-does-kandel-work.md b/docs/general/kandel/how-does-kandel-work/how-does-kandel-work.md index d4d5e19d..bd347b72 100644 --- a/docs/general/kandel/how-does-kandel-work/how-does-kandel-work.md +++ b/docs/general/kandel/how-does-kandel-work/how-does-kandel-work.md @@ -11,9 +11,9 @@ This section is a detailed explanation of how Kandel works, introducing configur For a detailed explanation on how to create and manage a Kandel strategy on Mangrove's UI, you can view the [Create a strategy](../../web-app/strategies/create-strat.md) and [Manage a strategy](../../web-app/strategies/manage-strat/README.md) pages on our Web App documentation. -> πŸ’‘ -> Kandel is not intended as a "set and forget" strategy, and needs ongoing maintenance and checks. - +:::info Note +Kandel is not intended as a "set and forget" strategy, and needs ongoing maintenance and checks. +::: ## Vocabulary diff --git a/docs/general/kandel/how-does-kandel-work/more-on-failing-offers.md b/docs/general/kandel/how-does-kandel-work/more-on-failing-offers.md index 246bed40..9810c451 100644 --- a/docs/general/kandel/how-does-kandel-work/more-on-failing-offers.md +++ b/docs/general/kandel/how-does-kandel-work/more-on-failing-offers.md @@ -21,8 +21,9 @@ When we talk about an offer "failing", we mean that it could not execute. An off * [`makerPosthook()`](../../../developers/strat-lib/technical-references/code/strategies/MangroveOffer/#makerposthook): it is the callback function that is called after the offer execution (i.e. after a successful execution of `makerExecute()`). * A failure in `makerPosthook()` means the offer cannot update or repost itself after being taken. It does not cancel the trade, since it is called after `makerExecute()`. -> πŸ’‘ -> For a more visual explanation, see the [call sequence overview](../../../developers/contracts/technical-references/overview#call-sequence-overview) diagram. +:::info Note +For a more visual explanation, see the [call sequence overview](../../../developers/contracts/technical-references/overview#call-sequence-overview) diagram. +::: ## Kandel and `makerExecute()` failure @@ -39,8 +40,9 @@ Therefore, since the user is not in charge of writing and maintaining the smart The main failures that Kandel could run into are linked to reposting Bids and Asks. This has little incidence for the user, nor does it affect the behavior of his Kandel strategy.
Non-reposted liquidity will be placed into the [Unallocated liquidity](./strategy-reserve#unallocated-liquidity) reserve, and the offer will be "empty" for Kandel, until the user replenishes it.
-> πŸ’‘ +:::info Note > If too many empty offers stack up, it would diminish Kandel's ability to profit from the spread, and therefore the overall generated yield. Kandel is not intended as a "set and forget" strategy, and needs ongoing maintenance and checks. +:::
diff --git a/docs/general/kandel/how-does-kandel-work/step-by-step-visual-explanation.md b/docs/general/kandel/how-does-kandel-work/step-by-step-visual-explanation.md index 12602b6a..7daa0b3e 100644 --- a/docs/general/kandel/how-does-kandel-work/step-by-step-visual-explanation.md +++ b/docs/general/kandel/how-does-kandel-work/step-by-step-visual-explanation.md @@ -9,7 +9,7 @@ sidebar_position: 2 ## Setting things up -Before launching your customized Kandel strategy, you will be asked to set specific input parameters. For more information, you can refer to the [Parameters description table](./parameters.md). +Before launching your customized Kandel strategy, you will be asked to set specific input parameters. For more information, you can refer to the [Parameters description table](./parameters.md), as well as the [Choosing parameters](./choosing-parameters.md) section. ## Price distribution @@ -23,9 +23,9 @@ Based on the selected **price range**, the price grid is constructed using a geo The increments are calculated using a key metric called **ratio** (of the geometric progression). Kandel starts from the Min price, all the way up to the Max price. By default, the ratio is 1%. -> πŸ’‘ -> In this example, the user selected an ETH/USDC trading pair. - +:::info Note +In this example, the user selected an ETH/USDC trading pair. +::: ## Volume distribution @@ -33,9 +33,10 @@ By default, the ratio is 1%. Based on the selected amount of initial liquidity to be deposited, Kandel draws the **volume distribution** (i.e. the initial volume at each price point). In the example of a uniform volume distribution, the user's liquidity is spread evenly throughout the price grid.
-> πŸ’‘ ->For this explanation, we are conveniently using a 1 ETH allocation for each increment. +:::info Note +For this explanation, we are conveniently using a 1 ETH allocation for each increment. If based on our parameters, our Kandel would create a price grid of 10 points, for example, then we would use 10 ETH in total (1 ETH * 10 price points). +::: ## Populating Bids and Asks @@ -51,18 +52,18 @@ Afterwards, the Kandel strategy contract populates the price grid by posting off

-When a **bid** is taken, the Kandel strategy contract sends the corresponding amount of **quote tokens** (USDC) and receives a corresponding amount of **base tokens** (ETH). +When a **bid** is taken, the Kandel strategy contract sends the corresponding amount of [**quote tokens**](../../../developers/terms/base-quote.md) (USDC) and receives a corresponding amount of [**base tokens**](../../../developers/terms/base-quote.md) (ETH). ## Reposting liquidity as an Ask

-The received amount of **base tokens** (ETH) is used to post a %%dual offer|dual-offer%% at a **step size k=1 above**. - -> πŸ’‘ -> Since the volume objective at the relevant index is 1 ETH, all the received liquidity is used to populate corresponding **ask**. +The received amount of **base tokens** (ETH) is used to post a %%dual offer|dual-offer%% at a **step size k=1 above**. This is automatically handled by Kandel, it is part of its trading behaviour. +:::info Note +Since the volume objective at the relevant index is 1 ETH, all the received liquidity is used to populate corresponding **ask**. Our Kandel just received 1 ETH (previous Bid), and is using it all to repost an offer, an Ask (called dual offer). +::: ## Ask is taken @@ -85,13 +86,12 @@ In our example: Therefore, 100% of the spread (or 13 USDC) is reinvested into the strategy. A new **bid** at k=1 steps below is reposted, and offers 1,300 USDC for 1.01 ETH. -> πŸ’‘ -> Calculation: +:::info Calculation * _Profit = 1,300 USDC - 1,287 USDC = 13 USDC_ * _13 / 1300 = 0.01 = 1%_ * i.e. we made a 1% profit on the spread * Kandel will repost our **bid** to offer _1,287+13 USDC_ for _1*1.01 ETH_, reinvesting the 1% profit we just made - +::: ## Another Ask is taken @@ -105,5 +105,6 @@ When another **ask** is taken, once again Kandel se Similarly to our previous **bid**, the received amount of **quote tokens** (USDC) is used to post a dual offer **step size k=1 below**. -> πŸ’‘ -> If an **ask** was to be taken next, the profit from the spread would be reinvested into the strategy. +:::info Note +If an **ask** was to be taken next, the profit from the spread would be reinvested into the strategy. +::: \ No newline at end of file diff --git a/docs/general/table-content.md b/docs/general/table-content.md index e3f76b72..ab0cd1b4 100644 --- a/docs/general/table-content.md +++ b/docs/general/table-content.md @@ -33,7 +33,6 @@ sidebar_position: 0 * [How to place a market order](./web-app/trade/how-to-market-order.md) * [How to place a limit order](./web-app/trade/how-to-limit-order.md) * [How to track open and past orders](./web-app/trade/how-to-track-open-orders.md) - * [Common issues and resolution](./web-app/trade/common-issues-resolution.md) * [More on order types](./web-app/trade/approve-buy.md) * [Strategies](./web-app/strategies/README.md) * [Create a strategy](./web-app/strategies/create-strat.md) diff --git a/docs/general/web-app/how-to-connect-wallet/how-to-connect-wallet.md b/docs/general/web-app/how-to-connect-wallet/how-to-connect-wallet.md index 936ee694..3bed7f14 100644 --- a/docs/general/web-app/how-to-connect-wallet/how-to-connect-wallet.md +++ b/docs/general/web-app/how-to-connect-wallet/how-to-connect-wallet.md @@ -30,7 +30,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; * **Polygon mainnet**: you need to be connected to the Polygon mainnet. If you see a "Unsupported Network" pop-up, click "Switch network". * **Polygon Mumbai testnet**: you need to be connected to the Polygon Mumbai test network. -:::info +:::info Note If you see a "Unsupported Network" pop-up, click "Switch network". ::: diff --git a/docs/general/web-app/strategies/create-strat.md b/docs/general/web-app/strategies/create-strat.md index f3a4e860..51eea82d 100644 --- a/docs/general/web-app/strategies/create-strat.md +++ b/docs/general/web-app/strategies/create-strat.md @@ -23,10 +23,11 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; ## Step 2/3 - Strategy parameters -:::info +:::info note Average return: the average monthly return of kandels for this market ::: -:::info + +:::info Note Risk appetite: * Low: corresponds to a low volatily pair (ex: stable/stable, such as USDC/USDT) * Medium: corresponds to a medium volatily pair (ex: volatile/stable, such as WBTC/USDT) diff --git a/docs/general/web-app/strategies/manage-strat/overview-tab.md b/docs/general/web-app/strategies/manage-strat/overview-tab.md index 193ea0c1..c9754f5d 100644 --- a/docs/general/web-app/strategies/manage-strat/overview-tab.md +++ b/docs/general/web-app/strategies/manage-strat/overview-tab.md @@ -51,8 +51,9 @@ In the screenshot below, Token A is WETH and Token B is USDC (WETH/USDC market).

-πŸ‘‰ **More about green / red / grey dots:** +:::info πŸ‘‰ **More about green / red / grey dots:** 1. If you navigate on a green/red dot, the relevant offer is highlighted on the list. You can check the price at which an offer is posted, as well as the base and quote amounts. -2. You are also able to refill empty offers (grey dots) by hovering over them and selecting "Refill offer". \ No newline at end of file +2. You are also able to refill empty offers (grey dots) by hovering over them and selecting "Refill offer". +::: \ No newline at end of file diff --git a/docs/general/web-app/strategies/manage-strat/statuses-and-alerts.md b/docs/general/web-app/strategies/manage-strat/statuses-and-alerts.md index de4106fc..cc46ae03 100644 --- a/docs/general/web-app/strategies/manage-strat/statuses-and-alerts.md +++ b/docs/general/web-app/strategies/manage-strat/statuses-and-alerts.md @@ -35,7 +35,8 @@ It means that your strategy is switched off. There are two reasons why your stra It means that your strategy is shut down. -> πŸ’‘ -> What's the difference between an "Inactive" and a "Closed" strategy?

-> If your strategy is "Inactive", it means that you have deposited funds and set its parameters, but either it got out of range or there was insufficient bounty. -> If you closed your strategy or withdrew all funds from it, then it is considered as "Closed". +:::info Note +What's the difference between an "Inactive" and a "Closed" strategy?

+If your strategy is "Inactive", it means that you have deposited funds and set its parameters, but either it got out of range or there was insufficient bounty. +If you closed your strategy or withdrew all funds from it, then it is considered as "Closed". +::: \ No newline at end of file diff --git a/docs/general/web-app/trade/approve-buy.md b/docs/general/web-app/trade/approve-buy.md index d7910f22..42d9e9b3 100644 --- a/docs/general/web-app/trade/approve-buy.md +++ b/docs/general/web-app/trade/approve-buy.md @@ -32,7 +32,7 @@ On the following pages, you will find more details on how to execute a [Market]( ## About Approvals :::info Note -You can read some more about approvals in the [Common issues](./common-issues-resolution.md) section. +You can read some more about approvals in the [FAQ](../../FAQ/README.md#the-approval-amount-for-my-limit-orders-seems-odd---what-is-going-on) section. ::: Here are a few rule of thumbs when it comes to approvals: diff --git a/docs/general/web-app/trade/common-issues-resolution.md b/docs/general/web-app/trade/common-issues-resolution.md deleted file mode 100644 index c3325b7a..00000000 --- a/docs/general/web-app/trade/common-issues-resolution.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -description: Common issues and resolution -sidebar_position: 8 ---- - - -# Common issues and resolution - -Using our Trade page on testnet, you might encounter a few troubles and hiccups. - -We are committed to improve the user experience, and while we do that, here are a few tips that might help make your interaction smoother. - -Feel free to browse through the following items! - -
-Why do my transactions keep failing? - -It might be the case that the amount of gas or slippage you selected is too low. We encourage you to tweak those values and find out what works best. - - -
- -
-The approval amount for my limit orders seems odd - what is going on? - - -:::note TL;DR -* A rule of thumb for limit orders to avoid order failure due to lack of approval is to make sure you approve at least double the amount you target (or infinite approval). -* The easy way to do this is to use the "Use default" option on Metamask when executing an approval. -::: - -Let's clarify the difference between the "Max" and "Use default" approval values offered by Metamask. -* "Max" will give you the maximum amount available in your wallet. - -* If you have ticked the "allow infinite approval" on Mangrove app, "Use default" will give you an "infinite approval" amount. - -* If you have unticked the "allow infinite approval" on Mangrove app, "Use default" will give you the maximum amount available in your wallet based on what you've keyed in. That amount differs **whether you are executing a market order or a limit order**. - -**Example (no infinite approval)** - -* Market order: if you want to buy some WMATIC with let's say 20 USDT, "Use default" will set the approval amount at _20 + slippage_. For a 2% slippage, the amount to approve would be 20.4 USDT. - -* Limit order: if you want to buy some WMATIC for 20 USDT of worth with a limit order (ex: Good til time), "Use default" will set the approval amount at _40 (20 * 2)_. - * If you have multiple open limit orders for the same token, the approvals then need to compound. - * Example: if you create another Good til time limit order for 20 USDT of worth, the approval amount will be 40 (previous limit order) + 40 (new limit order) = 80 USDT. - -
- - -
-Where is my transaction history? - - -Which order type are you trying to execute? -There are subtle differences between the various limit orders available on our Trade page. They might appear/be processed differently. We encourage you to first read the [More on order types](./more-on-order-types.md) section. -
\ No newline at end of file diff --git a/docs/general/web-app/trade/how-to-limit-order.md b/docs/general/web-app/trade/how-to-limit-order.md index 32f223bc..cba70d89 100644 --- a/docs/general/web-app/trade/how-to-limit-order.md +++ b/docs/general/web-app/trade/how-to-limit-order.md @@ -27,8 +27,18 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; * **Good 'til time (GTT)**: Set an expiration date for your order (ex: active for 3 days, then canceled). * [**Fill or Kill (FOK)**](../../../developers/SDK/guides/fill-or-kill.md): Your order is either executed fully or not executed at all (ex: you place an order for 1 ETH at $9,500; if only 0.8 ETH can be filled, it's canceled; if fully filled, it's executed). -> πŸ’‘ -> If a "Good 'til time" limit order is [partially filled](./how-to-track-open-orders.md#order-is-partially-filled), a green message will display the transaction details, and the remainder will be reposted automatically. +:::info Note +If a "Good 'til time" limit order is [partially filled](./how-to-track-open-orders.md#order-is-partially-filled), a green message will display the transaction details, and the remainder will be reposted automatically. +::: + +:::info Important +Due to the [density](../../../developers/terms/density.md) on each market, there is a minimum token requirement when placing limit orders (except for [IOC orders](./more-on-order-types.md#immediate-or-cancel-ioc)). You can read more about why your transactions might be failing in the [FAQ](../../FAQ/README.md#why-do-my-transactions-keep-failing). + +Market | Minimum volume +---|--- +USDC/USDT | 21 USDC / 21 USDT +WETH/USDC | 0.010 WETH / 18 USDC +::: 6. Click on "Approve and buy/sell". A card will appear, tick the infinite approval box, click on "Allow 'token'" and confirm the transaction on your wallet. diff --git a/docs/general/web-app/trade/how-to-market-order.md b/docs/general/web-app/trade/how-to-market-order.md index c75e39c4..807cecf3 100644 --- a/docs/general/web-app/trade/how-to-market-order.md +++ b/docs/general/web-app/trade/how-to-market-order.md @@ -20,12 +20,14 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; 3. Type in the amount of tokens you want to buy/sell. The amount to be sent will automatically appear. 4. Choose your slippage tolerance. -> πŸ’‘ -> Slippage is the difference between expected and actual trade prices. -> * Setting a tolerance allows trades to execute within a certain price range. -> * Higher tolerance may mean quicker execution, but less favorable prices. -> * Lower tolerance may mean better prices, but potential for trade not to execute. -> * Find the right balance for your trade. + +:::info Note +Slippage is the difference between expected and actual trade prices. +* Setting a tolerance allows trades to execute within a certain price range. +* Higher tolerance may mean quicker execution, but less favorable prices. +* Lower tolerance may mean better prices, but potential for trade not to execute. +* Find the right balance for your trade. +::: 5. Click on "Approve and buy/sell". A card will appear, tick the infinite approval box, click on "Allow 'token'" and confirm the transaction on your wallet. diff --git a/docs/general/web-app/trade/how-to-track-open-orders.md b/docs/general/web-app/trade/how-to-track-open-orders.md index 7bd858f5..3d18c46f 100644 --- a/docs/general/web-app/trade/how-to-track-open-orders.md +++ b/docs/general/web-app/trade/how-to-track-open-orders.md @@ -4,7 +4,7 @@ sidebar_position: 7 --- -# How to track open and past orders +# How to track open/past orders Once you've created a Market or Limit order, tracking entries will start appearing in the "Open orders" and "History" tabs at the bottom of the page. Here is what you can expect, based on the order type you execute. @@ -25,9 +25,9 @@ A limit order consists of two parts: * Resting order: We post an offer on the book with the part of the order that was not filled by the immediate execution. Any time the offer is taken, an entry is added to the "History" tab. - -> πŸ’‘ -> For example, if your Good 'til time limit order could not be immediately filled (fully or partially), an entry in "Open order" will show up, as well as an empty line (set at "0") in the "History" tab. +:::info Example +If your Good 'til time limit order could not be immediately filled (fully or partially), an entry in "Open order" will show up, as well as an empty line (set at "0") in the "History" tab. +::: ## Open and past orders are market-specific diff --git a/docs/general/web-app/trade/revoke.md b/docs/general/web-app/trade/revoke.md index c5c568d8..0aa3edb1 100644 --- a/docs/general/web-app/trade/revoke.md +++ b/docs/general/web-app/trade/revoke.md @@ -25,5 +25,6 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; 5. After a few seconds, the targeted entry should disappear from the UI - you're done! -> πŸ’‘ -> Revoking means changing the Approval amount back to 0 - it's a transaction you'll have to sign, and it'll therefore consume some gas. \ No newline at end of file +:::info Note +Revoking means changing the Approval amount back to 0 - it's a transaction you'll have to sign, and it'll therefore consume some gas. +::: \ No newline at end of file diff --git a/docs/general/web-app/trade/taker-fee.md b/docs/general/web-app/trade/taker-fee.md index 7d92e290..28dd0eb8 100644 --- a/docs/general/web-app/trade/taker-fee.md +++ b/docs/general/web-app/trade/taker-fee.md @@ -3,7 +3,6 @@ description: Taker's fee sidebar_position: 4 --- - # Taker's fee When a trade occur on Mangrove, a small fee is charged to the Taker taking an offer: @@ -11,6 +10,13 @@ When a trade occur on Mangrove, a small fee is charged to the Taker taking an of * Different trading pair have different fees (it usually depends on the market's volatily) * The fee will be displayed before you [Confirm buy](./how-to-market-order.md#steps) when placing a Market or Limit order +## Current markets and fees + +Market | Fee +---|--- +USDC/USDT | 0% +WETH/USDC | 0.05% + :::info Example * Taker buys 2 WETH at a unit price of 1100 USDC/WETH * Fee: 5bps = 0.05% @@ -22,9 +28,9 @@ Here is what it looks like on [Mangrove app](http://app.mangrove.exchange): import useBaseUrl from '@docusaurus/useBaseUrl'; -

+
-# Fees for GTT resting limit orders +## Fees for GTT resting limit orders There is a special case scenario for resting limit orders (when using [GTT](./more-on-order-types.md#good-til-time-gtt)): Takers only pays a fee for the immediately executed part of the order, not on the resting one.