Bitquery Labs · Widgets

Blockchain data components,open source and query-driven.

A library of reusable visualisation components that each render the result of a Bitquery GraphQL query — tables, charts over time, trade feeds and pivots, on 40+ chains. The whole of explorer.bitquery.io is built from them.

40+ chainsGraphQL-drivenMIT licensedPowers Bitquery Explorer
WETH/USDC · Uniswap v3 · Ethereum$3,412.80+2.41%
widgets.chartByTimeillustrative preview

How you use it

Write a query. Point a widget at it.

Every widget takes the same three things: an initialised client, a GraphQL query, and the path to the result set you want drawn. This is the real API, from the repository's own demo.

<link rel="stylesheet" href="dist/assets/css/widgets.css">
<div id="eth-blocks"></div>

<script src="dist/widgets.js"></script>
<script>
  widgets.init(
    'https://streaming.bitquery.io/graphql',
    'https://ide.bitquery.io',
    '',
    { accessToken: 'YOUR_ACCESS_TOKEN' }
  );

  var query = new widgets.query(`
    query {
      EVM(network: eth) {
        Blocks(limit: {count: 10}) {
          Block { Number Time Hash }
        }
      }
    }
  `);

  widgets.table('#eth-blocks', query, 'EVM.Blocks', {
    title: 'Recent Ethereum blocks',
    dataOptions: [
      { title: 'Block', path: 'Block.Number' },
      { title: 'Time',  path: 'Block.Time' }
    ]
  });
</script>

widgets.initnew widgets.query → a renderer. The renderers are chart, chartByTime, table, table_trades, list, text, pivotTable, pivotChart and template.

Recent Ethereum blocks
widgets.tableillustrative preview

What you can build

Nine chart types, one pattern underneath.

These are the shapes people build with the library — each one is a renderer plus a query. Swap the network or token in the query and the same component works wherever the data exists. The previews below are illustrative, not live data.

Price over time

What did price actually do, interval by interval?

40+ chainswidgets.chartByTime

Order-book depth

Where is liquidity sitting on either side of mid?

DEX datawidgets.chart

Live trade feed

Who is buying and selling right now?

streamedwidgets.table_trades

Holder distribution

How concentrated is this token's supply?

EVM + Solanawidgets.chart

Token pair table

Which pairs on this DEX are moving?

per-DEXwidgets.table

Wallet balance mix

What does this address hold, and in what proportion?

40+ chainswidgets.chart

Volume over time

Is activity growing or quietly fading?

1m to 1dwidgets.chartByTime

Price ticker strip

One glanceable row for a header or sidebar.

any assetwidgets.list

Trend line / TVL

How has a metric moved across the range?

any metricwidgets.chartByTime
EthereumSolanaBSCBaseArbitrumPolygonTronBitcoin+ 32 more chains

Proof

An entire explorer, built from these widgets.

explorer.bitquery.io — multi-chain address, transaction, token and DEX pages across 40+ networks — is composed entirely of these components, and its source is open too. If you want to know what the library can carry in production, read that repository.

01

Get the query right first

Author and test it in the GraphQL IDE, where the schema explorer and autocomplete live. A widget takes the query you already proved.

02

Mount a renderer

Pass a selector or element, the query, and the path to the result set — 'EVM.Blocks'. Column and axis mapping is the dataOptions array.

03

Style it as yours

The bundle ships widgets.css; override it from your own stylesheet. Components are Vue underneath but mount into any page, framework or not.

Styling

It should look like your product, not ours.

The bundle ships dist/assets/css/widgets.css. Load it first, then override from your own stylesheet — the components render ordinary DOM (list groups, tables, chart containers), so you target them the way you would any third-party widget.

app.cssafter widgets.css
/* load widgets.css first, then win on specificity */
#eth-blocks .list-group-item {
  background: #0c121c;
  color: #aab0bc;
  border-color: rgba(255, 255, 255, .08);
}

#eth-blocks table th {
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* the veil the widget shows while a query is in flight */
#eth-blocks .widgets-loading { background: rgba(6, 9, 13, .6); }

There is no CSS custom-property theme API today — no --widget-* token layer to set. Theming is plain CSS specificity against the shipped stylesheet, which is worth knowing before you plan a design system around it. The wiki has the per-widget markup.

Pricing

The library is free. The data is your plan.

Widgets are MIT licensed and cost nothing. Every paid plan starts with a 7-day free trial.

  • A widget refresh is a query — it consumes API points like any other request.
  • Self-service runs $49–$299/mo; Enterprise is a flat platform fee.

FAQ

Before you clone it.

What exactly are Bitquery Widgets?
An open-source library of reusable visualisation components that each render the result set of a Bitquery GraphQL query — tables, charts over time, trade lists and pivots. It is MIT licensed and lives at github.com/bitquery/widgets. The clearest proof it works: explorer.bitquery.io is built entirely from these widgets, and its source is public too.
How do I install it?
Clone the repository and run npm install, then build with webpack — the repo ships a config. You then include dist/widgets.js and dist/assets/css/widgets.css in your page. There is no npm package or hosted CDN build today, so vendor the bundle into your own assets. The wiki walks through it, and there are JSFiddle examples if you want to try it before cloning anything.
Do I need to know GraphQL?
Not to start — most tasks can be done from the examples. You need basic GraphQL once you want your own filters and fields, and the GraphQL IDE is the easiest place to get a query right before you paste it into a widget.
Do I need an API key?
Yes. widgets.init() takes an accessToken — the same Bitquery token the API and the IDE use, issued when you sign in. Widgets hit the same endpoint as everything else, so usage counts against your plan in the normal way.
What does it cost?
The library itself is free and MIT licensed. The data behind it is billed like any other API usage — a widget refresh is a query. Every paid plan starts with a 7-day free trial, and self-service runs $49–$299/mo. See pricing.
Which chains work?
Any chain Bitquery indexes. A widget renders whatever its query returns, so coverage is simply the API's coverage — 40+ networks, listed on the blockchains hub.

Clone it, point it at a query, ship a chart.

MIT licensed, no card to read the source. You need a Bitquery access token for the data — the same one the IDE issues.