> For the complete documentation index, see [llms.txt](https://low-caps-hub.gitbook.io/lowcapshubterminal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://low-caps-hub.gitbook.io/lowcapshubterminal/terminal-section/selecting-of-top-250.md).

# Selecting of TOP 250

The initial window of the Terminal section in the program includes list of 250 Solana tokens according to market cap. The data which is collected:

* Project (full name + ticker)
* CA (with copy option)
* Market cap
* Current price
* Price change (24h)
* Volume
* Circulating supply (+ percent how much of total supply it is)
* Total supply
* ATH
* ATL
* Rank according to market cap

<figure><img src="https://3670432737-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwJuUkk9Y24vVhd9jDCn1%2Fuploads%2FdRiQLKOXAJnwakwQ9mn6%2FXXX.png?alt=media&amp;token=11057673-d134-4331-8749-0c43a8bd3058" alt=""><figcaption></figcaption></figure>

```python
def display_project_info(self, selected_project):
        if hasattr(self, 'project_info_frame'):
            self.project_info_frame.destroy()

        self.project_info_frame = customtkinter.CTkFrame(self.main_content_frame)
        self.project_info_frame.grid(row=3, column=0, padx=20, pady=20, sticky="nsew")
        self.project_info_frame.grid_columnconfigure(0, weight=1)

        coin_id = selected_project['id']
        coin_data = self.coin_data_cache.get(coin_id, {})

        contract_address = selected_project.get('contract_address', 'N/A')

        market_cap = selected_project.get('market_cap', 'N/A')
        current_price = selected_project.get('current_price', 'N/A')
        price_change_percentage_24h = selected_project.get('price_change_percentage_24h', 'N/A')
        total_volume = selected_project.get('total_volume', 'N/A')
        circulating_supply = selected_project.get('circulating_supply', 'N/A')
        total_supply = selected_project.get('total_supply', 'N/A')
        ath = selected_project.get('ath', 'N/A')
        atl = selected_project.get('atl', 'N/A')
        market_cap_rank = selected_project.get('market_cap_rank', 'N/A')

        supply_percentage = (circulating_supply / total_supply * 100) if isinstance(circulating_supply, (int, float)) and isinstance(total_supply, (int, float)) and total_supply != 0 else 0

        info_frame = customtkinter.CTkFrame(self.project_info_frame, fg_color="transparent")
        info_frame.grid(row=0, column=0, padx=20, pady=10, sticky="nsew")
        info_frame.grid_columnconfigure(0, weight=1)
        info_frame.grid_columnconfigure(1, weight=2)

        labels = [
            ("Project:", f"{selected_project.get('name', 'N/A')} ({selected_project.get('symbol', 'N/A').upper()})"),
            ("Contract Address:", contract_address),
            ("Market Cap:", f"${format_number(market_cap)}" if isinstance(market_cap, (int, float)) else "N/A"),
            ("Current Price:", f"${format_number(current_price, 2)}" if isinstance(current_price, (int, float)) else "N/A"),
            ("24h Change:", f"{format_number(price_change_percentage_24h)}%" if isinstance(price_change_percentage_24h, (int, float)) else "N/A"),
            ("Total Volume:", f"${format_number(total_volume)}" if isinstance(total_volume, (int, float)) else "N/A"),
            ("Circulating Supply:", f"{format_number(circulating_supply)} ({format_number(supply_percentage)}% of Total Supply)" if isinstance(circulating_supply, (int, float)) else "N/A"),
            ("Total Supply:", f"{format_number(total_supply)}" if isinstance(total_supply, (int, float)) else "N/A"),
            ("ATH:", f"${format_number(ath, 2)}" if isinstance(ath, (int, float)) else "N/A"),
            ("ATL:", f"${format_number(atl, 2)}" if isinstance(atl, (int, float)) else "N/A"),
            ("Market Cap Rank:", market_cap_rank if isinstance(market_cap_rank, int) else "N/A")
        ]

        for idx, (label_text, value_text) in enumerate(labels):
            label = customtkinter.CTkLabel(info_frame, text=label_text, anchor="w", font=customtkinter.CTkFont(weight="bold"))
            label.grid(row=idx, column=0, padx=5, pady=2, sticky="w")
            value = customtkinter.CTkLabel(info_frame, text=value_text, anchor="w")
            value.grid(row=idx, column=1, padx=5, pady=2, sticky="w")
            if label_text == "Contract Address:":
                copy_button = customtkinter.CTkButton(info_frame, text="Copy", width=60, command=lambda ca=contract_address: self.copy_to_clipboard(ca))
                copy_button.grid(row=idx, column=2, padx=5, pady=2, sticky="w")

        buttons_frame = customtkinter.CTkFrame(self.project_info_frame)
        buttons_frame.grid(row=1, column=0, padx=20, pady=10, sticky="w")

        coingecko_button = customtkinter.CTkButton(buttons_frame, text="Show on CoinGecko", command=lambda: self.open_coingecko(coin_id))
        coingecko_button.grid(row=0, column=0, padx=10, pady=10)

        if contract_address != 'N/A':
            swap_button = customtkinter.CTkButton(buttons_frame, text="Swap via Jupiter", command=lambda: self.open_jupiter(contract_address))
            swap_button.grid(row=0, column=1, padx=10, pady=10)
            
            audit_button = customtkinter.CTkButton(buttons_frame, text="Audit via GoPlus", command=lambda: self.open_goplus_audit(contract_address))
            audit_button.grid(row=0, column=2, padx=10, pady=10)
```
