From 82cb107520d2709afde40f40c342590f3d860a1b Mon Sep 17 00:00:00 2001
From: initrv <ctumko@gmail.com>
Date: Sun, 12 Mar 2023 01:32:55 +0300
Subject: [PATCH 01/29] add tensorboard category

---
 docs/freqai-reinforcement-learning.md         |  4 ++--
 freqtrade/freqai/RL/Base3ActionRLEnv.py       |  2 +-
 freqtrade/freqai/RL/Base4ActionRLEnv.py       |  2 +-
 freqtrade/freqai/RL/Base5ActionRLEnv.py       |  2 +-
 freqtrade/freqai/RL/BaseEnvironment.py        | 21 ++++++++++++-------
 freqtrade/freqai/RL/TensorboardCallback.py    | 14 ++++++-------
 .../prediction_models/ReinforcementLearner.py |  2 +-
 7 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/docs/freqai-reinforcement-learning.md b/docs/freqai-reinforcement-learning.md
index 04ca42a5d..ed6a41825 100644
--- a/docs/freqai-reinforcement-learning.md
+++ b/docs/freqai-reinforcement-learning.md
@@ -248,13 +248,13 @@ FreqAI also provides a built in episodic summary logger called `self.tensorboard
             """
             def calculate_reward(self, action: int) -> float:
                 if not self._is_valid(action):
-                    self.tensorboard_log("is_valid")
+                    self.tensorboard_log("invalid")
                     return -2
 
 ```
 
 !!! Note
-    The `self.tensorboard_log()` function is designed for tracking incremented objects only i.e. events, actions inside the training environment. If the event of interest is a float, the float can be passed as the second argument e.g. `self.tensorboard_log("float_metric1", 0.23)` would add 0.23 to `float_metric`. In this case you can also disable incrementing using `inc=False` parameter.
+    The `self.tensorboard_log()` function is designed for tracking incremented objects only i.e. events, actions inside the training environment. If the event of interest is a float, the float can be passed as the second argument e.g. `self.tensorboard_log("float_metric1", 0.23)`. In this case the metric values are not incremented.
 
 ### Choosing a base environment
 
diff --git a/freqtrade/freqai/RL/Base3ActionRLEnv.py b/freqtrade/freqai/RL/Base3ActionRLEnv.py
index 3b5fffc58..a108d776e 100644
--- a/freqtrade/freqai/RL/Base3ActionRLEnv.py
+++ b/freqtrade/freqai/RL/Base3ActionRLEnv.py
@@ -47,7 +47,7 @@ class Base3ActionRLEnv(BaseEnvironment):
         self._update_unrealized_total_profit()
         step_reward = self.calculate_reward(action)
         self.total_reward += step_reward
-        self.tensorboard_log(self.actions._member_names_[action])
+        self.tensorboard_log(self.actions._member_names_[action], category="actions")
 
         trade_type = None
         if self.is_tradesignal(action):
diff --git a/freqtrade/freqai/RL/Base4ActionRLEnv.py b/freqtrade/freqai/RL/Base4ActionRLEnv.py
index 8f45028b1..4f093f06c 100644
--- a/freqtrade/freqai/RL/Base4ActionRLEnv.py
+++ b/freqtrade/freqai/RL/Base4ActionRLEnv.py
@@ -48,7 +48,7 @@ class Base4ActionRLEnv(BaseEnvironment):
         self._update_unrealized_total_profit()
         step_reward = self.calculate_reward(action)
         self.total_reward += step_reward
-        self.tensorboard_log(self.actions._member_names_[action])
+        self.tensorboard_log(self.actions._member_names_[action], category="actions")
 
         trade_type = None
         if self.is_tradesignal(action):
diff --git a/freqtrade/freqai/RL/Base5ActionRLEnv.py b/freqtrade/freqai/RL/Base5ActionRLEnv.py
index 22d3cae30..490ef3601 100644
--- a/freqtrade/freqai/RL/Base5ActionRLEnv.py
+++ b/freqtrade/freqai/RL/Base5ActionRLEnv.py
@@ -49,7 +49,7 @@ class Base5ActionRLEnv(BaseEnvironment):
         self._update_unrealized_total_profit()
         step_reward = self.calculate_reward(action)
         self.total_reward += step_reward
-        self.tensorboard_log(self.actions._member_names_[action])
+        self.tensorboard_log(self.actions._member_names_[action], category="actions")
 
         trade_type = None
         if self.is_tradesignal(action):
diff --git a/freqtrade/freqai/RL/BaseEnvironment.py b/freqtrade/freqai/RL/BaseEnvironment.py
index 7a4467bf7..df2a89d81 100644
--- a/freqtrade/freqai/RL/BaseEnvironment.py
+++ b/freqtrade/freqai/RL/BaseEnvironment.py
@@ -137,7 +137,8 @@ class BaseEnvironment(gym.Env):
         self.np_random, seed = seeding.np_random(seed)
         return [seed]
 
-    def tensorboard_log(self, metric: str, value: Union[int, float] = 1, inc: bool = True):
+    def tensorboard_log(self, metric: str, value: Optional[Union[int, float]] = None,
+                        category: str = "custom"):
         """
         Function builds the tensorboard_metrics dictionary
         to be parsed by the TensorboardCallback. This
@@ -149,17 +150,23 @@ class BaseEnvironment(gym.Env):
 
         def calculate_reward(self, action: int) -> float:
             if not self._is_valid(action):
-                self.tensorboard_log("is_valid")
+                self.tensorboard_log("invalid")
                 return -2
 
         :param metric: metric to be tracked and incremented
-        :param value: value to increment `metric` by
-        :param inc: sets whether the `value` is incremented or not
+        :param value: `metric` value
+        :param category: `metric` category
         """
-        if not inc or metric not in self.tensorboard_metrics:
-            self.tensorboard_metrics[metric] = value
+        increment = True if not value else False
+        value = 1 if increment else value
+
+        if category not in self.tensorboard_metrics:
+            self.tensorboard_metrics[category] = {}
+
+        if not increment or metric not in self.tensorboard_metrics[category]:
+            self.tensorboard_metrics[category][metric] = value
         else:
-            self.tensorboard_metrics[metric] += value
+            self.tensorboard_metrics[category][metric] += value
 
     def reset_tensorboard_log(self):
         self.tensorboard_metrics = {}
diff --git a/freqtrade/freqai/RL/TensorboardCallback.py b/freqtrade/freqai/RL/TensorboardCallback.py
index b596742e9..1828319cd 100644
--- a/freqtrade/freqai/RL/TensorboardCallback.py
+++ b/freqtrade/freqai/RL/TensorboardCallback.py
@@ -46,14 +46,12 @@ class TensorboardCallback(BaseCallback):
         local_info = self.locals["infos"][0]
         tensorboard_metrics = self.training_env.get_attr("tensorboard_metrics")[0]
 
-        for info in local_info:
-            if info not in ["episode", "terminal_observation"]:
-                self.logger.record(f"_info/{info}", local_info[info])
+        for metric in local_info:
+            if metric not in ["episode", "terminal_observation"]:
+                self.logger.record(f"info/{metric}", local_info[metric])
 
-        for info in tensorboard_metrics:
-            if info in [action.name for action in self.actions]:
-                self.logger.record(f"_actions/{info}", tensorboard_metrics[info])
-            else:
-                self.logger.record(f"_custom/{info}", tensorboard_metrics[info])
+        for category in tensorboard_metrics:
+            for metric in tensorboard_metrics[category]:
+                self.logger.record(f"{category}/{metric}", tensorboard_metrics[category][metric])
 
         return True
diff --git a/freqtrade/freqai/prediction_models/ReinforcementLearner.py b/freqtrade/freqai/prediction_models/ReinforcementLearner.py
index 2a87151f9..e795703d4 100644
--- a/freqtrade/freqai/prediction_models/ReinforcementLearner.py
+++ b/freqtrade/freqai/prediction_models/ReinforcementLearner.py
@@ -100,7 +100,7 @@ class ReinforcementLearner(BaseReinforcementLearningModel):
             """
             # first, penalize if the action is not valid
             if not self._is_valid(action):
-                self.tensorboard_log("is_valid")
+                self.tensorboard_log("invalid", category="actions")
                 return -2
 
             pnl = self.get_unrealized_profit()

From a10f78e3ef3d2ee3c1605ec8c22dee46d64525cf Mon Sep 17 00:00:00 2001
From: initrv <ctumko@gmail.com>
Date: Sun, 12 Mar 2023 23:29:27 +0300
Subject: [PATCH 02/29] fix increment in case of 0

---
 freqtrade/freqai/RL/BaseEnvironment.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/freqtrade/freqai/RL/BaseEnvironment.py b/freqtrade/freqai/RL/BaseEnvironment.py
index df2a89d81..a9a9a613c 100644
--- a/freqtrade/freqai/RL/BaseEnvironment.py
+++ b/freqtrade/freqai/RL/BaseEnvironment.py
@@ -157,7 +157,7 @@ class BaseEnvironment(gym.Env):
         :param value: `metric` value
         :param category: `metric` category
         """
-        increment = True if not value else False
+        increment = True if value is None else False
         value = 1 if increment else value
 
         if category not in self.tensorboard_metrics:

From fbca8e65874d78e004b9724bab3ca8dd91b5bf0e Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Sun, 12 Mar 2023 21:31:08 +0100
Subject: [PATCH 03/29] Allow empty pairlock reasons through api

closes #8312
---
 freqtrade/rpc/api_server/api_schemas.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py
index 064a509fd..18621ccbd 100644
--- a/freqtrade/rpc/api_server/api_schemas.py
+++ b/freqtrade/rpc/api_server/api_schemas.py
@@ -311,7 +311,7 @@ class LockModel(BaseModel):
     lock_timestamp: int
     pair: str
     side: str
-    reason: str
+    reason: Optional[str]
 
 
 class Locks(BaseModel):

From 52a091e063e5a4d30557aede4ca11a2a9060275e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:23 +0000
Subject: [PATCH 04/29] Bump pydantic from 1.10.5 to 1.10.6

Bumps [pydantic](https://github.com/pydantic/pydantic) from 1.10.5 to 1.10.6.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v1.10.6/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v1.10.5...v1.10.6)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 5977a6440..15a1df4a0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -35,7 +35,7 @@ sdnotify==0.3.2
 
 # API Server
 fastapi==0.92.0
-pydantic==1.10.5
+pydantic==1.10.6
 uvicorn==0.20.0
 pyjwt==2.6.0
 aiofiles==23.1.0

From 22ebf04daa202044596da38461704c8ede669402 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:29 +0000
Subject: [PATCH 05/29] Bump pytest from 7.2.1 to 7.2.2

Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.2.1 to 7.2.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.2.1...7.2.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements-dev.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements-dev.txt b/requirements-dev.txt
index aa6012b1d..814a85894 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -10,7 +10,7 @@ coveralls==3.3.1
 ruff==0.0.254
 mypy==1.0.1
 pre-commit==3.1.1
-pytest==7.2.1
+pytest==7.2.2
 pytest-asyncio==0.20.3
 pytest-cov==4.0.0
 pytest-mock==3.10.0

From 31daf72cc6e5a945d3abf8b36653c59aae56ecef Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:40 +0000
Subject: [PATCH 06/29] Bump mypy from 1.0.1 to 1.1.1

Bumps [mypy](https://github.com/python/mypy) from 1.0.1 to 1.1.1.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](https://github.com/python/mypy/compare/v1.0.1...v1.1.1)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements-dev.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements-dev.txt b/requirements-dev.txt
index aa6012b1d..9ca83271a 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -8,7 +8,7 @@
 
 coveralls==3.3.1
 ruff==0.0.254
-mypy==1.0.1
+mypy==1.1.1
 pre-commit==3.1.1
 pytest==7.2.1
 pytest-asyncio==0.20.3

From b800f270920fa3f41d9c60870ceff52a59424928 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:46 +0000
Subject: [PATCH 07/29] Bump mkdocs-material from 9.1.1 to 9.1.2

Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.1.1 to 9.1.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.1.1...9.1.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 docs/requirements-docs.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt
index 1b9a1f9b7..d384a7ec5 100644
--- a/docs/requirements-docs.txt
+++ b/docs/requirements-docs.txt
@@ -1,6 +1,6 @@
 markdown==3.3.7
 mkdocs==1.4.2
-mkdocs-material==9.1.1
+mkdocs-material==9.1.2
 mdx_truly_sane_lists==1.3
 pymdown-extensions==9.10
 jinja2==3.1.2

From 82707be7d05077b61a6da6842a351fdf0045ebb2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:48 +0000
Subject: [PATCH 08/29] Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1

Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.6.4 to 1.7.1.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.4...v1.7.1)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .github/workflows/ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 191a10d1c..7e0483c3d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -425,7 +425,7 @@ jobs:
         python setup.py sdist bdist_wheel
 
     - name: Publish to PyPI (Test)
-      uses: pypa/gh-action-pypi-publish@v1.6.4
+      uses: pypa/gh-action-pypi-publish@v1.7.1
       if: (github.event_name == 'release')
       with:
         user: __token__
@@ -433,7 +433,7 @@ jobs:
         repository_url: https://test.pypi.org/legacy/
 
     - name: Publish to PyPI
-      uses: pypa/gh-action-pypi-publish@v1.6.4
+      uses: pypa/gh-action-pypi-publish@v1.7.1
       if: (github.event_name == 'release')
       with:
         user: __token__

From dc6af9a1a7f4c849628861e4b14ff21947c6c355 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 03:57:54 +0000
Subject: [PATCH 09/29] Bump urllib3 from 1.26.14 to 1.26.15

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.14 to 1.26.15.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.14...1.26.15)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 5977a6440..f2f7c4cf7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,7 +10,7 @@ python-telegram-bot==13.15
 arrow==1.2.3
 cachetools==4.2.2
 requests==2.28.2
