Using Nightgarden
Selling
Listing, offers, and what a bid is worth.
Listing
One approval per collection, then a listing per token or listMany for a batch. Cancellation is never blocked: the contract can be paused for fills, and cancelling still works while it is paused. A market that can trap your token is not one you should list on.
Offers can be bluffs
Nothing is escrowed, so an offer is only as real as the bidder's balance and approval at the moment you accept it. The offers table reads offerBacking for every bidder and greys out the unfunded ones instead of ranking one of them at the top.
Royalties
EIP-2981, honoured up to 10%, read with a gas-capped staticcall so a hostile royalty implementation cannot make your sale fail. A creator can always lower their royalty and can never raise it.