Crypto token liquidity dashboard across every exchange

By General Input

See every exchange trading your token on one screen, tell real liquidity from padded volume, and save a dated snapshot to Notion.

Integrations

  • CoinGecko
  • Notion

Type

App

Categories

  • Finance
  • Operations

Build an internal app for our investor relations and market making team that shows where our token actually trades. Today we assemble this by hand before every investor update, clicking through exchange listings and copying numbers into a doc. I want one screen that answers it, and a button that archives the answer.

Main screen. At the top, a coin picker. The user types a token name or ticker and I use the CoinGecko Search operation to show matching coins with their name, symbol, market cap rank and thumbnail, so we pick the right one when several tokens share a ticker. Selecting a coin gives me its CoinGecko coin id, which everything else keys off. Remember the last selected coin so the app opens on our token by default.

Once a coin is selected, use Coin Tickers for that coin id to get every venue carrying it, paginating until all tickers are collected since a well listed token runs past the 100 per page limit. Render a table with one row per ticker: exchange name, the pair as base over target, last price, 24 hour volume, bid ask spread percent, and CoinGecko's trust score for that listing. Sort by 24 hour volume descending by default, and let the user sort by any column. Use the USD figures from the converted price and converted volume fields so every row is comparable, rather than mixing quote currencies. Make the exchange name and pair the clearly dominant columns and keep the numbers right aligned and monospaced so they scan vertically.

Flagging matters more than the raw table here, because low quality listings are what inflate a headline volume number. Mark any row where the ticker is stale, where CoinGecko flags it as an anomaly, where the trust score is red or yellow rather than green, or where there is no trust score at all, which usually means CoinGecko has not rated that venue. Use a clear inline badge on the row plus a filter toggle to show or hide flagged rows. Above the table, show a summary line stating total 24 hour volume across all venues, and how much of it comes from flagged listings, as both a dollar figure and a percentage. That single sentence is the thing our IR lead will quote most often, so give it real visual weight.

Also show a price dispersion figure across the top venues by volume, defaulting to the top ten. Compute a volume weighted average price across those venues, then show the highest and lowest last price, the spread between them as a percentage, and call out by name whichever venue is quoting furthest from the weighted average. This is how we notice one exchange drifting off market, so surface it near the top of the page, not buried under the table.

Clicking any exchange row opens a detail panel for that venue. Fill the venue profile from Exchanges List with Data, matched on the exchange identifier from the ticker, showing trust score and trust score rank, year established, country, and the exchange's own site link. Fetch that list once per view load and join it against the ticker rows in the same handler rather than making a call per row, because the CoinGecko free plan rate limits aggressively. Add the venue's 30 day volume trend from Exchange Volume Chart as a small line chart. Note that this endpoint returns pairs of a millisecond timestamp and a volume value denominated in BTC as a string, so parse the strings to numbers and label the axis as BTC rather than implying dollars.

In the same panel, show what share of our token's total volume that venue represents. Compute this from the ticker data only, summing the USD converted volume of that venue's pairs for our token and dividing by the total across all tickers. Do not mix this with the exchange level BTC volume totals, since those cover the venue's entire book across every asset and would give a meaningless number. If a venue carries several pairs for our token, list each pair with its own volume inside the panel.

Use Get Coin by ID for the page header, showing the token name, symbol, current price, reported total 24 hour volume and market cap rank. Display CoinGecko's reported total next to the total we summed from tickers, since a visible gap between the two is itself a useful signal for our team.

A Save briefing button writes the current liquidity picture into our Notion investor relations database. Use Create a Page with the database as parent, titling the page with the token symbol and today's date so the database becomes a point in time archive. Then use Append Block Children to write the body: a short header block with the token, timestamp, total volume, flagged volume share and the dispersion summary, then the venue table as rows covering exchange, pair, price, 24 hour volume, spread percent, trust score and any flags, then a closing block listing the flagged venues explicitly with the reason each was flagged. Let the user pick or confirm the destination database on first use and remember it. After saving, confirm in the UI with a direct link to the created Notion page.

Practical notes. Assemble the whole main view in a single server handler that runs the search or coin lookup, the paginated tickers call and the exchanges list, then does the joins and the dispersion and share math server side, so the browser gets finished rows. Handle CoinGecko rate limit responses by surfacing a plain retry message rather than a blank table. Give the user an explicit refresh control with a visible last updated timestamp, since knowing exactly when the snapshot was taken is the whole point for an investor briefing.

Related prompts

Explore more prompts
Screen chartered vessels for AIS gaps and sanctions red flagsCompare candidate store locations with drive time trade areasBrowse every competitor ad and build a Notion swipe fileAudience persona studio for brand and product marketersArtwork desk for the Notion posts still missing an imageShare of voice dashboard for your brand and competitorsInfluencer campaign roster board with AI creator briefsSmart home entity health cockpit for Home AssistantOpen model approval desk for your production AI stackBid board that watches every procurement portal for you