-urllib3==1.26.14
+urllib3==1.26.15
 jsonschema==4.17.3
 TA-Lib==0.4.25
 technical==1.4.0

From 10c5adfa5076cbc9b763342a899ae5e67e661bf0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 05:37:55 +0000
Subject: [PATCH 10/29] Bump fastapi from 0.92.0 to 0.94.0

Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.92.0 to 0.94.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.92.0...0.94.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 15a1df4a0..53991d9f1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -34,7 +34,7 @@ orjson==3.8.7
 sdnotify==0.3.2
 
 # API Server
-fastapi==0.92.0
+fastapi==0.94.0
 pydantic==1.10.6
 uvicorn==0.20.0
 pyjwt==2.6.0

From 0e663a5bf80ed3149e0fb7e60984d2869369583d Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 07:06:16 +0100
Subject: [PATCH 11/29] Refresh binance cached leverage tiers

---
 .../exchange/binance_leverage_tiers.json      | 3984 ++++++++++++-----
 1 file changed, 2859 insertions(+), 1125 deletions(-)

diff --git a/freqtrade/exchange/binance_leverage_tiers.json b/freqtrade/exchange/binance_leverage_tiers.json
index 22db74f06..07fdcb5a4 100644
--- a/freqtrade/exchange/binance_leverage_tiers.json
+++ b/freqtrade/exchange/binance_leverage_tiers.json
@@ -104,10 +104,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.01",
@@ -120,10 +120,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -134,13 +134,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -149,49 +149,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -658,10 +674,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.01",
@@ -674,10 +690,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -688,18 +704,132 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
       }
     },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.1",
+        "cum": "20700.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.125",
+        "cum": "45700.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
+        "maintMarginRatio": "0.5",
+        "cum": "1795700.0"
+      }
+    }
+  ],
+  "ACH/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 100000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "100000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
     {
       "tier": 4.0,
       "currency": "USDT",
@@ -713,7 +843,7 @@
         "notionalCap": "250000",
         "notionalFloor": "100000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "5650.0"
       }
     },
     {
@@ -729,7 +859,7 @@
         "notionalCap": "1000000",
         "notionalFloor": "250000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "11900.0"
       }
     },
     {
@@ -745,7 +875,7 @@
         "notionalCap": "5000000",
         "notionalFloor": "1000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "386900.0"
       }
     }
   ],
@@ -1114,10 +1244,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -1130,10 +1260,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 15.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "15",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -1144,13 +1274,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -1159,49 +1289,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "23150.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -1701,14 +1847,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.012,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.012",
+        "maintMarginRatio": "0.01",
         "cum": "0.0"
       }
     },
@@ -1718,78 +1864,94 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
-        "cum": "65.0"
+        "cum": "75.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
-        "cum": "690.0"
+        "cum": "700.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5690.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11940.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386940.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -2353,14 +2515,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.015,
-      "maxLeverage": 25.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "25",
+        "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.015",
+        "maintMarginRatio": "0.01",
         "cum": "0.0"
       }
     },
@@ -2369,14 +2531,14 @@
       "currency": "USDT",
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.015,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "25000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.02",
+        "maintMarginRatio": "0.015",
         "cum": "25.0"
       }
     },
@@ -2384,112 +2546,96 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 150000.0,
-      "maintenanceMarginRate": 0.0225,
-      "maxLeverage": 15.0,
+      "maxNotional": 300000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "15",
-        "notionalCap": "150000",
+        "initialLeverage": "20",
+        "notionalCap": "300000",
         "notionalFloor": "25000",
-        "maintMarginRatio": "0.0225",
-        "cum": "87.5"
+        "maintMarginRatio": "0.02",
+        "cum": "150.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 150000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.025,
+      "minNotional": 300000.0,
+      "maxNotional": 1200000.0,
+      "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "10",
-        "notionalCap": "250000",
-        "notionalFloor": "150000",
-        "maintMarginRatio": "0.025",
-        "cum": "462.5"
+        "notionalCap": "1200000",
+        "notionalFloor": "300000",
+        "maintMarginRatio": "0.05",
+        "cum": "9150.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "minNotional": 1200000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "8",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.05",
-        "cum": "6712.5"
+        "initialLeverage": "5",
+        "notionalCap": "3000000",
+        "notionalFloor": "1200000",
+        "maintMarginRatio": "0.1",
+        "cum": "69150.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 2000000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 3000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "6",
-        "initialLeverage": "5",
-        "notionalCap": "2000000",
-        "notionalFloor": "1000000",
-        "maintMarginRatio": "0.1",
-        "cum": "56712.5"
+        "initialLeverage": "4",
+        "notionalCap": "6000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.125",
+        "cum": "144150.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 2000000.0,
-      "maxNotional": 5000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 4.0,
+      "minNotional": 6000000.0,
+      "maxNotional": 18000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
       "info": {
         "bracket": "7",
-        "initialLeverage": "4",
-        "notionalCap": "5000000",
-        "notionalFloor": "2000000",
-        "maintMarginRatio": "0.125",
-        "cum": "106712.5"
+        "initialLeverage": "2",
+        "notionalCap": "18000000",
+        "notionalFloor": "6000000",
+        "maintMarginRatio": "0.25",
+        "cum": "894150.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 5000000.0,
-      "maxNotional": 10000000.0,
-      "maintenanceMarginRate": 0.25,
-      "maxLeverage": 2.0,
-      "info": {
-        "bracket": "8",
-        "initialLeverage": "2",
-        "notionalCap": "10000000",
-        "notionalFloor": "5000000",
-        "maintMarginRatio": "0.25",
-        "cum": "731712.5"
-      }
-    },
-    {
-      "tier": 9.0,
-      "currency": "USDT",
-      "minNotional": 10000000.0,
-      "maxNotional": 20000000.0,
+      "minNotional": 18000000.0,
+      "maxNotional": 30000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "9",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "20000000",
-        "notionalFloor": "10000000",
+        "notionalCap": "30000000",
+        "notionalFloor": "18000000",
         "maintMarginRatio": "0.5",
-        "cum": "3231712.5"
+        "cum": "5394150.0"
       }
     }
   ],
@@ -2891,14 +3037,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0065,
+      "maintenanceMarginRate": 0.006,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
         "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0065",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -2915,61 +3061,61 @@
         "notionalCap": "50000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.01",
-        "cum": "17.5"
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 50000.0,
-      "maxNotional": 200000.0,
+      "maxNotional": 600000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "20",
-        "notionalCap": "200000",
+        "notionalCap": "600000",
         "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "767.5"
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 200000.0,
-      "maxNotional": 400000.0,
+      "minNotional": 600000.0,
+      "maxNotional": 1200000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "10",
-        "notionalCap": "400000",
-        "notionalFloor": "200000",
+        "notionalCap": "1200000",
+        "notionalFloor": "600000",
         "maintMarginRatio": "0.05",
-        "cum": "5767.5"
+        "cum": "15770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 400000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1200000.0,
+      "maxNotional": 3200000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "5",
-        "notionalCap": "1000000",
-        "notionalFloor": "400000",
+        "notionalCap": "3200000",
+        "notionalFloor": "1200000",
         "maintMarginRatio": "0.1",
-        "cum": "25767.5"
+        "cum": "75770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
+      "minNotional": 3200000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
@@ -2977,41 +3123,41 @@
         "bracket": "6",
         "initialLeverage": "4",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3200000",
         "maintMarginRatio": "0.125",
-        "cum": "50767.5"
+        "cum": "155770.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
       "minNotional": 5000000.0,
-      "maxNotional": 6000000.0,
+      "maxNotional": 12000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "2",
-        "notionalCap": "6000000",
+        "notionalCap": "12000000",
         "notionalFloor": "5000000",
         "maintMarginRatio": "0.25",
-        "cum": "675767.5"
+        "cum": "780770.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 6000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "10000000",
-        "notionalFloor": "6000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "2175767.5"
+        "cum": "3780770.0"
       }
     }
   ],
@@ -4762,96 +4908,96 @@
       "tier": 1.0,
       "currency": "USDT",
       "minNotional": 0.0,
-      "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 8.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "8",
-        "notionalCap": "25000",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.025",
+        "maintMarginRatio": "0.02",
         "cum": "0.0"
       }
     },
     {
       "tier": 2.0,
       "currency": "USDT",
-      "minNotional": 25000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 6.0,
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "6",
-        "notionalCap": "250000",
-        "notionalFloor": "25000",
-        "maintMarginRatio": "0.05",
-        "cum": "625.0"
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 500000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 25000.0,
+      "maxNotional": 100000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "5",
-        "notionalCap": "500000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.1",
-        "cum": "13125.0"
+        "initialLeverage": "10",
+        "notionalCap": "100000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 500000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 4.0,
+      "minNotional": 100000.0,
+      "maxNotional": 250000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "4",
-        "notionalCap": "1000000",
-        "notionalFloor": "500000",
-        "maintMarginRatio": "0.125",
-        "cum": "25625.0"
+        "initialLeverage": "5",
+        "notionalCap": "250000",
+        "notionalFloor": "100000",
+        "maintMarginRatio": "0.1",
+        "cum": "5650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 1500000.0,
-      "maintenanceMarginRate": 0.25,
+      "minNotional": 250000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "2",
-        "notionalCap": "1500000",
-        "notionalFloor": "1000000",
-        "maintMarginRatio": "0.25",
-        "cum": "150625.0"
+        "notionalCap": "1000000",
+        "notionalFloor": "250000",
+        "maintMarginRatio": "0.125",
+        "cum": "11900.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1500000.0,
-      "maxNotional": 2000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "1",
-        "notionalCap": "2000000",
-        "notionalFloor": "1500000",
+        "notionalCap": "5000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.5",
-        "cum": "525625.0"
+        "cum": "386900.0"
       }
     }
   ],
@@ -5054,13 +5200,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "maxNotional": 3000000.0,
       "maintenanceMarginRate": 0.01,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "50",
-        "notionalCap": "1000000",
+        "notionalCap": "3000000",
         "notionalFloor": "250000",
         "maintMarginRatio": "0.01",
         "cum": "1300.0"
@@ -5069,55 +5215,55 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 3000000.0,
+      "maxNotional": 15000000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "20",
-        "notionalCap": "10000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "15000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.025",
-        "cum": "16300.0"
+        "cum": "46300.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 10000000.0,
-      "maxNotional": 20000000.0,
+      "minNotional": 15000000.0,
+      "maxNotional": 30000000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "10",
-        "notionalCap": "20000000",
-        "notionalFloor": "10000000",
+        "notionalCap": "30000000",
+        "notionalFloor": "15000000",
         "maintMarginRatio": "0.05",
-        "cum": "266300.0"
+        "cum": "421300.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 20000000.0,
-      "maxNotional": 50000000.0,
+      "minNotional": 30000000.0,
+      "maxNotional": 80000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "5",
-        "notionalCap": "50000000",
-        "notionalFloor": "20000000",
+        "notionalCap": "80000000",
+        "notionalFloor": "30000000",
         "maintMarginRatio": "0.1",
-        "cum": "1266300.0"
+        "cum": "1921300.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 50000000.0,
+      "minNotional": 80000000.0,
       "maxNotional": 100000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
@@ -5125,9 +5271,9 @@
         "bracket": "7",
         "initialLeverage": "4",
         "notionalCap": "100000000",
-        "notionalFloor": "50000000",
+        "notionalFloor": "80000000",
         "maintMarginRatio": "0.125",
