On 1 September 2026 The Block published an investigation into how meme coin purchases were moving on card rails. Buy WIF with a credit card through Robinhood Wallet or Fomo, both running Crossmint checkouts, and the transaction went down the wire coded MCC 5815: digital goods media. Books, films, music. The code Netflix lives under.
Visa’s own Merchant Data Standards Manual, April 2026 edition, is not ambiguous about this. Cryptocurrency purchases must carry MCC 6012 or 6051 and special condition indicator 7, and that holds even when crypto is not the merchant’s main line of business. Coded correctly, the purchase earns no card rewards, because both Visa and Mastercard withhold rewards on crypto. Coded as digital media, it earned them like any other Tuesday.
Chase noticed, told The Block the code looked wrong, and opened a case with Visa. On 19 September Visa told Checkout.com, the processor behind Crossmint, that the digital media category is inappropriate for meme coin purchases, with a grace period expected to run about another week. Letitia James’s office confirmed it is looking at the product. Crossmint’s response was that its “position and procedures on how we process digital goods through our platform has not changed”.
Every outlet filed this as a rewards story. It is not. It is the cleanest demonstration you will get this year of a problem that runs straight through on-chain gaming.
TL;DR
- Meme coin card purchases were coded MCC 5815 (digital goods media) instead of the crypto codes 6012/6051 with indicator 7, so they earned rewards Visa’s rules withhold from crypto.
- Nobody disputes a single cent of those transactions. The entire fight is over a four-digit field the cardholder never sees, never signs and cannot read on any receipt.
- The amount settled in under two seconds. Eighteen days after the coding was publicly flagged it was still being reclassified, and rewards already paid can be clawed back.
- On a £1,000 buy the difference between the two codes is roughly £70, about seven per cent, against the basis points crypto normally argues about.
- On-chain gaming has the identical split: consensus signs the numbers and the addresses, and the words describing what those numbers were are free.
- Satoshie’s answer is not a better classifier. It is having almost nothing to classify.
1. The amount was final in two seconds. The type still is not final
Run the clock on it. A card authorisation completes in well under two seconds, and from that moment the amount is fixed. Nobody in this story has questioned it.
The type is a different object entirely. The Block published on 1 September; Visa’s instruction to the processor came eighteen days later, with a grace period keeping the old coding legal for roughly another week after that. A field that determines whether you earned twenty pounds or paid fifty has been openly contested for the better part of a month, on transactions that were financially final before the card left the reader.
And the remedy runs backwards. Chase’s case is not about future purchases, it is about rewards already credited to accounts. The amount is immutable. The classification is revisable, retroactively, by parties who were not in the shop.
We have built enormous machinery for the first half of a record and almost none for the second. Double entry, reconciliation, consensus, cryptographic signatures, all of it aimed at the quantity. The type is asserted once, by whichever party happens to be assembling the message, carried in a field nobody signs, and left open indefinitely.
2. Four digits, seven per cent
Price it. Take a £1,000 meme coin purchase on a card paying two per cent back.
Under MCC 5815 you earn £20 and the balance sits in the ordinary interest-free window. Under 6012 or 6051 with indicator 7 you earn nothing, and many issuers additionally treat crypto purchases as cash advances: a fee of around three per cent, so £30, with interest accruing from the transaction date rather than the statement date. Thirty days at 24.9% APR on £1,000 is another £20.46.
That is £20 in your favour against £50.46 out, a swing of about £70.46 on a £1,000 purchase. Just over seven per cent, decided by four digits. The cash advance leg is issuer-dependent rather than automatic, so treat that as the upper end, but even stripping it out entirely the reward alone is a two per cent swing on an identical purchase.
Crypto argues obsessively about costs an order of magnitude smaller. Slippage, priority fees, bridge spreads, the basis points an exchange shaves on a taker order: all of it gets dashboards and a permanent Twitter argument. The single largest cost variable in this transaction is a classification, and it has no dashboard because nobody outside the payments industry knows it exists.
3. One object, three taxonomies, all live at once
The interesting part of Crossmint’s defence is that it is not stupid. The SEC’s Division of Corporation Finance did say, on 27 February 2025, that meme coins are “akin to collectibles” with “limited or no use or functionality”, and are therefore not securities. If a federal regulator calls the thing a collectible, coding it as digital goods is at least an argument.
Except Visa’s taxonomy has never cared what the SEC thinks. It is a private classification system with its own manual, its own definitions and its own enforcement, and under it the same token is a crypto purchase. Meanwhile the token is whatever your tax authority decides it was when you eventually sell.
So one object, unchanged, sits inside three classification systems at once: a collectible to the SEC, a crypto asset to Visa, digital goods media to the processor. All three carry different consequences, and nothing about the token had to change for any of them to be true, because none of them are facts about the token. They are facts about whose form you are filling in.
The instinct is to demand that somebody adjudicate and produce the correct answer. There is no correct answer. There are only taxonomies, and the only question that matters is whether the one applied to your money was visible before you spent it.
Five parties touch that four-digit field: merchant, checkout platform, processor, network, issuer. Each can see it, dispute it or change it. The cardholder is the sixth, funds the whole thing, and is the only participant who never sees it, because it appears on no checkout page, no confirmation email and no statement line. The table itself has a few hundred rows in live use. It governs the economics of trillions of dollars of purchases a year and was never written to be read by anyone paying.
What this means for on-chain gaming
This is the part that should make anyone building provably fair games uncomfortable, because the split is identical and our proof machinery points at the wrong half.
A blockchain signs numbers and addresses. Consensus enforces that 100 USDC left this address and arrived at that one, forever, and no operator can edit it. What consensus does not enforce, at all, is what that transfer was. Deposit, stake, bonus credit, refund, promotional adjustment, qualifying entry: none of those are consensus objects. They live in an event log the contract chose to emit, or, far more often, in a row in the operator’s database.
And event names are strings. A Solidity event called FairDraw costs precisely the same gas as one called HouseTakesIt. The chain guarantees the log was emitted and guarantees nothing whatsoever about whether the name on it is honest. The numbers are signed. The words are free.
Now look at where gambling actually decides your money, and notice how little of it is a number. Whether a bet is a qualifying bet. The contribution percentage deciding whether your £10 on blackjack moves a wagering requirement by £10, £1 or nothing. Whether your balance is real money or bonus money. Whether a game is on the excluded list. Whether a payout is a win or a promotional credit under a max win cap.
Every one of those is an MCC. Same structure exactly: a type assigned by one party, applied to a settled event, determining the economics, invisible in the record the player can see. Except worse, because the card system at least has a published manual, a rival institution with standing to dispute the code, and an attorney general who can ask questions. A casino’s contribution table is published by the casino, adjudicated by the casino and amendable by the casino.
A VRF proof cannot help you here, because it is type-blind by construction. It proves a number was produced correctly against a predetermined seed. It cannot tell you what set that number indexed into, or what your transaction was filed as afterwards. You can hold a perfect proof of a perfectly generated random word and still have no idea what category your entry was given on the way in, or your payout on the way out.
This is not the familiar point that a fair draw says nothing about whether you get paid. It is narrower and, I think, more awkward: the one part of the stack we have learned to prove is the part with the fewest degrees of freedom in it.
Where Satoshie actually stands
The answer is not a better classifier. It is having almost nothing to classify.
A Satoshie entry’s type is not a label attached to a transfer afterwards. It is the function you called. Calling it is the entry, in the same transaction that escrows your stake, so there is no interval in which anyone could re-type it as something else. The odds are arithmetic over tickets minted, readable before you buy. The coordinator address is fixed in deployed code. The returned randomness carries a proof the contract verifies on-chain before the payout callback may act, and resolution and payout happen in one transaction.
More to the point here: there is no bonus balance, so no distinction between bonus money and real money. No wagering requirement, so no contribution table. No tier multiplier, no excluded games list, no definition of a qualifying bet, because there is exactly one kind of thing you can do. You cannot misclassify an event in a system with one category.
That claim stops where it should. Our event names are words we chose, our indexer is ordinary software and our front end is an ordinary web app. If we ever ship a promotion with a contribution table attached, hold this post up to us.
Three honest limits
The criticism lands on us too. Everything a player reads, the history page, the leaderboard, the labels on the interface, is software we wrote interpreting logs we named. Nothing in a VRF proof types our own event log. The defence is that the contract is readable and the function call is the act, not that our labels are verified.
A VRF proof settles randomness and nothing else. It is silent on whether a contract can be drained, whether a prize is funded, and on the front end, which remains the least trustworthy thing we ship.
This is not an argument against Visa, Chase or merchant category codes. A mandatory taxonomy with a published manual, an institution with standing to dispute an entry, a network that acted in under three weeks and a regulator who can ask questions is better governance than crypto gaming has managed in its entire existence. The objection is that the field is invisible to the only party paying for it, not that it exists.
Three questions worth asking
- For the last thing you staked, which field in the record says what kind of event it was, and which party wrote it?
- If that field were wrong, how would you find out, and who would have to agree before it was corrected?
- Are the amount and the type final at the same moment, or is one of them still open?
Your receipt gives you the amount, the merchant, the date and the last four digits of your card. It does not give you the four digits that decided what the purchase was. Nobody lied to you, nothing was hidden in a sense any court would recognise, and the number at the bottom was right to the penny.
The number was never the part you needed to read.
📷 Photo by Towfiqu barbhuiya on Unsplash


