def METHOD_NAME(key: str, query: str, limit: int) -> pd.DataFrame:
    # pylint: disable=C0415
    from openbb_terminal.cryptocurrency.cryptocurrency_helpers import load_binance_map
    from openbb_terminal.cryptocurrency.discovery.pycoingecko_model import get_coin_list
    # TODO: Fix it in future. Determine if user looks for symbol like ETH or ethereum
    if len(query) > 5:
        key = "id"
    coins_df_gecko = get_coin_list()
    coins_df_bin = load_binance_map()
    coins = pd.merge(coins_df_bin, coins_df_gecko[["id", "name"]], how="left", on="id")
    coins_list = coins[key].to_list()
    sim = difflib.get_close_matches(query, coins_list, limit)
    df = pd.Series(sim).to_frame().reset_index()
    df.columns = ["index", key]
    df = df.merge(coins, on=key)
    return df