-        "cum": "2516300.0"
+        "cum": "3921300.0"
       }
     },
     {
@@ -5143,7 +5289,7 @@
         "notionalCap": "200000000",
         "notionalFloor": "100000000",
         "maintMarginRatio": "0.15",
-        "cum": "5016300.0"
+        "cum": "6421300.0"
       }
     },
     {
@@ -5159,7 +5305,7 @@
         "notionalCap": "300000000",
         "notionalFloor": "200000000",
         "maintMarginRatio": "0.25",
-        "cum": "2.50163E7"
+        "cum": "2.64213E7"
       }
     },
     {
@@ -5175,7 +5321,7 @@
         "notionalCap": "500000000",
         "notionalFloor": "300000000",
         "maintMarginRatio": "0.5",
-        "cum": "1.000163E8"
+        "cum": "1.014213E8"
       }
     }
   ],
@@ -5881,6 +6027,136 @@
       }
     }
   ],
+  "CFX/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 50.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "50",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.01",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.015,
+      "maxLeverage": 25.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "25",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.015",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 300000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "20",
+        "notionalCap": "300000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.02",
+        "cum": "150.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 300000.0,
+      "maxNotional": 1200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "10",
+        "notionalCap": "1200000",
+        "notionalFloor": "300000",
+        "maintMarginRatio": "0.05",
+        "cum": "9150.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 1200000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "5",
+        "notionalCap": "3000000",
+        "notionalFloor": "1200000",
+        "maintMarginRatio": "0.1",
+        "cum": "69150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "6000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.125",
+        "cum": "144150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 18000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "18000000",
+        "notionalFloor": "6000000",
+        "maintMarginRatio": "0.25",
+        "cum": "894150.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 18000000.0,
+      "maxNotional": 30000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "8",
+        "initialLeverage": "1",
+        "notionalCap": "30000000",
+        "notionalFloor": "18000000",
+        "maintMarginRatio": "0.5",
+        "cum": "5394150.0"
+      }
+    }
+  ],
   "CHR/USDT:USDT": [
     {
       "tier": 1.0,
@@ -6077,6 +6353,218 @@
       }
     }
   ],
+  "CKB/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.1",
+        "cum": "10650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 500000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "1000000",
+        "notionalFloor": "500000",
+        "maintMarginRatio": "0.125",
+        "cum": "23150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
+  "COCOS/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 100000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "100000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 100000.0,
+      "maxNotional": 250000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "250000",
+        "notionalFloor": "100000",
+        "maintMarginRatio": "0.1",
+        "cum": "5650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 250000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "2",
+        "notionalCap": "1000000",
+        "notionalFloor": "250000",
+        "maintMarginRatio": "0.125",
+        "cum": "11900.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.5",
+        "cum": "386900.0"
+      }
+    }
+  ],
   "COMP/USDT:USDT": [
     {
       "tier": 1.0,
@@ -7944,10 +8432,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -7960,10 +8448,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -7974,13 +8462,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -7989,105 +8477,7 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
-      "info": {
-        "bracket": "4",
-        "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
-        "maintMarginRatio": "0.1",
-        "cum": "5650.0"
-      }
-    },
-    {
-      "tier": 5.0,
-      "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
-      "info": {
-        "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.125",
-        "cum": "11900.0"
-      }
-    },
-    {
-      "tier": 6.0,
-      "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 3000000.0,
-      "maintenanceMarginRate": 0.5,
-      "maxLeverage": 1.0,
-      "info": {
-        "bracket": "6",
-        "initialLeverage": "1",
-        "notionalCap": "3000000",
-        "notionalFloor": "1000000",
-        "maintMarginRatio": "0.5",
-        "cum": "386900.0"
-      }
-    }
-  ],
-  "DYDX/USDT:USDT": [
-    {
-      "tier": 1.0,
-      "currency": "USDT",
-      "minNotional": 0.0,
-      "maxNotional": 50000.0,
-      "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
-      "info": {
-        "bracket": "1",
-        "initialLeverage": "20",
-        "notionalCap": "50000",
-        "notionalFloor": "0",
-        "maintMarginRatio": "0.02",
-        "cum": "0.0"
-      }
-    },
-    {
-      "tier": 2.0,
-      "currency": "USDT",
-      "minNotional": 50000.0,
-      "maxNotional": 150000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
-      "info": {
-        "bracket": "2",
-        "initialLeverage": "10",
-        "notionalCap": "150000",
-        "notionalFloor": "50000",
-        "maintMarginRatio": "0.025",
-        "cum": "250.0"
-      }
-    },
-    {
-      "tier": 3.0,
-      "currency": "USDT",
-      "minNotional": 150000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
-      "info": {
-        "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "250000",
-        "notionalFloor": "150000",
-        "maintMarginRatio": "0.05",
-        "cum": "4000.0"
-      }
-    },
-    {
-      "tier": 4.0,
-      "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 200000.0,
       "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
@@ -8095,9 +8485,9 @@
         "bracket": "4",
         "initialLeverage": "5",
         "notionalCap": "500000",
-        "notionalFloor": "250000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "16500.0"
+        "cum": "10650.0"
       }
     },
     {
@@ -8113,39 +8503,169 @@
         "notionalCap": "1000000",
         "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "29000.0"
+        "cum": "23150.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
-      "maxNotional": 4000000.0,
+      "maxNotional": 3000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "2",
-        "notionalCap": "4000000",
+        "notionalCap": "3000000",
         "notionalFloor": "1000000",
         "maintMarginRatio": "0.25",
-        "cum": "154000.0"
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
+  "DYDX/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 50.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "50",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.01",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 50000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 25.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "25",
+        "notionalCap": "50000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.02",
+        "cum": "50.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 50000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "20",
+        "notionalCap": "400000",
+        "notionalFloor": "50000",
+        "maintMarginRatio": "0.025",
+        "cum": "300.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "10",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.05",
+        "cum": "10300.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "5",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
+        "maintMarginRatio": "0.1",
+        "cum": "50300.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 2000000.0,
+      "maxNotional": 4000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "4000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.125",
+        "cum": "100300.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
       "minNotional": 4000000.0,
-      "maxNotional": 8000000.0,
+      "maxNotional": 12000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "12000000",
+        "notionalFloor": "4000000",
+        "maintMarginRatio": "0.25",
+        "cum": "600300.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "7",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "8000000",
-        "notionalFloor": "4000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "1154000.0"
+        "cum": "3600300.0"
       }
     }
   ],
@@ -9096,13 +9616,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.01,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "50",
-        "notionalCap": "1000000",
+        "notionalCap": "2000000",
         "notionalFloor": "250000",
         "maintMarginRatio": "0.01",
         "cum": "1025.0"
@@ -9111,71 +9631,71 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.02,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "20",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.02",
-        "cum": "11025.0"
+        "cum": "21025.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 5000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 10000000.0,
+      "maxNotional": 25000000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "10",
-        "notionalCap": "10000000",
-        "notionalFloor": "5000000",
+        "notionalCap": "25000000",
+        "notionalFloor": "10000000",
         "maintMarginRatio": "0.05",
-        "cum": "161025.0"
+        "cum": "321025.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 10000000.0,
-      "maxNotional": 20000000.0,
+      "minNotional": 25000000.0,
+      "maxNotional": 50000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "5",
-        "notionalCap": "20000000",
-        "notionalFloor": "10000000",
+        "notionalCap": "50000000",
+        "notionalFloor": "25000000",
         "maintMarginRatio": "0.1",
-        "cum": "661025.0"
+        "cum": "1571025.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 20000000.0,
-      "maxNotional": 40000000.0,
+      "minNotional": 50000000.0,
+      "maxNotional": 60000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "4",
-        "notionalCap": "40000000",
-        "notionalFloor": "20000000",
+        "notionalCap": "60000000",
+        "notionalFloor": "50000000",
         "maintMarginRatio": "0.125",
-        "cum": "1161025.0"
+        "cum": "2821025.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 40000000.0,
+      "minNotional": 60000000.0,
       "maxNotional": 80000000.0,
       "maintenanceMarginRate": 0.15,
       "maxLeverage": 3.0,
@@ -9183,9 +9703,9 @@
         "bracket": "8",
         "initialLeverage": "3",
         "notionalCap": "80000000",
-        "notionalFloor": "40000000",
+        "notionalFloor": "60000000",
         "maintMarginRatio": "0.15",
-        "cum": "2161025.0"
+        "cum": "4321025.0"
       }
     },
     {
@@ -9201,7 +9721,7 @@
         "notionalCap": "150000000",
         "notionalFloor": "80000000",
         "maintMarginRatio": "0.25",
-        "cum": "1.0161025E7"
+        "cum": "1.2321025E7"
       }
     },
     {
@@ -9217,7 +9737,7 @@
         "notionalCap": "300000000",
         "notionalFloor": "150000000",
         "maintMarginRatio": "0.5",
-        "cum": "4.7661025E7"
+        "cum": "4.9821025E7"
       }
     }
   ],
@@ -9342,10 +9862,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -9358,10 +9878,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 15.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "15",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -9372,13 +9892,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -9387,49 +9907,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "23150.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -9537,14 +10073,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 50000.0,
-      "maintenanceMarginRate": 0.01,
-      "maxLeverage": 25.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "25",
+        "initialLeverage": "50",
         "notionalCap": "50000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.01",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -9553,111 +10089,127 @@
       "currency": "USDT",
       "minNotional": 50000.0,
       "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "250000",
         "notionalFloor": "50000",
-        "maintMarginRatio": "0.02",
-        "cum": "500.0"
+        "maintMarginRatio": "0.01",
+        "cum": "200.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 10.0,
+      "maxNotional": 600000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "10",
-        "notionalCap": "1000000",
+        "initialLeverage": "20",
+        "notionalCap": "600000",
         "notionalFloor": "250000",
-        "maintMarginRatio": "0.05",
-        "cum": "8000.0"
+        "maintMarginRatio": "0.02",
+        "cum": "2700.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 2000000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 600000.0,
+      "maxNotional": 1200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "5",
-        "notionalCap": "2000000",
-        "notionalFloor": "1000000",
-        "maintMarginRatio": "0.1",
-        "cum": "58000.0"
+        "initialLeverage": "10",
+        "notionalCap": "1200000",
+        "notionalFloor": "600000",
+        "maintMarginRatio": "0.05",
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 2000000.0,
-      "maxNotional": 5000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 4.0,
+      "minNotional": 1200000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "4",
-        "notionalCap": "5000000",
-        "notionalFloor": "2000000",
-        "maintMarginRatio": "0.125",
-        "cum": "108000.0"
+        "initialLeverage": "5",
+        "notionalCap": "3000000",
+        "notionalFloor": "1200000",
+        "maintMarginRatio": "0.1",
+        "cum": "80700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 5000000.0,
-      "maxNotional": 10000000.0,
-      "maintenanceMarginRate": 0.1665,
-      "maxLeverage": 3.0,
+      "minNotional": 3000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "6",
-        "initialLeverage": "3",
-        "notionalCap": "10000000",
-        "notionalFloor": "5000000",
-        "maintMarginRatio": "0.1665",
-        "cum": "315500.0"
+        "initialLeverage": "4",
+        "notionalCap": "6000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.125",
+        "cum": "155700.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
+      "maintenanceMarginRate": 0.165,
+      "maxLeverage": 3.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "3",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
+        "maintMarginRatio": "0.165",
+        "cum": "395700.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
       "minNotional": 10000000.0,
       "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
-        "bracket": "7",
+        "bracket": "8",
         "initialLeverage": "2",
         "notionalCap": "20000000",
         "notionalFloor": "10000000",
         "maintMarginRatio": "0.25",
-        "cum": "1150500.0"
+        "cum": "1245700.0"
       }
     },
     {
-      "tier": 8.0,
+      "tier": 9.0,
       "currency": "USDT",
       "minNotional": 20000000.0,
       "maxNotional": 30000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "8",
+        "bracket": "9",
         "initialLeverage": "1",
         "notionalCap": "30000000",
         "notionalFloor": "20000000",
         "maintMarginRatio": "0.5",
-        "cum": "6150500.0"
+        "cum": "6245700.0"
       }
     }
   ],
@@ -10075,14 +10627,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0075,
+      "maintenanceMarginRate": 0.006,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
         "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0075",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -10099,103 +10651,103 @@
         "notionalCap": "50000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.01",
-        "cum": "12.5"
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 50000.0,
-      "maxNotional": 150000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "20",
-        "notionalCap": "150000",
+        "notionalCap": "400000",
         "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "762.5"
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 150000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "10",
-        "notionalCap": "250000",
-        "notionalFloor": "150000",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.05",
-        "cum": "4512.5"
+        "cum": "10770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 500000.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "5",
-        "notionalCap": "500000",
-        "notionalFloor": "250000",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.1",
-        "cum": "17012.5"
+        "cum": "50770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 500000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "4",
-        "notionalCap": "1000000",
-        "notionalFloor": "500000",
+        "notionalCap": "5000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.125",
-        "cum": "29512.5"
+        "cum": "100770.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 4000000.0,
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "2",
-        "notionalCap": "4000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
         "maintMarginRatio": "0.25",
