diff --git a/ccxt/async/exchange.py b/ccxt/async/exchange.py
index <HASH>..<HASH> 100644
--- a/ccxt/async/exchange.py
+++ b/ccxt/async/exchange.py
@@ -81,7 +81,7 @@ class Exchange(BaseExchange):
             # if self.verbose:
             #     print('Waiting for tokens: Exchange: {0}'.format(self.id))
             self.add_new_tokens()
-            seconds_delays = [0.01, 0.1, 0.7, 1, 1.5, 2]
+            seconds_delays = [0.001, 0.005, 0.022, 0.106, 0.5]
             delay = random.choice(seconds_delays)
             await asyncio.sleep(delay)
         self.rateLimitTokens -= 1
diff --git a/ccxt/async/exchanges.py b/ccxt/async/exchanges.py
index <HASH>..<HASH> 100644
--- a/ccxt/async/exchanges.py
+++ b/ccxt/async/exchanges.py
@@ -14675,6 +14675,8 @@ class kraken (Exchange):
             'hasFetchClosedOrders': True,
             'hasFetchMyTrades': True,
             'hasWithdraw': True,
+            'rateLimitTokens': 8,
+            'rateLimitMaxTokens': 8,
             'marketsByAltname': {},
             'timeframes': {
                 '1m': '1',
Implemented fixes for issues raised on Pull Request #<I>, proper exponential backoff random selection times (in seconds) and lowering Krakens starting tokens, to avoid being rate limited on Kraken