2026-09-07 · research · Dyplux
Where the stablecoins actually move: a 7-day snapshot by chain
BNB Chain's canonical USDT contract saw 7.36M unique senders in seven days — more than Tron and Base combined. Measured on Dune, with the SQL included and the 28,586 impostor tickers excluded.
What was measured
Transfers of the canonical USDT and USDC contracts on BNB Chain, Base, Ethereum and Tron over the seven days ending 2026-09-07, counting both the number of transfer events and the number of distinct sending addresses. Data from Dune'serc20_multichain.evt_transfer Spellbook table.
The trap, and why the first pass was wrong
Filtering by ticker looks reasonable and is not. On BNB Chain alone there are 28,586 contracts whose symbol is USDT or USDC; on Ethereum, 29,352; on Base, 8,854. Tron has exactly one. A first pass that joined on symbol counted all of them. The published figures use only the canonical contracts, identified by ranking every ticker-matching contract by transfer count and confirming the top addresses against the issuers' published deployments.
In this case the impostors turned out to be noise — the totals barely moved — but that is only known because the check was made.
Result
| Chain | Token | Transfers · 7d | Unique senders · 7d | Share of top |
|---|---|---|---|---|
| BNB Chain | USDT (BSC-USD) | 129,651,495 | 7,361,729 | |
| BNB Chain | USDC | 24,047,218 | 936,203 | |
| Base | USDC | 29,016,453 | 1,061,072 | |
| Tron | USDT | 18,182,233 | 3,625,812 | |
| Ethereum | USDT | 6,142,758 | 1,421,364 | |
| Ethereum | USDC | 4,833,548 | 706,066 | |
| Base | USDT | 457,498 | 11,489 |
BNB Chain's USDT contract had 7.36M unique senders in seven days. Tron's USDT had 3.63M and Base's USDC 1.06M — together 4.69M. BNB Chain's single USDT contract exceeds the two of them combined by 57%.
Context: DEX activity, 30 days
| Chain | DEX volume · 30d | Trades · 30d | Unique traders · 30d | Traders, relative |
|---|---|---|---|---|
| Ethereum | $238.9B | 11,321,572 | 529,210 | |
| Base | $115.2B | 54,110,737 | 653,143 | |
| BNB Chain | $91.2B | 249,449,664 | 4,037,212 | |
| Solana | $62.6B | 645,487,279 | 9,803,459 | |
| Arbitrum | $10.6B | 9,317,707 | 153,558 | |
| HyperEVM | $3.8B | 4,154,690 | 58,412 | |
| Monad | $3.4B | 75,846,372 | 113,940 | |
| Polygon | $2.4B | 23,038,190 | 995,725 | |
| Optimism | $0.7B | 6,363,364 | 23,078 |
Solana has more unique traders than any chain measured (9.8M) at roughly a third of BNB Chain's volume; Base and Ethereum carry more volume with far fewer traders. BNB Chain is the only chain in the set that ranks in the top three on both volume and traders.
What this does not say
- A transfer is a movement, not a payment. DEX legs, bots and contract-to-contract hops are all in these counts. Separating wallet-to-wallet transfers is the next measurement.
- Solana's stablecoin activity was not measured — it is not an EVM chain and lives in a different table.
- Unique senders are addresses, not people.
Reproduce it
Run on Dune. The first query ranks contracts per chain so the canonical ones can be confirmed before anything is summed.
-- Canonical USDT/USDC transfers and unique senders, last 7 days, by chain.
-- Step 1 ranks every contract using the ticker so impostors can be excluded.
WITH toks AS (
SELECT DISTINCT blockchain, contract_address, symbol
FROM tokens.erc20
WHERE symbol IN ('USDT','USDC')
AND blockchain IN ('bnb','base','ethereum','tron')
),
t AS (
SELECT e.chain, e.contract_address, k.symbol, e."from" AS sender
FROM erc20_multichain.evt_transfer e
JOIN toks k ON k.blockchain = e.chain AND k.contract_address = e.contract_address
WHERE e.evt_block_date >= CURRENT_DATE - INTERVAL '7' DAY
AND e.chain IN ('bnb','base','ethereum','tron')
),
agg AS (
SELECT chain, contract_address, symbol,
COUNT(*) AS transfers_7d, COUNT(DISTINCT sender) AS unique_senders_7d
FROM t GROUP BY 1,2,3
)
SELECT * FROM (
SELECT chain, symbol, CAST(contract_address AS varchar) AS contract,
transfers_7d, unique_senders_7d,
ROW_NUMBER() OVER (PARTITION BY chain ORDER BY transfers_7d DESC) AS rn
FROM agg
) WHERE rn <= 4
ORDER BY chain, transfers_7d DESC;-- 30-day DEX volume, trade count and unique traders per EVM chain.
SELECT blockchain,
SUM(amount_usd) AS volume_usd_30d,
COUNT(*) AS trades_30d,
COUNT(DISTINCT tx_from) AS unique_traders_30d
FROM dex.trades
WHERE block_date >= CURRENT_DATE - INTERVAL '30' DAY
AND blockchain IN ('bnb','base','ethereum','arbitrum','polygon','optimism','monad','hyperevm')
GROUP BY 1 ORDER BY 2 DESC;
-- Solana lives in its own table.
SELECT 'solana' AS blockchain,
SUM(amount_usd) AS volume_usd_30d,
COUNT(*) AS trades_30d,
COUNT(DISTINCT trader_id) AS unique_traders_30d
FROM dex_solana.trades
WHERE block_date >= CURRENT_DATE - INTERVAL '30' DAY;Disclosure
The author works at CoinMarketCap. This piece is independent, was not reviewed by CoinMarketCap or Binance, and is not financial advice. No positions are held in any asset named here.