Terminology
Programs we cannot name individually are grouped under
other_<issuer>, for example other_rain, so their volume is still counted.
Why every program looks different on-chain
There is no shared standard for how a card program operates on-chain, and the differences affect the numbers. Some programs deploy a contract for each cardholder and emit an event for every purchase. Others keep their ledger internal and only touch a chain when they settle up with their issuer, often once a day. Some report a topup when money reaches the cardholder’s account, others once the balance becomes spendable, and a few report both for the same money. Adding up whatever each program emits would produce figures that cannot be compared. A program that reports two topup steps would look twice the size of one that reports one. A program that settles in batches would show 850 purchases behind $833M of spend. A cardholder who exists on four chains would be counted as four customers. Allium reconciles this activity program by program. We study how each program works on-chain, pick the events that represent a purchase and a topup for that particular design, and publish them as curated metrics on a common definition. The result is a set of figures that hold up on their own and can be compared, summed and charted across programs and issuers. The raw per-event numbers stay available underneath for drilling in, and the curated columns are the ones to build on.The metrics
The tables
Every table has one row per day. Amounts and counts add up across rows, so a weekly or monthly view is a
date_trunc and a group by:
Which table to reach for
crypto_card_spend_volume is the source of truth for total card spend. It counts each dollar once and includes the volume that no named program claims, which is what makes it a total. Reach for it when you are sizing the market, splitting spend by issuer, or comparing crypto card spend against something external.
crypto_card_programs_overview covers named programs only. It is where the purchase counts, account counts and funding metrics live, so it is the right table for any question about a particular program.
How we keep a dollar from being counted twice
The same purchase can be visible twice: once as a program’s own spend event, and again when its issuer settles up afterwards. Spend volume resolves this by choosing one source per issuer and reading every row of that issuer from it.spend_source records the choice. Wirex, UR and Bridge are read from their spend feeds, which already cover every purchase on the issuer. Gnosis Pay, MetaMask and Ready are read from the spends of their single program. Rain and Immersve are read from settlements instead, which means the spend data that Ether.fi, Exa, Plasma One and Ethena Pay produce is deliberately set aside, since those programs run on Rain and are already inside Rain’s settlements.
The choice is made per issuer rather than per program on purpose. When a program changes the address it settles from, its settlements fall into other_rain while its own spend data keeps reporting the same purchases, and a per-program basis would count that volume twice. The same reasoning makes it crosschain: Ether.fi’s purchases on Scroll were settled through Rain on Optimism and later Ethereum. Publicly available reports can fall into this trap by adding a program’s own spend events to its issuer’s settlements. The Allium datasets pick one source per issuer, so the same purchase is never counted twice.
Counting accounts
Two things make account counts different from everything else here. The first is that a distinct count cannot be summed. The same cardholder active on Monday and Tuesday is one person, so adding daily counts over a month double-counts them. Each account column therefore carries companions that can be summed, and which one you want depends on the question:_new_to_monthand_new_to_weekcount a cardholder on their first active day inside that calendar month or week. Summed over the matching period, they give that period’s distinct count, which is monthly active accounts rather than new ones. Pair them only with adate_truncof the same width._new_to_lifetimecounts a cardholder on the first active day in their entire history. Summed over any range, it gives the accounts that showed up for the first time in that range, which is the new ones.
card_program. Adding accounts across programs counts a cardholder once per program they use.
Reading the columns
The columns with_event_ in their name are the raw per-event numbers underneath the headline series. They are useful for drilling into one program, and they sit together at the end of the table.
The exception is issuer_network_settlement_event_*, which is the issuer paying the card network. That happens downstream of the purchase and is never a spend_source, so it stands on its own.
A null count means the metric is not measured for that program, so a zero is always a real zero. spend_count is where this shows up most: it is null wherever one row is not reliably one purchase, which covers programs that settle in treasury batches, programs whose senders are not fully mapped, and programs whose rows can each cover several authorizations. The matching spend_amount_usd stays exact in all of those cases.
Data caveats
A few things worth knowing before reading too much into a number. Settlements arrive in batches. A single settlement row can cover many cardholders and many purchases at once, so a settlement count is a count of settlements rather than of purchases. Coverage follows the issuers we support. A card program can run part of its business through an issuer we do not track, and that part stays invisible here. Theissuers column lists every issuer we have seen for a program, which is the best guide to what a program’s row actually covers.
Account counts can sit above the number of people. Cardholders are matched by their on-chain address, so someone who appears on an EVM chain and on Solana or Tron counts once on each. This shows up most in the topup series for programs built on deposit addresses, such as RedotPay, Kast and Takenos, where each cardholder is handed a separate address per chain. Read unique_topup_accounts as an upper bound on people.
Small topups are dropped. Deposit addresses attract spam and address-poisoning transfers, so a topup counts only from $0.01 upwards, and transfers we cannot price are left out.
Only the on-chain side is here. These tables describe what card programs put on a blockchain. Whatever a program handles internally stays off the record, so the figures here describe on-chain activity rather than the whole business.
Some chains are missing from programs we otherwise cover. The gaps we know about today are MetaMask spend on Solana, RedotPay topups on Bitcoin and XRP, and Kast topups on Stellar and XRP. Those three series read below the programs’ real activity until the chains are added.
Example queries
- Program overview by month
- Total card spend
Spend, topups and accounts for each program, one row per month.A null count means the metric is not measured for that program. Programs with
no topup or purchase coverage show nulls in those columns.
Frequently asked questions
How much of the crypto card market do these tables cover?
How much of the crypto card market do these tables cover?
We track more than 50 named card programs, the widest coverage we are aware
of, plus the issuer volume we have not yet tied to a named program, which is
reported under
other_<issuer> rather than dropped. What is missing falls
into two groups.Issuers we have not added yet. We index a growing list of issuers and
add more over time, so at any moment there are programs whose rails we do
not read — Reap and StraitsX are two examples. A program that runs only on
an issuer we have not added does not reach these tables at all.Cards run by centralized exchanges, such as Crypto.com, Binance, OKX and
Bybit. A purchase on these can draw on a spot balance held on the exchange’s
own ledger, so nothing about it touches a blockchain and there is no
on-chain trail for us to index. We expect the volume is substantial, but we
have no way today to put a figure on how much of the market it represents.Why is total spend volume lower than figures published elsewhere?
Why is total spend volume lower than figures published elsewhere?
Our aim is to report what cardholders actually spent, which usually puts us
below headline numbers built from raw on-chain activity. Every figure in
these tables traces back to on-chain activity that anyone can audit, so we
also leave out figures that programs report about themselves. Three examples
of where the difference comes from:RedotPay. Public reports usually quote around $6.6B of RedotPay spend,
which would be more than half of all the card spend we can track on-chain.
Those figures come from the company and cannot be verified on-chain, so
RedotPay spend stays out of our metrics.Wirex. We count card spends only. Reports built on raw activity also
count outgoing bank transfers from Wirex accounts, which are not card
purchases, and count Wirex settling with Visa on Stellar. That Stellar leg
is the same money as the purchases it pays for, so counting both reports it
twice.Ether.fi. We take Ether.fi’s volume from the settlements Rain makes on
its behalf, which are net of refunds. Most published figures come from
Ether.fi’s own on-chain spend events, which still include purchases that
were later refunded. We cannot tell which individual Ether.fi spend events
were refunded, so we rely on settlements for the headline number. The
gross spend-event figure is still available in the per-program tables as
spend_event_amount_usd if you want to compare against those reports.Why is volume on the UR programs (SafePal, Bitget Wallet, imToken) falling?
Why is volume on the UR programs (SafePal, Bitget Wallet, imToken) falling?
These cards run on Fiat24, the Swiss institution behind the
ur issuer in
these tables. On 14 July 2026 Fiat24 paused crypto deposits and new user
registrations while it upgrades its risk and compliance controls, and it has
not announced when they resume.The tables show that cleanly. The last on-chain topup for all three programs
lands on 2026-07-14, new accounts drop to roughly zero from August, and spend
carries on as cardholders draw down balances they had already funded. SafePal
and Bitget Wallet each ran about $4M to $5M of topups a month through the
first half of 2026, then nothing. Spend has been decaying since, from around
$4M a month to a few hundred thousand.Our coverage of these programs is unchanged over this period, so the decline
reflects real activity on the cards.Table Columns
- Total spend volume
- Program overview
- Program overview by chain
Table name:
payments.metrics.crypto_card_spend_volumeUnique key: unique_id