-        "cum": "154512.5"
+        "cum": "725770.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 4000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "10000000",
-        "notionalFloor": "4000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "1154512.5"
+        "cum": "3725770.0"
       }
     }
   ],
@@ -11113,6 +11665,104 @@
       }
     }
   ],
+  "GMX/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 100000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "100000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 100000.0,
+      "maxNotional": 250000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "250000",
+        "notionalFloor": "100000",
+        "maintMarginRatio": "0.1",
+        "cum": "5650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 250000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "2",
+        "notionalCap": "1000000",
+        "notionalFloor": "250000",
+        "maintMarginRatio": "0.125",
+        "cum": "11900.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.5",
+        "cum": "386900.0"
+      }
+    }
+  ],
   "GRT/USDT:USDT": [
     {
       "tier": 1.0,
@@ -11150,13 +11800,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -11165,49 +11815,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -11414,10 +12080,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -11430,10 +12096,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 15.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "15",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -11444,13 +12110,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -11459,49 +12125,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "20650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "45650.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295650.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "1795650.0"
       }
     }
   ],
@@ -12296,10 +12978,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -12312,10 +12994,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -12326,13 +13008,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -12341,33 +13023,33 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "23150.0"
       }
     },
     {
@@ -12375,15 +13057,31 @@
       "currency": "USDT",
       "minNotional": 1000000.0,
       "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "3000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -12800,80 +13498,112 @@
       "tier": 1.0,
       "currency": "USDT",
       "minNotional": 0.0,
-      "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 20.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
-        "notionalCap": "25000",
+        "initialLeverage": "25",
+        "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.025",
+        "maintMarginRatio": "0.01",
         "cum": "0.0"
       }
     },
     {
       "tier": 2.0,
       "currency": "USDT",
-      "minNotional": 25000.0,
-      "maxNotional": 100000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 10.0,
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
-        "notionalCap": "100000",
-        "notionalFloor": "25000",
-        "maintMarginRatio": "0.05",
-        "cum": "625.0"
+        "initialLeverage": "20",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "75.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 25000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
-        "maintMarginRatio": "0.1",
-        "cum": "5625.0"
+        "initialLeverage": "10",
+        "notionalCap": "400000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "700.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 400000.0,
       "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "2",
+        "initialLeverage": "5",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.125",
-        "cum": "11875.0"
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.1",
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.125",
+        "cum": "45700.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "5",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386875.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -13177,14 +13907,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.01",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -13192,80 +13922,112 @@
       "tier": 2.0,
       "currency": "USDT",
       "minNotional": 5000.0,
-      "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxNotional": 50000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
-        "notionalCap": "25000",
+        "initialLeverage": "25",
+        "notionalCap": "50000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.025",
-        "cum": "75.0"
+        "maintMarginRatio": "0.01",
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
-      "minNotional": 25000.0,
-      "maxNotional": 100000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "minNotional": 50000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
-        "notionalFloor": "25000",
-        "maintMarginRatio": "0.05",
-        "cum": "700.0"
+        "initialLeverage": "20",
+        "notionalCap": "400000",
+        "notionalFloor": "50000",
+        "maintMarginRatio": "0.025",
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
-        "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "initialLeverage": "10",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.05",
+        "cum": "10770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "initialLeverage": "5",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
+        "maintMarginRatio": "0.1",
+        "cum": "50770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
+      "minNotional": 2000000.0,
       "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "5000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.125",
+        "cum": "100770.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
+        "maintMarginRatio": "0.25",
+        "cum": "725770.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "3725770.0"
       }
     }
   ],
@@ -13921,6 +14683,120 @@
       }
     }
   ],
+  "LQTY/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.1",
+        "cum": "10650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 500000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "1000000",
+        "notionalFloor": "500000",
+        "maintMarginRatio": "0.125",
+        "cum": "23150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
   "LRC/USDT:USDT": [
     {
       "tier": 1.0,
@@ -14772,13 +15648,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 600000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "600000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -14787,49 +15663,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 600000.0,
+      "maxNotional": 1600000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1600000",
+        "notionalFloor": "600000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "30650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 1600000.0,
       "maxNotional": 3000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "3000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "1600000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "70650.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 3000000.0,
-      "maxNotional": 8000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.25",
+        "cum": "445650.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "8000000",
-        "notionalFloor": "3000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "1136900.0"
+        "cum": "1945650.0"
       }
     }
   ],
@@ -14953,14 +15845,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0065,
+      "maintenanceMarginRate": 0.006,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
         "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0065",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -14969,14 +15861,14 @@
       "currency": "USDT",
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.0075,
+      "maintenanceMarginRate": 0.007,
       "maxLeverage": 40.0,
       "info": {
         "bracket": "2",
         "initialLeverage": "40",
         "notionalCap": "25000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.0075",
+        "maintMarginRatio": "0.007",
         "cum": "5.0"
       }
     },
@@ -14993,103 +15885,103 @@
         "notionalCap": "50000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.01",
-        "cum": "67.5"
+        "cum": "80.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
       "minNotional": 50000.0,
-      "maxNotional": 150000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "20",
-        "notionalCap": "150000",
+        "notionalCap": "400000",
         "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "817.5"
+        "cum": "830.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 150000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "10",
-        "notionalCap": "250000",
-        "notionalFloor": "150000",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.05",
-        "cum": "4567.5"
+        "cum": "10830.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 500000.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "5",
-        "notionalCap": "500000",
-        "notionalFloor": "250000",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.1",
-        "cum": "17067.5"
+        "cum": "50830.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 500000.0,
-      "maxNotional": 750000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "4",
-        "notionalCap": "750000",
-        "notionalFloor": "500000",
+        "notionalCap": "5000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.125",
-        "cum": "29567.5"
+        "cum": "100830.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 750000.0,
-      "maxNotional": 3000000.0,
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "8",
         "initialLeverage": "2",
-        "notionalCap": "3000000",
-        "notionalFloor": "750000",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
         "maintMarginRatio": "0.25",
-        "cum": "123317.5"
+        "cum": "725830.0"
       }
     },
     {
       "tier": 9.0,
       "currency": "USDT",
-      "minNotional": 3000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "9",
         "initialLeverage": "1",
-        "notionalCap": "10000000",
-        "notionalFloor": "3000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "873317.5"
+        "cum": "3725830.0"
       }
     }
   ],
@@ -15099,14 +15991,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.02",
+        "maintMarginRatio": "0.01",
         "cum": "0.0"
       }
     },
@@ -15116,78 +16008,94 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 15.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "15",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
-        "cum": "25.0"
+        "cum": "75.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
-        "cum": "650.0"
+        "cum": "700.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -15522,13 +16430,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 150000.0,
-      "maxNotional": 250000.0,
+      "maxNotional": 600000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "250000",
+        "notionalCap": "600000",
         "notionalFloor": "150000",
         "maintMarginRatio": "0.05",
         "cum": "4500.0"
@@ -15537,65 +16445,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 500000.0,
+      "minNotional": 600000.0,
+      "maxNotional": 1600000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "500000",
-        "notionalFloor": "250000",
+        "notionalCap": "1600000",
+        "notionalFloor": "600000",
         "maintMarginRatio": "0.1",
-        "cum": "17000.0"
+        "cum": "34500.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 500000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1600000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "4",
-        "notionalCap": "1000000",
-        "notionalFloor": "500000",
+        "notionalCap": "2000000",
+        "notionalFloor": "1600000",
         "maintMarginRatio": "0.125",
-        "cum": "29500.0"
+        "cum": "74500.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 2000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "2",
-        "notionalCap": "2000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.25",
-        "cum": "154500.0"
+        "cum": "324500.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 2000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "2000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "654500.0"
+        "cum": "1824500.0"
       }
     }
   ],
@@ -15605,14 +16513,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.01,
-      "maxLeverage": 25.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "25",
+        "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.01",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -15620,80 +16528,112 @@
       "tier": 2.0,
       "currency": "USDT",
       "minNotional": 5000.0,
-      "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 20.0,
+      "maxNotional": 50000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "20",
-        "notionalCap": "25000",
+        "initialLeverage": "25",
+        "notionalCap": "50000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.025",
-        "cum": "75.0"
+        "maintMarginRatio": "0.01",
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
-      "minNotional": 25000.0,
-      "maxNotional": 100000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 10.0,
+      "minNotional": 50000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "10",
-        "notionalCap": "100000",
-        "notionalFloor": "25000",
-        "maintMarginRatio": "0.05",
-        "cum": "700.0"
+        "initialLeverage": "20",
+        "notionalCap": "400000",
+        "notionalFloor": "50000",
+        "maintMarginRatio": "0.025",
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
-        "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "initialLeverage": "10",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.05",
+        "cum": "10770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "initialLeverage": "5",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
+        "maintMarginRatio": "0.1",
+        "cum": "50770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
+      "minNotional": 2000000.0,
       "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "5000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.125",
+        "cum": "100770.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
+        "maintMarginRatio": "0.25",
+        "cum": "725770.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "3725770.0"
       }
     }
   ],
@@ -16291,14 +17231,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0065,
+      "maintenanceMarginRate": 0.006,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
         "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0065",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -16315,61 +17255,61 @@
         "notionalCap": "50000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.01",
-        "cum": "17.5"
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 50000.0,
-      "maxNotional": 200000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "20",
-        "notionalCap": "200000",
+        "notionalCap": "400000",
         "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "767.5"
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 200000.0,
-      "maxNotional": 400000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "10",
-        "notionalCap": "400000",
-        "notionalFloor": "200000",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.05",
-        "cum": "5767.5"
+        "cum": "10770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 400000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "5",
-        "notionalCap": "1000000",
-        "notionalFloor": "400000",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.1",
-        "cum": "25767.5"
+        "cum": "50770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
+      "minNotional": 2000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
@@ -16377,41 +17317,41 @@
         "bracket": "6",
         "initialLeverage": "4",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.125",
-        "cum": "50767.5"
+        "cum": "100770.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
       "minNotional": 5000000.0,
-      "maxNotional": 6000000.0,
+      "maxNotional": 12000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "2",
-        "notionalCap": "6000000",
+        "notionalCap": "12000000",
         "notionalFloor": "5000000",
         "maintMarginRatio": "0.25",
-        "cum": "675767.5"
+        "cum": "725770.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 6000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "10000000",
-        "notionalFloor": "6000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "2175767.5"
+        "cum": "3725770.0"
       }
     }
   ],
@@ -16513,6 +17453,120 @@
       }
     }
   ],
+  "PERP/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.1",
+        "cum": "10650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 500000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "1000000",
+        "notionalFloor": "500000",
+        "maintMarginRatio": "0.125",
+        "cum": "23150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
   "PHB/BUSD:BUSD": [
     {
       "tier": 1.0,
@@ -16844,13 +17898,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -16859,49 +17913,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "10700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "23200.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148200.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "898200.0"
       }
     }
   ],
@@ -17108,10 +18178,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 15.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "15",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -17124,10 +18194,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -17138,13 +18208,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -17153,49 +18223,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "23150.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
-      "maxNotional": 1500000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "1500000",
-        "notionalFloor": "1000000",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -17386,10 +18472,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.01",
@@ -17402,10 +18488,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -17416,13 +18502,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -17431,49 +18517,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "10700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "23200.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148200.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "898200.0"
       }
     }
   ],
@@ -17484,10 +18586,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -17500,10 +18602,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -17514,13 +18616,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 300000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "300000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -17529,49 +18631,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 300000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "800000",
+        "notionalFloor": "300000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "15650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 800000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "35650.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "160650.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "910650.0"
       }
     }
   ],
@@ -17875,14 +18993,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0065,
+      "maintenanceMarginRate": 0.006,
       "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
         "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0065",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -17891,14 +19009,14 @@
       "currency": "USDT",
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.0075,
+      "maintenanceMarginRate": 0.007,
       "maxLeverage": 40.0,
       "info": {
         "bracket": "2",
         "initialLeverage": "40",
         "notionalCap": "25000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.0075",
+        "maintMarginRatio": "0.007",
         "cum": "5.0"
       }
     },
@@ -17915,103 +19033,103 @@
         "notionalCap": "50000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.01",
-        "cum": "67.5"
+        "cum": "80.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
       "minNotional": 50000.0,
-      "maxNotional": 150000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.025,
       "maxLeverage": 20.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "20",
