{"record":{"id":"3860441cee561963","repo":"freqtrade/freqtrade","slug":"stake-currency-is-not-available-as-stake-on-sel","errorCode":null,"errorMessage":"{stake_currency} is not available as stake on {self.name}. Available currencies are: {', '.join(quote_currencies)}","messagePattern":"(.+?) is not available as stake on (.+?)\\. Available currencies are: (.+?)","errorType":"validation","errorClass":"ConfigurationError","httpStatus":null,"severity":"error","filePath":"freqtrade/exchange/exchange.py","lineNumber":760,"sourceCode":"        except (ccxt.BaseError, TemporaryError):\n            logger.exception(\"Could not load markets.\")\n\n    def validate_stakecurrency(self, stake_currency: str) -> None:\n        \"\"\"\n        Checks stake-currency against available currencies on the exchange.\n        Only runs on startup. If markets have not been loaded, there's been a problem with\n        the connection to the exchange.\n        :param stake_currency: Stake-currency to validate\n        :raise: OperationalException if stake-currency is not available.\n        \"\"\"\n        if not self._markets:\n            raise OperationalException(\n                \"Could not load markets, therefore cannot start. \"\n                \"Please investigate the above error for more details.\"\n            )\n        quote_currencies = self.get_quote_currencies()\n        if stake_currency not in quote_currencies:\n            raise ConfigurationError(\n                f\"{stake_currency} is not available as stake on {self.name}. \"\n                f\"Available currencies are: {', '.join(quote_currencies)}\"\n            )\n\n    def get_valid_pair_combination(self, curr_1: str, curr_2: str) -> Generator[str, None, None]:\n        \"\"\"\n        Get valid pair combination of curr_1 and curr_2 by trying both combinations.\n        \"\"\"\n        yielded = False\n        for pair in (\n            f\"{curr_1}/{curr_2}\",\n            f\"{curr_2}/{curr_1}\",\n            f\"{curr_1}/{curr_2}:{curr_2}\",\n            f\"{curr_2}/{curr_1}:{curr_1}\",\n        ):\n            if pair in self.markets and self.markets[pair].get(\"active\"):\n                yielded = True\n                yield pair","sourceCodeStart":742,"sourceCodeEnd":778,"githubUrl":"https://github.com/freqtrade/freqtrade/blob/1c8edfe4d1e8d11bd4b40e8fc3237c26c3a60e15/freqtrade/exchange/exchange.py#L742-L778","documentation":"Markets loaded fine, but the configured stake_currency does not appear as a quote currency on the exchange. ConfigurationError (subclass of OperationalException) raised at startup during stake-currency validation - purely a config/validation issue, not transient.","triggerScenarios":"stake_currency typo ('USDT ' with whitespace, 'USD' vs 'USDC'/'FDUSD'); a stake currency the exchange does not quote; switching exchanges while keeping the old stake_currency.","commonSituations":"New users guessing stake currencies; copying configs between exchanges; regional exchanges with limited quote currencies.","solutions":["Pick a stake currency from the list printed in the error message - it enumerates every quote currency the exchange actually offers.","Fix typos/case: stake_currency must match the quote exactly (usually uppercase, e.g. USDT).","If a different market type was intended, also fix the pair format (BTC/USDT:USDT for futures).","Run `freqtrade list-pairs --exchange <name> --all` to see valid quote currencies."],"exampleFix":"# config.json - before\n\"stake_currency\": \"USDC\"\n\n# after (a currency the exchange actually quotes)\n\"stake_currency\": \"USDT\"","handlingStrategy":"validation","validationCode":"# before starting the bot\nquotes = {m['quote'] for m in exchange.markets.values() if m.get('active', True)}\nassert config['stake_currency'] in quotes, (\n    f\"stake_currency must be one of {sorted(quotes)}\")","typeGuard":"def stake_currency_valid(exchange, stake_currency: str) -> bool:\n    quotes = {m.get('quote') for m in exchange.markets.values()}\n    return stake_currency in quotes","tryCatchPattern":null,"preventionTips":["Copy stake_currency from the error's available list - it is authoritative.","Re-validate stake currency whenever switching exchanges.","Keep pair_whitelist consistent with stake_currency (quote side must match)."],"tags":["configuration","stake-currency","startup"],"backgroundTag":null,"analyzedSha":"1c8edfe4d1e8d11bd4b40e8fc3237c26c3a60e15","analyzedAt":"2026-08-15T05:09:08.096Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}