Dyplux

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

ChainTokenTransfers · 7dUnique senders · 7dShare of top
BNB ChainUSDT (BSC-USD)129,651,4957,361,729
BNB ChainUSDC24,047,218936,203
BaseUSDC29,016,4531,061,072
TronUSDT18,182,2333,625,812
EthereumUSDT6,142,7581,421,364
EthereumUSDC4,833,548706,066
BaseUSDT457,49811,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

ChainDEX volume · 30dTrades · 30dUnique traders · 30dTraders, relative
Ethereum$238.9B11,321,572529,210
Base$115.2B54,110,737653,143
BNB Chain$91.2B249,449,6644,037,212
Solana$62.6B645,487,2799,803,459
Arbitrum$10.6B9,317,707153,558
HyperEVM$3.8B4,154,69058,412
Monad$3.4B75,846,372113,940
Polygon$2.4B23,038,190995,725
Optimism$0.7B6,363,36423,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.