-        "notionalCap": "150000",
+        "notionalCap": "400000",
         "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "817.5"
+        "cum": "830.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 150000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "10",
-        "notionalCap": "250000",
-        "notionalFloor": "150000",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.05",
-        "cum": "4567.5"
+        "cum": "10830.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 500000.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "6",
         "initialLeverage": "5",
-        "notionalCap": "500000",
-        "notionalFloor": "250000",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.1",
-        "cum": "17067.5"
+        "cum": "50830.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
-      "minNotional": 500000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
       "maxLeverage": 4.0,
       "info": {
         "bracket": "7",
         "initialLeverage": "4",
-        "notionalCap": "1000000",
-        "notionalFloor": "500000",
+        "notionalCap": "5000000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.125",
-        "cum": "29567.5"
+        "cum": "100830.0"
       }
     },
     {
       "tier": 8.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
       "maintenanceMarginRate": 0.25,
       "maxLeverage": 2.0,
       "info": {
         "bracket": "8",
         "initialLeverage": "2",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
         "maintMarginRatio": "0.25",
-        "cum": "154567.5"
+        "cum": "725830.0"
       }
     },
     {
       "tier": 9.0,
       "currency": "USDT",
-      "minNotional": 5000000.0,
-      "maxNotional": 10000000.0,
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
         "bracket": "9",
         "initialLeverage": "1",
-        "notionalCap": "10000000",
-        "notionalFloor": "5000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "1404567.5"
+        "cum": "3725830.0"
       }
     }
   ],
@@ -18316,10 +19434,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.01",
@@ -18332,10 +19450,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -18346,13 +19464,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -18361,49 +19479,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "1795700.0"
       }
     }
   ],
@@ -18831,7 +19965,7 @@
       }
     }
   ],
-  "STG/USDT:USDT": [
+  "SSV/USDT:USDT": [
     {
       "tier": 1.0,
       "currency": "USDT",
@@ -18854,10 +19988,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 15.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "15",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -18868,13 +20002,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -18883,33 +20017,33 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "23150.0"
       }
     },
     {
@@ -18917,15 +20051,145 @@
       "currency": "USDT",
       "minNotional": 1000000.0,
       "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
+  "STG/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 25.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "25",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "20",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.1",
+        "cum": "10650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 500000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "1000000",
+        "notionalFloor": "500000",
+        "maintMarginRatio": "0.125",
+        "cum": "23150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
         "notionalCap": "3000000",
         "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -19064,13 +20328,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 300000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "300000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -19079,49 +20343,179 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 300000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "800000",
+        "notionalFloor": "300000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "15700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 800000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "35700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
       "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "160700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
         "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "910700.0"
+      }
+    }
+  ],
+  "STX/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "25",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.01",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "20",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "75.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "700.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.1",
+        "cum": "20700.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.125",
+        "cum": "45700.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
+        "maintMarginRatio": "0.5",
+        "cum": "1795700.0"
       }
     }
   ],
@@ -19941,6 +21335,120 @@
       }
     }
   ],
+  "TRU/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.02,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "20",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.02",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 25000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 15.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "15",
+        "notionalCap": "25000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.025",
+        "cum": "25.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 25000.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
+        "notionalFloor": "25000",
+        "maintMarginRatio": "0.05",
+        "cum": "650.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "5",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.1",
+        "cum": "10650.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 500000.0,
+      "maxNotional": 1000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "4",
+        "notionalCap": "1000000",
+        "notionalFloor": "500000",
+        "maintMarginRatio": "0.125",
+        "cum": "23150.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 1000000.0,
+      "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "1",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
+        "maintMarginRatio": "0.5",
+        "cum": "898150.0"
+      }
+    }
+  ],
   "TRX/BUSD:BUSD": [
     {
       "tier": 1.0,
@@ -20403,14 +21911,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.0065,
-      "maxLeverage": 25.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "25",
+        "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.0065",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -20418,96 +21926,242 @@
       "tier": 2.0,
       "currency": "USDT",
       "minNotional": 5000.0,
-      "maxNotional": 10000.0,
+      "maxNotional": 50000.0,
       "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "20",
-        "notionalCap": "10000",
+        "initialLeverage": "25",
+        "notionalCap": "50000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.01",
-        "cum": "17.5"
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
-      "minNotional": 10000.0,
-      "maxNotional": 25000.0,
+      "minNotional": 50000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "10",
-        "notionalCap": "25000",
-        "notionalFloor": "10000",
+        "initialLeverage": "20",
+        "notionalCap": "400000",
+        "notionalFloor": "50000",
         "maintMarginRatio": "0.025",
-        "cum": "167.5"
+        "cum": "770.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 800000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
-        "notionalFloor": "25000",
+        "initialLeverage": "10",
+        "notionalCap": "800000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.05",
-        "cum": "792.5"
+        "cum": "10770.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 800000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "2000000",
+        "notionalFloor": "800000",
         "maintMarginRatio": "0.1",
-        "cum": "5792.5"
+        "cum": "50770.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 2000000.0,
       "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "6",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "5000000",
-        "notionalFloor": "250000",
+        "notionalFloor": "2000000",
         "maintMarginRatio": "0.125",
-        "cum": "12042.5"
+        "cum": "100770.0"
       }
     },
     {
       "tier": 7.0,
       "currency": "USDT",
       "minNotional": 5000000.0,
-      "maxNotional": 8000000.0,
+      "maxNotional": 12000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
+        "maintMarginRatio": "0.25",
+        "cum": "725770.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "7",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "8000000",
-        "notionalFloor": "5000000",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
         "maintMarginRatio": "0.5",
-        "cum": "1887042.5"
+        "cum": "3725770.0"
+      }
+    }
+  ],
+  "USDC/USDT:USDT": [
+    {
+      "tier": 1.0,
+      "currency": "USDT",
+      "minNotional": 0.0,
+      "maxNotional": 5000.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 30.0,
+      "info": {
+        "bracket": "1",
+        "initialLeverage": "30",
+        "notionalCap": "5000",
+        "notionalFloor": "0",
+        "maintMarginRatio": "0.006",
+        "cum": "0.0"
+      }
+    },
+    {
+      "tier": 2.0,
+      "currency": "USDT",
+      "minNotional": 5000.0,
+      "maxNotional": 50000.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
+      "info": {
+        "bracket": "2",
+        "initialLeverage": "25",
+        "notionalCap": "50000",
+        "notionalFloor": "5000",
+        "maintMarginRatio": "0.01",
+        "cum": "20.0"
+      }
+    },
+    {
+      "tier": 3.0,
+      "currency": "USDT",
+      "minNotional": 50000.0,
+      "maxNotional": 600000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
+      "info": {
+        "bracket": "3",
+        "initialLeverage": "20",
+        "notionalCap": "600000",
+        "notionalFloor": "50000",
+        "maintMarginRatio": "0.025",
+        "cum": "770.0"
+      }
+    },
+    {
+      "tier": 4.0,
+      "currency": "USDT",
+      "minNotional": 600000.0,
+      "maxNotional": 1200000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
+      "info": {
+        "bracket": "4",
+        "initialLeverage": "10",
+        "notionalCap": "1200000",
+        "notionalFloor": "600000",
+        "maintMarginRatio": "0.05",
+        "cum": "15770.0"
+      }
+    },
+    {
+      "tier": 5.0,
+      "currency": "USDT",
+      "minNotional": 1200000.0,
+      "maxNotional": 3200000.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
+      "info": {
+        "bracket": "5",
+        "initialLeverage": "5",
+        "notionalCap": "3200000",
+        "notionalFloor": "1200000",
+        "maintMarginRatio": "0.1",
+        "cum": "75770.0"
+      }
+    },
+    {
+      "tier": 6.0,
+      "currency": "USDT",
+      "minNotional": 3200000.0,
+      "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "5000000",
+        "notionalFloor": "3200000",
+        "maintMarginRatio": "0.125",
+        "cum": "155770.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 5000000.0,
+      "maxNotional": 12000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "12000000",
+        "notionalFloor": "5000000",
+        "maintMarginRatio": "0.25",
+        "cum": "780770.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 12000000.0,
+      "maxNotional": 20000000.0,
+      "maintenanceMarginRate": 0.5,
+      "maxLeverage": 1.0,
+      "info": {
+        "bracket": "8",
+        "initialLeverage": "1",
+        "notionalCap": "20000000",
+        "notionalFloor": "12000000",
+        "maintMarginRatio": "0.5",
+        "cum": "3780770.0"
       }
     }
   ],
@@ -20517,14 +22171,14 @@
       "currency": "USDT",
       "minNotional": 0.0,
       "maxNotional": 5000.0,
-      "maintenanceMarginRate": 0.01,
-      "maxLeverage": 20.0,
+      "maintenanceMarginRate": 0.006,
+      "maxLeverage": 50.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "50",
         "notionalCap": "5000",
         "notionalFloor": "0",
-        "maintMarginRatio": "0.01",
+        "maintMarginRatio": "0.006",
         "cum": "0.0"
       }
     },
@@ -20533,63 +22187,63 @@
       "currency": "USDT",
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
-      "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maintenanceMarginRate": 0.01,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "25",
         "notionalCap": "25000",
         "notionalFloor": "5000",
-        "maintMarginRatio": "0.025",
-        "cum": "75.0"
+        "maintMarginRatio": "0.01",
+        "cum": "20.0"
       }
     },
     {
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
-      "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxNotional": 200000.0,
+      "maintenanceMarginRate": 0.025,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "20",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
-        "maintMarginRatio": "0.05",
-        "cum": "700.0"
+        "maintMarginRatio": "0.025",
+        "cum": "395.0"
       }
     },
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
-      "maintenanceMarginRate": 0.1,
-      "maxLeverage": 5.0,
+      "minNotional": 200000.0,
+      "maxNotional": 400000.0,
+      "maintenanceMarginRate": 0.05,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "4",
-        "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
-        "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "initialLeverage": "10",
+        "notionalCap": "400000",
+        "notionalFloor": "200000",
+        "maintMarginRatio": "0.05",
+        "cum": "5395.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
+      "minNotional": 400000.0,
       "maxNotional": 1000000.0,
-      "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maintenanceMarginRate": 0.1,
+      "maxLeverage": 5.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "5",
         "notionalCap": "1000000",
-        "notionalFloor": "250000",
-        "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "notionalFloor": "400000",
+        "maintMarginRatio": "0.1",
+        "cum": "25395.0"
       }
     },
     {
@@ -20597,15 +22251,47 @@
       "currency": "USDT",
       "minNotional": 1000000.0,
       "maxNotional": 5000000.0,
+      "maintenanceMarginRate": 0.125,
+      "maxLeverage": 4.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "4",
+        "notionalCap": "5000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.125",
+        "cum": "50395.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 5000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "7",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "5000000",
+        "maintMarginRatio": "0.25",
+        "cum": "675395.0"
+      }
+    },
+    {
+      "tier": 8.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "8",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "2175395.0"
       }
     }
   ],
@@ -20714,10 +22400,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 15.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "15",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -20730,10 +22416,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -20744,13 +22430,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 120000.0,
+      "maxNotional": 200000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "120000",
+        "initialLeverage": "10",
+        "notionalCap": "200000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -20759,33 +22445,33 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 120000.0,
-      "maxNotional": 300000.0,
+      "minNotional": 200000.0,
+      "maxNotional": 500000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "300000",
-        "notionalFloor": "120000",
+        "notionalCap": "500000",
+        "notionalFloor": "200000",
         "maintMarginRatio": "0.1",
-        "cum": "6650.0"
+        "cum": "10650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 300000.0,
+      "minNotional": 500000.0,
       "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
+        "initialLeverage": "4",
         "notionalCap": "1000000",
-        "notionalFloor": "300000",
+        "notionalFloor": "500000",
         "maintMarginRatio": "0.125",
-        "cum": "14150.0"
+        "cum": "23150.0"
       }
     },
     {
@@ -20793,15 +22479,31 @@
       "currency": "USDT",
       "minNotional": 1000000.0,
       "maxNotional": 3000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "3000000",
+        "notionalFloor": "1000000",
+        "maintMarginRatio": "0.25",
+        "cum": "148150.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 3000000.0,
+      "maxNotional": 5000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "3000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "5000000",
+        "notionalFloor": "3000000",
         "maintMarginRatio": "0.5",
-        "cum": "389150.0"
+        "cum": "898150.0"
       }
     }
   ],
@@ -20910,10 +22612,10 @@
       "minNotional": 0.0,
       "maxNotional": 5000.0,
       "maintenanceMarginRate": 0.02,
