Creator royalties were sold as one of the defining features of NFTs: a percentage of every future resale, forever, paid automatically. For a couple of years that broadly held. Then it stopped, and understanding why requires being precise about what the royalty standards actually do.
The short version: royalty standards are a query interface, not an enforcement mechanism. They let a contract answer the question "what royalty is owed on this sale?" They do not, and cannot, compel anybody to ask.
What the standards actually specify
EIP-2981 on Ethereum and cw2981 on CosmWasm chains are near-identical in intent. Both add one thing to an NFT contract: a way to ask about royalties.
On a cw721 collection, the query looks like this:
{"extension": {"msg": {"royalty_info": {"token_id": "42", "sale_price": "100000000"}}}}
The contract responds with a receiver address and an amount. There is a companion query, check_royalties, that answers whether the collection implements the extension at all.
That is the entire standard. Read the flow carefully and the gap is obvious:
- A marketplace chooses to query the collection.
- The collection reports what is owed.
- The marketplace chooses to include that payment in settlement.
Steps 1 and 3 are voluntary. The NFT contract is not in the room when the sale settles — the marketplace contract is. Nothing in the token's own code can reach into another contract's transaction and insert a payment.
Why a transfer can't enforce it
The natural follow-up: why not enforce royalties in transfer_nft itself?
Because the transfer function has no idea whether money changed hands. transfer_nft moves a token from A to B. It cannot see a payment that happened in a different contract, on a different chain, or in cash. A transfer might be a sale, a gift, a move between your own wallets, a deposit into a vault, or a loan collateralisation. Charging every transfer as if it were a sale would break all the legitimate cases.
Some projects tried anyway — blocklists of non-compliant marketplaces, transfer hooks, wrapper contracts. Each added friction, each was routed around, and several broke ordinary user behaviour like moving a token to a hardware wallet. The approaches that survived contact with reality are social and economic, not technical.
So why did marketplaces stop paying?
Competition on price, in a market where the product is identical everywhere.
An NFT listed on marketplace A is the same token as on marketplace B. There is no product differentiation. So marketplaces competed on the only lever they had — cost to the seller — and royalties are a cost to the seller. A venue that made royalties optional could offer better net proceeds on identical inventory. Sellers followed the money, and the rest of the market matched to avoid losing volume.
That is not villainy. It is what a commodity market does when one input is voluntary. The lesson generalises: any fee that one participant can unilaterally waive will eventually be waived by somebody, and once it is, the rest follow.
What still works
Royalties have not vanished. They have moved from "guaranteed by code" to "sustained by design and by norms," and several approaches do hold up.
Venues that honour them by policy. A marketplace can simply query the collection and pay. Atrium does — settlement queries the collection's cw2981 royalty and routes it to the creator's address inside the same transaction as the trade. This is the majority of practical royalty enforcement today: it depends on the venue's commitment rather than on the token's code, and that is worth being honest about.
Utility gated on the creator's own systems. If holding the NFT unlocks something the creator controls — access, upgrades, a game state, a claim — the creator has real leverage that survives any marketplace policy. This is the strongest position available.
Primary-sale pricing that does not assume royalties. Many collections priced the mint low on the theory that resale royalties would fund development. When royalties became optional, those projects lost their funding model overnight. Pricing the primary sale to cover the work is unglamorous and robust.
Mechanisms that route value on-chain, not off it. If a collection's economics run through contracts the collection controls — staking, burning, fusion, treasury flows — the value capture does not depend on a marketplace choosing to be nice.
What this means for you
If you are a creator: treat cw2981 royalties as revenue that some venues will pay and others will not. Implement the standard — it costs nothing and honest marketplaces will honour it. But do not build a budget on it, and put your real leverage in utility you control.
If you are a buyer: the royalty is part of what a purchase costs, and it varies by venue. Worth knowing, rarely worth optimising around at typical trade sizes.
If you are a seller: your net is price minus marketplace fee minus royalty. Work backwards from what you want to receive, not forwards from the ask.
If you are building a marketplace: the honest position is to state your policy plainly. Users can handle "we pay cw2981 royalties" or "we do not." What erodes trust is ambiguity about which.
FAQ
Are NFT royalties enforceable on-chain?
Not through the token standards. EIP-2981 and cw2981 provide a query that reports what royalty is owed on a sale; paying it is the marketplace's decision at settlement. The NFT contract cannot see or intervene in a payment that happens in another contract.
What is cw2981?
cw2981 is the CosmWasm royalty extension to cw721, closely modelled on Ethereum's EIP-2981. It adds a royalty_info query returning a receiver address and amount for a given sale price, plus a check_royalties query so a marketplace can tell whether the collection supports it.
Why did marketplaces stop paying creator royalties?
Because the same NFT trades identically at every venue, so marketplaces competed on seller cost — and royalties are a seller cost. Once one venue made them optional it could offer better net proceeds on identical inventory, and the rest matched to keep volume.
Do royalties get paid on a direct wallet-to-wallet transfer?
No. A direct transfer_nft involves no marketplace contract, so there is nothing to query the royalty or route a payment. This is also why transfers cannot be made to enforce royalties — the function cannot tell a sale from a gift.
Does Atrium pay creator royalties?
Yes. Settlement queries the collection's cw2981 royalty and pays the creator's address as part of the same transaction that transfers the token and pays the seller.