-      "maxLeverage": 20.0,
+      "maxLeverage": 25.0,
       "info": {
         "bracket": "1",
-        "initialLeverage": "20",
+        "initialLeverage": "25",
         "notionalCap": "5000",
         "notionalFloor": "0",
         "maintMarginRatio": "0.02",
@@ -20926,10 +22628,10 @@
       "minNotional": 5000.0,
       "maxNotional": 25000.0,
       "maintenanceMarginRate": 0.025,
-      "maxLeverage": 10.0,
+      "maxLeverage": 20.0,
       "info": {
         "bracket": "2",
-        "initialLeverage": "10",
+        "initialLeverage": "20",
         "notionalCap": "25000",
         "notionalFloor": "5000",
         "maintMarginRatio": "0.025",
@@ -20940,13 +22642,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
-      "maxLeverage": 8.0,
+      "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
-        "initialLeverage": "8",
-        "notionalCap": "100000",
+        "initialLeverage": "10",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "650.0"
@@ -20955,49 +22657,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5650.0"
+        "cum": "20650.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11900.0"
+        "cum": "45650.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 3000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295650.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "3000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386900.0"
+        "cum": "1795650.0"
       }
     }
   ],
@@ -21640,13 +23358,13 @@
       "tier": 3.0,
       "currency": "USDT",
       "minNotional": 25000.0,
-      "maxNotional": 100000.0,
+      "maxNotional": 400000.0,
       "maintenanceMarginRate": 0.05,
       "maxLeverage": 10.0,
       "info": {
         "bracket": "3",
         "initialLeverage": "10",
-        "notionalCap": "100000",
+        "notionalCap": "400000",
         "notionalFloor": "25000",
         "maintMarginRatio": "0.05",
         "cum": "700.0"
@@ -21655,49 +23373,65 @@
     {
       "tier": 4.0,
       "currency": "USDT",
-      "minNotional": 100000.0,
-      "maxNotional": 250000.0,
+      "minNotional": 400000.0,
+      "maxNotional": 1000000.0,
       "maintenanceMarginRate": 0.1,
       "maxLeverage": 5.0,
       "info": {
         "bracket": "4",
         "initialLeverage": "5",
-        "notionalCap": "250000",
-        "notionalFloor": "100000",
+        "notionalCap": "1000000",
+        "notionalFloor": "400000",
         "maintMarginRatio": "0.1",
-        "cum": "5700.0"
+        "cum": "20700.0"
       }
     },
     {
       "tier": 5.0,
       "currency": "USDT",
-      "minNotional": 250000.0,
-      "maxNotional": 1000000.0,
+      "minNotional": 1000000.0,
+      "maxNotional": 2000000.0,
       "maintenanceMarginRate": 0.125,
-      "maxLeverage": 2.0,
+      "maxLeverage": 4.0,
       "info": {
         "bracket": "5",
-        "initialLeverage": "2",
-        "notionalCap": "1000000",
-        "notionalFloor": "250000",
+        "initialLeverage": "4",
+        "notionalCap": "2000000",
+        "notionalFloor": "1000000",
         "maintMarginRatio": "0.125",
-        "cum": "11950.0"
+        "cum": "45700.0"
       }
     },
     {
       "tier": 6.0,
       "currency": "USDT",
-      "minNotional": 1000000.0,
-      "maxNotional": 5000000.0,
+      "minNotional": 2000000.0,
+      "maxNotional": 6000000.0,
+      "maintenanceMarginRate": 0.25,
+      "maxLeverage": 2.0,
+      "info": {
+        "bracket": "6",
+        "initialLeverage": "2",
+        "notionalCap": "6000000",
+        "notionalFloor": "2000000",
+        "maintMarginRatio": "0.25",
+        "cum": "295700.0"
+      }
+    },
+    {
+      "tier": 7.0,
+      "currency": "USDT",
+      "minNotional": 6000000.0,
+      "maxNotional": 10000000.0,
       "maintenanceMarginRate": 0.5,
       "maxLeverage": 1.0,
       "info": {
-        "bracket": "6",
+        "bracket": "7",
         "initialLeverage": "1",
-        "notionalCap": "5000000",
-        "notionalFloor": "1000000",
+        "notionalCap": "10000000",
+        "notionalFloor": "6000000",
         "maintMarginRatio": "0.5",
-        "cum": "386950.0"
+        "cum": "1795700.0"
       }
     }
   ],

From ad5afd30478a22d95818c678698fd175ff7a44a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 08:08:57 +0000
Subject: [PATCH 12/29] Bump uvicorn from 0.20.0 to 0.21.0

Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.20.0...0.21.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index f5a8f068c..868fc9699 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -36,7 +36,7 @@ sdnotify==0.3.2
 # API Server
 fastapi==0.94.0
 pydantic==1.10.6
-uvicorn==0.20.0
+uvicorn==0.21.0
 pyjwt==2.6.0
 aiofiles==23.1.0
 psutil==5.9.4

From f3a1177badd09e84c81e0f220b77c36082a656d8 Mon Sep 17 00:00:00 2001
From: initrv <ctumko@gmail.com>
Date: Mon, 13 Mar 2023 17:53:35 +0300
Subject: [PATCH 13/29] bring inc back

---
 freqtrade/freqai/RL/BaseEnvironment.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/freqtrade/freqai/RL/BaseEnvironment.py b/freqtrade/freqai/RL/BaseEnvironment.py
index a9a9a613c..7ac77361c 100644
--- a/freqtrade/freqai/RL/BaseEnvironment.py
+++ b/freqtrade/freqai/RL/BaseEnvironment.py
@@ -138,7 +138,7 @@ class BaseEnvironment(gym.Env):
         return [seed]
 
     def tensorboard_log(self, metric: str, value: Optional[Union[int, float]] = None,
-                        category: str = "custom"):
+                        inc: Optional[bool] = None, category: str = "custom"):
         """
         Function builds the tensorboard_metrics dictionary
         to be parsed by the TensorboardCallback. This
@@ -155,6 +155,7 @@ class BaseEnvironment(gym.Env):
 
         :param metric: metric to be tracked and incremented
         :param value: `metric` value
+        :param inc: (deprecated) sets whether the `value` is incremented or not
         :param category: `metric` category
         """
         increment = True if value is None else False

From d723979c4288c35f230734cf03d7c39fb20c539b Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 19:21:53 +0100
Subject: [PATCH 14/29] Move total_trades to explicit variable

---
 freqtrade/rpc/rpc.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py
index c68ed2d48..727fc5a37 100644
--- a/freqtrade/rpc/rpc.py
+++ b/freqtrade/rpc/rpc.py
@@ -388,12 +388,13 @@ class RPC:
                 Trade.close_date.desc())
 
         output = [trade.to_json() for trade in trades]
+        total_trades = Trade.get_trades([Trade.is_open.is_(False)]).count()
 
         return {
             "trades": output,
             "trades_count": len(output),
             "offset": offset,
-            "total_trades": Trade.get_trades([Trade.is_open.is_(False)]).count(),
+            "total_trades": total_trades,
         }
 
     def _rpc_stats(self) -> Dict[str, Any]:

From 3d31eca3653c7944eefa04d9284e578d1753498b Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 19:40:48 +0100
Subject: [PATCH 15/29] Update Exception to contain more info

part of #8300
---
 freqtrade/exchange/exchange.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py
index c0e07c6d7..24fc8daa1 100644
--- a/freqtrade/exchange/exchange.py
+++ b/freqtrade/exchange/exchange.py
@@ -1138,7 +1138,10 @@ class Exchange:
         # Ensure rate is less than stop price
         if bad_stop_price:
             raise OperationalException(
-                'In stoploss limit order, stop price should be more than limit price')
+                "In stoploss limit order, stop price should be more than limit price. "
+                f"Stop price: {stop_price}, Limit price: {limit_rate}, "
+                f"Limit Price pct: {limit_price_pct}"
+                )
         return limit_rate
 
     def _get_stop_params(self, side: BuySell, ordertype: str, stop_price: float) -> Dict:

From cf70deaf8d7faed50a8bfbf7c0ca0ff605db4979 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 19:41:39 +0100
Subject: [PATCH 16/29] Disallow negative liquidation prices

part of #8300
---
 freqtrade/exchange/exchange.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py
index 24fc8daa1..0e0c05cb1 100644
--- a/freqtrade/exchange/exchange.py
+++ b/freqtrade/exchange/exchange.py
@@ -2785,7 +2785,7 @@ class Exchange:
                 if is_short else
                 isolated_liq + buffer_amount
             )
-            return isolated_liq
+            return max(isolated_liq, 0.0)
         else:
             return None
 

From 8fd13933c30d53a02e04dfb88fca89b65bba6e78 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 19:50:19 +0100
Subject: [PATCH 17/29] Improve variable naming

---
 freqtrade/exchange/exchange.py | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py
index 0e0c05cb1..e2a36d3a3 100644
--- a/freqtrade/exchange/exchange.py
+++ b/freqtrade/exchange/exchange.py
@@ -2758,10 +2758,10 @@ class Exchange:
             raise OperationalException(
                 f"{self.name} does not support {self.margin_mode} {self.trading_mode}")
 
-        isolated_liq = None
+        liquidation_price = None
         if self._config['dry_run'] or not self.exchange_has("fetchPositions"):
 
-            isolated_liq = self.dry_run_liquidation_price(
+            liquidation_price = self.dry_run_liquidation_price(
                 pair=pair,
                 open_rate=open_rate,
                 is_short=is_short,
@@ -2776,16 +2776,16 @@ class Exchange:
             positions = self.fetch_positions(pair)
             if len(positions) > 0:
                 pos = positions[0]
-                isolated_liq = pos['liquidationPrice']
+                liquidation_price = pos['liquidationPrice']
 
-        if isolated_liq is not None:
-            buffer_amount = abs(open_rate - isolated_liq) * self.liquidation_buffer
-            isolated_liq = (
-                isolated_liq - buffer_amount
+        if liquidation_price is not None:
+            buffer_amount = abs(open_rate - liquidation_price) * self.liquidation_buffer
+            liquidation_price_buffer = (
+                liquidation_price - buffer_amount
                 if is_short else
-                isolated_liq + buffer_amount
+                liquidation_price + buffer_amount
             )
-            return max(isolated_liq, 0.0)
+            return max(liquidation_price_buffer, 0.0)
         else:
             return None
 

From 487469680f1d4120fe1d40cb9d870047425f0559 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 20:13:12 +0100
Subject: [PATCH 18/29] Use correct exception type for ccxt.InvalidOrder

---
 freqtrade/exchange/exchange.py  | 2 +-
 tests/exchange/test_exchange.py | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py
index e2a36d3a3..489dc1b68 100644
--- a/freqtrade/exchange/exchange.py
+++ b/freqtrade/exchange/exchange.py
@@ -1087,7 +1087,7 @@ class Exchange:
                 f'Tried to {side} amount {amount} at rate {rate}.'
                 f'Message: {e}') from e
         except ccxt.InvalidOrder as e:
-            raise ExchangeError(
+            raise InvalidOrderException(
                 f'Could not create {ordertype} {side} order on market {pair}. '
                 f'Tried to {side} amount {amount} at rate {rate}. '
                 f'Message: {e}') from e
diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py
index 940319a45..d7f6a8b90 100644
--- a/tests/exchange/test_exchange.py
+++ b/tests/exchange/test_exchange.py
@@ -12,8 +12,8 @@ from pandas import DataFrame
 
 from freqtrade.enums import CandleType, MarginMode, TradingMode
 from freqtrade.exceptions import (DDosProtection, DependencyException, ExchangeError,
-                                  InvalidOrderException, OperationalException, PricingError,
-                                  TemporaryError)
+                                  InsufficientFundsError, InvalidOrderException,
+                                  OperationalException, PricingError, TemporaryError)
 from freqtrade.exchange import (Binance, Bittrex, Exchange, Kraken, amount_to_precision,
                                 date_minus_candles, market_is_active, price_to_precision,
                                 timeframe_to_minutes, timeframe_to_msecs, timeframe_to_next_date,
@@ -1599,13 +1599,13 @@ def test_sell_prod(default_conf, mocker, exchange_name):
     assert api_mock.create_order.call_args[0][4] == 200
 
     # test exception handling
-    with pytest.raises(DependencyException):
+    with pytest.raises(InsufficientFundsError):
         api_mock.create_order = MagicMock(side_effect=ccxt.InsufficientFunds("0 balance"))
         exchange = get_patched_exchange(mocker, default_conf, api_mock, id=exchange_name)
         exchange.create_order(pair='ETH/BTC', ordertype=order_type, side="sell", amount=1, rate=200,
                               leverage=1.0)
 
-    with pytest.raises(DependencyException):
+    with pytest.raises(InvalidOrderException):
         api_mock.create_order = MagicMock(side_effect=ccxt.InvalidOrder("Order not found"))
         exchange = get_patched_exchange(mocker, default_conf, api_mock, id=exchange_name)
         exchange.create_order(pair='ETH/BTC', ordertype='limit', side="sell", amount=1, rate=200,

From b23cea6e59ae252dd39222544e739bc953e3ac3d Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 20:16:12 +0100
Subject: [PATCH 19/29] Bump ruff to 0.0.255

---
 .pre-commit-config.yaml | 2 +-
 requirements-dev.txt    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 2d1fb20fc..bc2e0bc0d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -30,7 +30,7 @@ repos:
 
   - repo: https://github.com/charliermarsh/ruff-pre-commit
     # Ruff version.
-    rev: 'v0.0.251'
+    rev: 'v0.0.255'
     hooks:
       - id: ruff
 
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 44c1a69fc..6d076777f 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -7,7 +7,7 @@
 -r docs/requirements-docs.txt
 
 coveralls==3.3.1
-ruff==0.0.254
+ruff==0.0.255
 mypy==1.1.1
 pre-commit==3.1.1
 pytest==7.2.2

From 5c280d5649b431b8ff366c14acca8db6d7b45c32 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Mon, 13 Mar 2023 20:28:13 +0100
Subject: [PATCH 20/29] Improve emergency_exit handling

---
 freqtrade/freqtradebot.py  | 20 +++++++++++---------
 tests/test_freqtradebot.py |  6 +++---
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py
index 3924b111f..ec61f45b1 100644
--- a/freqtrade/freqtradebot.py
+++ b/freqtrade/freqtradebot.py
@@ -1122,8 +1122,7 @@ class FreqtradeBot(LoggingMixin):
             trade.stoploss_order_id = None
             logger.error(f'Unable to place a stoploss order on exchange. {e}')
             logger.warning('Exiting the trade forcefully')
-            self.execute_trade_exit(trade, stop_price, exit_check=ExitCheckTuple(
-                exit_type=ExitType.EMERGENCY_EXIT))
+            self.emergency_exit(trade, stop_price)
 
         except ExchangeError:
             trade.stoploss_order_id = None
@@ -1281,13 +1280,16 @@ class FreqtradeBot(LoggingMixin):
             if canceled and max_timeouts > 0 and canceled_count >= max_timeouts:
                 logger.warning(f'Emergency exiting trade {trade}, as the exit order '
                                f'timed out {max_timeouts} times.')
-                try:
-                    self.execute_trade_exit(
-                        trade, order['price'],
-                        exit_check=ExitCheckTuple(exit_type=ExitType.EMERGENCY_EXIT))
-                except DependencyException as exception:
-                    logger.warning(
-                        f'Unable to emergency sell trade {trade.pair}: {exception}')
+                self.emergency_exit(trade, order['price'])
+
+    def emergency_exit(self, trade: Trade, price: float) -> None:
+        try:
+            self.execute_trade_exit(
+                trade, price,
+                exit_check=ExitCheckTuple(exit_type=ExitType.EMERGENCY_EXIT))
+        except DependencyException as exception:
+            logger.warning(
+                f'Unable to emergency exit trade {trade.pair}: {exception}')
 
     def replace_order(self, order: Dict, order_obj: Optional[Order], trade: Trade) -> None:
         """
diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py
index 06832589c..349655243 100644
--- a/tests/test_freqtradebot.py
+++ b/tests/test_freqtradebot.py
@@ -2724,21 +2724,21 @@ def test_manage_open_orders_exit_usercustom(
     assert freqtrade.strategy.check_exit_timeout.call_count == 1
     assert freqtrade.strategy.check_entry_timeout.call_count == 0
 
-    # 2nd canceled trade - Fail execute sell
+    # 2nd canceled trade - Fail execute exit
     caplog.clear()
     open_trade_usdt.open_order_id = limit_sell_order_old['id']
     mocker.patch('freqtrade.persistence.Trade.get_exit_order_count', return_value=1)
     mocker.patch('freqtrade.freqtradebot.FreqtradeBot.execute_trade_exit',
                  side_effect=DependencyException)
     freqtrade.manage_open_orders()
-    assert log_has_re('Unable to emergency sell .*', caplog)
+    assert log_has_re('Unable to emergency exit .*', caplog)
 
     et_mock = mocker.patch('freqtrade.freqtradebot.FreqtradeBot.execute_trade_exit')
     caplog.clear()
     # 2nd canceled trade ...
     open_trade_usdt.open_order_id = limit_sell_order_old['id']
 
-    # If cancelling fails - no emergency sell!
+    # If cancelling fails - no emergency exit!
     with patch('freqtrade.freqtradebot.FreqtradeBot.handle_cancel_exit', return_value=False):
         freqtrade.manage_open_orders()
         assert et_mock.call_count == 0

From 8f29312c9e6f6637628965c28dcb9409f562c29e Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Tue, 14 Mar 2023 08:14:01 +0100
Subject: [PATCH 21/29] Minimum re-entry stake should not include stoploss

---
 freqtrade/freqtradebot.py         | 14 +++++++++++---
 freqtrade/optimize/backtesting.py |  2 +-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py
index ec61f45b1..dfac11347 100644
--- a/freqtrade/freqtradebot.py
+++ b/freqtrade/freqtradebot.py
@@ -586,7 +586,7 @@ class FreqtradeBot(LoggingMixin):
 
         min_entry_stake = self.exchange.get_min_pair_stake_amount(trade.pair,
                                                                   current_entry_rate,
-                                                                  self.strategy.stoploss)
+                                                                  0.0)
         min_exit_stake = self.exchange.get_min_pair_stake_amount(trade.pair,
                                                                  current_exit_rate,
                                                                  self.strategy.stoploss)
@@ -700,7 +700,8 @@ class FreqtradeBot(LoggingMixin):
         pos_adjust = trade is not None
 
         enter_limit_requested, stake_amount, leverage = self.get_valid_enter_price_and_stake(
-            pair, price, stake_amount, trade_side, enter_tag, trade, order_adjust, leverage_)
+            pair, price, stake_amount, trade_side, enter_tag, trade, order_adjust, leverage_,
+            pos_adjust)
 
         if not stake_amount:
             return False
@@ -860,7 +861,12 @@ class FreqtradeBot(LoggingMixin):
         trade: Optional[Trade],
         order_adjust: bool,
         leverage_: Optional[float],
+        pos_adjust: bool,
     ) -> Tuple[float, float, float]:
+        """
+        Validate and eventually adjust (within limits) limit, amount and leverage
+        :return: Tuple with (price, amount, leverage)
+        """
 
         if price:
             enter_limit_requested = price
@@ -906,7 +912,9 @@ class FreqtradeBot(LoggingMixin):
         # We do however also need min-stake to determine leverage, therefore this is ignored as
         # edge-case for now.
         min_stake_amount = self.exchange.get_min_pair_stake_amount(
-            pair, enter_limit_requested, self.strategy.stoploss, leverage)
+            pair, enter_limit_requested,
+            self.strategy.stoploss if not pos_adjust else 0.0,
+            leverage)
         max_stake_amount = self.exchange.get_max_pair_stake_amount(
             pair, enter_limit_requested, leverage)
 
diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py
index 83b65d24b..5e1e9b48a 100644
--- a/freqtrade/optimize/backtesting.py
+++ b/freqtrade/optimize/backtesting.py
@@ -749,7 +749,7 @@ class Backtesting:
             leverage = min(max(leverage, 1.0), max_leverage)
 
         min_stake_amount = self.exchange.get_min_pair_stake_amount(
-            pair, propose_rate, -0.05, leverage=leverage) or 0
+            pair, propose_rate, -0.05 if not pos_adjust else 0.0, leverage=leverage) or 0
         max_stake_amount = self.exchange.get_max_pair_stake_amount(
             pair, propose_rate, leverage=leverage)
         stake_available = self.wallets.get_available_stake_amount()

From 7e08e3a59a964801f02f083d71a76b17e3a6dcc6 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Wed, 15 Mar 2023 07:22:07 +0100
Subject: [PATCH 22/29] Update example to use get_trades_proxy

---
 docs/strategy-customization.md | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/docs/strategy-customization.md b/docs/strategy-customization.md
index 8ab0b1464..8b6654c6c 100644
--- a/docs/strategy-customization.md
+++ b/docs/strategy-customization.md
@@ -1040,11 +1040,10 @@ from datetime import timedelta, datetime, timezone
 
 # Within populate indicators (or populate_buy):
 if self.config['runmode'].value in ('live', 'dry_run'):
-   # fetch closed trades for the last 2 days
-    trades = Trade.get_trades([Trade.pair == metadata['pair'],
-                               Trade.open_date > datetime.utcnow() - timedelta(days=2),
-                               Trade.is_open.is_(False),
-                ]).all()
+    # fetch closed trades for the last 2 days
+    trades = Trade.get_trades_proxy(
+        pair=metadata['pair'], is_open=False, 
+        open_date=datetime.now(timezone.utc) - timedelta(days=2))
     # Analyze the conditions you'd like to lock the pair .... will probably be different for every strategy
     sumprofit = sum(trade.close_profit for trade in trades)
     if sumprofit < 0:

From 95ff59a21c910d13f463ab6c3fe57bff0eb08695 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Wed, 15 Mar 2023 07:23:54 +0100
Subject: [PATCH 23/29] Improve documentation for get_trades_proxy

---
 freqtrade/persistence/trade_model.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py
index 8e8a414c8..19d71aa7b 100644
--- a/freqtrade/persistence/trade_model.py
+++ b/freqtrade/persistence/trade_model.py
@@ -1088,6 +1088,11 @@ class LocalTrade():
         In live mode, converts the filter to a database query and returns all rows
         In Backtest mode, uses filters on Trade.trades to get the result.
 
+        :param pair: Filter by pair
+        :param is_open: Filter by open/closed status
+        :param open_date: Filter by open_date (filters via trade.open_date > input)
+        :param close_date: Filter by close_date (filters via trade.close_date > input)
+                           Will implicitly only return closed trades.
         :return: unsorted List[Trade]
         """
 

From e3e4fbd5ba397558bdd90f985759583e71026f61 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Thu, 16 Mar 2023 19:24:37 +0100
Subject: [PATCH 24/29] Minor test fix

---
 tests/rpc/test_rpc_telegram.py | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py
index 1dc255b3e..59b6df489 100644
--- a/tests/rpc/test_rpc_telegram.py
+++ b/tests/rpc/test_rpc_telegram.py
@@ -302,8 +302,7 @@ def test_telegram_status_closed_trade(default_conf, update, mocker, fee) -> None
     telegram, _, msg_mock = get_telegram_testobject(mocker, default_conf)
 
     create_mock_trades(fee)
-    trades = Trade.get_trades([Trade.is_open.is_(False)])
-    trade = trades[0]
+    trade = Trade.get_trades([Trade.is_open.is_(False)]).first()
     context = MagicMock()
     context.args = [str(trade.id)]
     telegram._status(update=update, context=context)

From 774eacc561915ff5fdb78d1552089158766a13eb Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Tue, 14 Mar 2023 20:27:14 +0100
Subject: [PATCH 25/29] Attempt push to ghcr.io

---
 .github/workflows/ci.yml              | 14 +++++++++++---
 build_helpers/publish_docker_arm64.sh | 14 ++++++++++++++
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7e0483c3d..a1fa487a5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,8 @@ on:
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
-
+permissions:
+  repository-projects: read
 jobs:
   build_linux:
 
@@ -321,7 +322,6 @@ jobs:
   build_linux_online:
     # Run pytest with "live" checks
     runs-on: ubuntu-22.04
-    # permissions:
     steps:
     - uses: actions/checkout@v3
 
@@ -472,6 +472,8 @@ jobs:
         build_helpers/publish_docker_multi.sh
 
   deploy_arm:
+    permissions:
+      packages: write
     needs: [ deploy ]
     # Only run on 64bit machines
     runs-on: [self-hosted, linux, ARM64]
@@ -492,9 +494,15 @@ jobs:
       run: |
         echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
 
+    - name: GHCR.io login
+      env:
+        GHCR_USERNAME: ${{ github.actor }}
+        GHCR_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        echo "${GHCR_PASSWORD}" | docker login ghcr.io --username ${GHCR_USERNAME} --password-stdin
+
     - name: Build and test and push docker images
       env:
-        IMAGE_NAME: freqtradeorg/freqtrade
         BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
       run: |
         build_helpers/publish_docker_arm64.sh
diff --git a/build_helpers/publish_docker_arm64.sh b/build_helpers/publish_docker_arm64.sh
index f3cedff2e..c362ee825 100755
--- a/build_helpers/publish_docker_arm64.sh
+++ b/build_helpers/publish_docker_arm64.sh
@@ -3,6 +3,8 @@
 # Use BuildKit, otherwise building on ARM fails
 export DOCKER_BUILDKIT=1
 
+IMAGE_NAME=freqtradeorg/freqtrade
+GHCR_IMAGE_NAME=ghcr.io/freqtrade/freqtrade
 # Replace / with _ to create a valid tag
 TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
 TAG_PLOT=${TAG}_plot
@@ -82,6 +84,18 @@ docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI}
 docker manifest create ${IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
 docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
 
+# Retag images for GHCR
+docker tag ${IMAGE_NAME}:${TAG} ${GHCR_IMAGE_NAME}:${TAG}
+docker tag ${IMAGE_NAME}:${TAG_PLOT} ${GHCR_IMAGE_NAME}:${TAG_PLOT}
+docker tag ${IMAGE_NAME}:${TAG_FREQAI} ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
+docker tag ${IMAGE_NAME}:${TAG_FREQAI_RL} ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
+
+# Push GHCR iamges
+docker push ${GHCR_IMAGE_NAME}:${TAG}
+docker push ${GHCR_IMAGE_NAME}:${TAG_PLOT}
+docker push ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
+docker push ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
+
 # Tag as latest for develop builds
 if [ "${TAG}" = "develop" ]; then
     echo 'Tagging image as latest'

From db0f449d93d5b79b0b3d5230f8a56ba145d19256 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Wed, 15 Mar 2023 06:46:31 +0100
Subject: [PATCH 26/29] Use docker manifest for GHCR builds

---
 build_helpers/publish_docker_arm64.sh | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/build_helpers/publish_docker_arm64.sh b/build_helpers/publish_docker_arm64.sh
index c362ee825..e29cd695d 100755
--- a/build_helpers/publish_docker_arm64.sh
+++ b/build_helpers/publish_docker_arm64.sh
@@ -84,23 +84,27 @@ docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI}
 docker manifest create ${IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
 docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
 
-# Retag images for GHCR
-docker tag ${IMAGE_NAME}:${TAG} ${GHCR_IMAGE_NAME}:${TAG}
-docker tag ${IMAGE_NAME}:${TAG_PLOT} ${GHCR_IMAGE_NAME}:${TAG_PLOT}
-docker tag ${IMAGE_NAME}:${TAG_FREQAI} ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
-docker tag ${IMAGE_NAME}:${TAG_FREQAI_RL} ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
+# Recreate multiarch images for GHCR
+docker manifest create ${GHCR_IMAGE_NAME}:${TAG} ${CACHE_IMAGE}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI}
+docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG}
 
-# Push GHCR iamges
-docker push ${GHCR_IMAGE_NAME}:${TAG}
-docker push ${GHCR_IMAGE_NAME}:${TAG_PLOT}
-docker push ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
-docker push ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
+docker manifest create ${GHCR_IMAGE_NAME}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM}
+docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_PLOT}
+
+docker manifest create ${GHCR_IMAGE_NAME}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM}
+docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
+
+docker manifest create ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
+docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
 
 # Tag as latest for develop builds
 if [ "${TAG}" = "develop" ]; then
     echo 'Tagging image as latest'
     docker manifest create ${IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
     docker manifest push -p ${IMAGE_NAME}:latest
+
+    docker manifest create ${GHCR_IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
+    docker manifest push -p ${GHCR_IMAGE_NAME}:latest
 fi
 
 docker images

From 0d3de0701256b351d66b53a4001b2fae4d69ab7f Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Wed, 15 Mar 2023 19:06:08 +0100
Subject: [PATCH 27/29] use Crane to move images around

---
 .github/workflows/ci.yml              | 15 ++++++++-------
 build_helpers/publish_docker_arm64.sh | 27 ++++++++++++---------------
 build_helpers/publish_docker_multi.sh |  3 ++-
 3 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a1fa487a5..f09e5feac 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -466,7 +466,6 @@ jobs:
 
     - name: Build and test and push docker images
       env:
-        IMAGE_NAME: freqtradeorg/freqtrade
         BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
       run: |
         build_helpers/publish_docker_multi.sh
@@ -494,16 +493,18 @@ jobs:
       run: |
         echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
 
-    - name: GHCR.io login
-      env:
-        GHCR_USERNAME: ${{ github.actor }}
-        GHCR_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
-      run: |
-        echo "${GHCR_PASSWORD}" | docker login ghcr.io --username ${GHCR_USERNAME} --password-stdin
+    # - name: GHCR.io login
+    #   env:
+    #     GHCR_USERNAME: ${{ github.actor }}
+    #     GHCR_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
+    #   run: |
+        # echo "${GHCR_PASSWORD}" | docker login ghcr.io --username ${GHCR_USERNAME} --password-stdin
 
     - name: Build and test and push docker images
       env:
         BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
+        GHCR_USERNAME: ${{ github.actor }}
+        GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       run: |
         build_helpers/publish_docker_arm64.sh
 
diff --git a/build_helpers/publish_docker_arm64.sh b/build_helpers/publish_docker_arm64.sh
index e29cd695d..3de113d37 100755
--- a/build_helpers/publish_docker_arm64.sh
+++ b/build_helpers/publish_docker_arm64.sh
@@ -4,7 +4,9 @@
 export DOCKER_BUILDKIT=1
 
 IMAGE_NAME=freqtradeorg/freqtrade
+CACHE_IMAGE=freqtradeorg/freqtrade_cache
 GHCR_IMAGE_NAME=ghcr.io/freqtrade/freqtrade
+
 # Replace / with _ to create a valid tag
 TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
 TAG_PLOT=${TAG}_plot
@@ -16,7 +18,6 @@ TAG_ARM=${TAG}_arm
 TAG_PLOT_ARM=${TAG_PLOT}_arm
 TAG_FREQAI_ARM=${TAG_FREQAI}_arm
 TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL}_arm
-CACHE_IMAGE=freqtradeorg/freqtrade_cache
 
 echo "Running for ${TAG}"
 
@@ -40,13 +41,13 @@ if [ $? -ne 0 ]; then
     echo "failed building multiarch images"
     return 1
 fi
-# Tag image for upload and next build step
-docker tag freqtrade:$TAG_ARM ${CACHE_IMAGE}:$TAG_ARM
 
 docker build --cache-from freqtrade:${TAG_ARM} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
 docker build --cache-from freqtrade:${TAG_ARM} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
 docker build --cache-from freqtrade:${TAG_ARM} --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_FREQAI_RL_ARM} -f docker/Dockerfile.freqai_rl .
 
+# Tag image for upload and next build step
+docker tag freqtrade:$TAG_ARM ${CACHE_IMAGE}:$TAG_ARM
 docker tag freqtrade:$TAG_PLOT_ARM ${CACHE_IMAGE}:$TAG_PLOT_ARM
 docker tag freqtrade:$TAG_FREQAI_ARM ${CACHE_IMAGE}:$TAG_FREQAI_ARM
 docker tag freqtrade:$TAG_FREQAI_RL_ARM ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
@@ -61,7 +62,6 @@ fi
 
 docker images
 
-# docker push ${IMAGE_NAME}
 docker push ${CACHE_IMAGE}:$TAG_PLOT_ARM
 docker push ${CACHE_IMAGE}:$TAG_FREQAI_ARM
 docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
@@ -84,18 +84,16 @@ docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI}
 docker manifest create ${IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
 docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
 
-# Recreate multiarch images for GHCR
-docker manifest create ${GHCR_IMAGE_NAME}:${TAG} ${CACHE_IMAGE}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI}
-docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG}
+# copy images to ghcr.io
 
-docker manifest create ${GHCR_IMAGE_NAME}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM}
-docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_PLOT}
+alias crane="docker run --rm -v $(pwd)/crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
 
-docker manifest create ${GHCR_IMAGE_NAME}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM}
-docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
+echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u ${GHCR_USER} --password-stdin
 
-docker manifest create ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
-docker manifest push -p ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
+crane copy ${IMAGE_NAME}:${TAG} ${GHCR_IMAGE_NAME}:${TAG}
+crane copy ${IMAGE_NAME}:${TAG_PLOT} ${GHCR_IMAGE_NAME}:${TAG_PLOT}
+crane copy ${IMAGE_NAME}:${TAG_FREQAI} ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
+crane copy ${IMAGE_NAME}:${TAG_FREQAI_RL} ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
 
 # Tag as latest for develop builds
 if [ "${TAG}" = "develop" ]; then
@@ -103,8 +101,7 @@ if [ "${TAG}" = "develop" ]; then
     docker manifest create ${IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
     docker manifest push -p ${IMAGE_NAME}:latest
 
-    docker manifest create ${GHCR_IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
-    docker manifest push -p ${GHCR_IMAGE_NAME}:latest
+    crane copy ${IMAGE_NAME}:latest ${GHCR_IMAGE_NAME}:latest
 fi
 
 docker images
diff --git a/build_helpers/publish_docker_multi.sh b/build_helpers/publish_docker_multi.sh
index 3e5e61564..27fa06b95 100755
--- a/build_helpers/publish_docker_multi.sh
+++ b/build_helpers/publish_docker_multi.sh
@@ -2,6 +2,8 @@
 
 # The below assumes a correctly setup docker buildx environment
 
+IMAGE_NAME=freqtradeorg/freqtrade
+CACHE_IMAGE=freqtradeorg/freqtrade_cache
 # Replace / with _ to create a valid tag
 TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
 TAG_PLOT=${TAG}_plot
@@ -11,7 +13,6 @@ TAG_PI="${TAG}_pi"
 
 PI_PLATFORM="linux/arm/v7"
 echo "Running for ${TAG}"
-CACHE_IMAGE=freqtradeorg/freqtrade_cache
 CACHE_TAG=${CACHE_IMAGE}:${TAG_PI}_cache
 
 # Add commit and commit_message to docker container

From 628f6b8b7cdc4c73d89d3aec678366f021761cb4 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Wed, 15 Mar 2023 20:41:08 +0100
Subject: [PATCH 28/29] Fix crane docker permissions

---
 .github/workflows/ci.yml              | 7 -------
 build_helpers/publish_docker_arm64.sh | 7 +++++--
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f09e5feac..663cfb1be 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -493,13 +493,6 @@ jobs:
       run: |
         echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
 
-    # - name: GHCR.io login
-    #   env:
-    #     GHCR_USERNAME: ${{ github.actor }}
-    #     GHCR_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
-    #   run: |
-        # echo "${GHCR_PASSWORD}" | docker login ghcr.io --username ${GHCR_USERNAME} --password-stdin
-
     - name: Build and test and push docker images
       env:
         BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
diff --git a/build_helpers/publish_docker_arm64.sh b/build_helpers/publish_docker_arm64.sh
index 3de113d37..ce0fab6ec 100755
--- a/build_helpers/publish_docker_arm64.sh
+++ b/build_helpers/publish_docker_arm64.sh
@@ -86,9 +86,11 @@ docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
 
 # copy images to ghcr.io
 
-alias crane="docker run --rm -v $(pwd)/crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
+alias crane="docker run --rm --i -v $(pwd)/.crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
+mkdir .crane
+chmod a+rwx .crane
 
-echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u ${GHCR_USER} --password-stdin
+echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u "${GHCR_USERNAME}" --password-stdin
 
 crane copy ${IMAGE_NAME}:${TAG} ${GHCR_IMAGE_NAME}:${TAG}
 crane copy ${IMAGE_NAME}:${TAG_PLOT} ${GHCR_IMAGE_NAME}:${TAG_PLOT}
@@ -105,6 +107,7 @@ if [ "${TAG}" = "develop" ]; then
 fi
 
 docker images
+rm -rf .crane
 
 # Cleanup old images from arm64 node.
 docker image prune -a --force --filter "until=24h"

From 764d5507a3914d5f109ffd98c3c21fb6e6449aa5 Mon Sep 17 00:00:00 2001
From: Matthias <xmatthias@outlook.com>
Date: Thu, 16 Mar 2023 19:33:56 +0100
Subject: [PATCH 29/29] Fix typo in docker param

---
 build_helpers/publish_docker_arm64.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build_helpers/publish_docker_arm64.sh b/build_helpers/publish_docker_arm64.sh
index ce0fab6ec..696f5bc48 100755
--- a/build_helpers/publish_docker_arm64.sh
+++ b/build_helpers/publish_docker_arm64.sh
@@ -86,7 +86,7 @@ docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
 
 # copy images to ghcr.io
 
-alias crane="docker run --rm --i -v $(pwd)/.crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
+alias crane="docker run --rm -i -v $(pwd)/.crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
 mkdir .crane
 chmod a+rwx .crane