Secondary Marketplace & Fees
The secondary marketplace is where players resell and buy skin editions from each other. It's a new module (with its own home-screen button), distinct from the primary shop, and it is the mechanism that turns skin trading into $IONS buyback pressure.
The headline numbers
Base currency: USDC. Every secondary sale pays a 9.6% fee, split: 4.8% buys back $IONS (and burns it) · 4.8% to the treasury.
| Component | Rate | Where it goes |
|---|---|---|
| Buyback & burn | 4.8% | USDC → buys $IONS on PumpSwap (pump.fun AMM) → burned |
| Treasury | 4.8% | Stays in the treasury as USDC |
| Seller proceeds | 90.4% | Paid to the verified seller |
The website states it as: "9.6% fee: 4.8% buyback & burn, 4.8% treasury." Skins are "limited edition (100 of each), Classic or Hyper-Mutation."
Why USDC (not $IONS)
Secondary sales are priced in USDC, not $IONS. This is the whole point of the buyback: using real USDC to buy $IONS on the open market is genuine buy pressure, not a circular round-trip of the token against itself. (Primary sales stay in $IONS — see Primary Shop.)
Order types
- Listing (fixed price) — a seller lists an edition at a set USDC price.
- Buy-Now (instant) — a buyer deposits the exact USDC amount and instantly takes the listing.
- Bids — a buyer escrows committed USDC; the seller accepts to receive it (minus the fee). Cancel or expiry refunds the bidder's sender address.
Race rule
If two Buy-Now USDC deposits land for the same listing at nearly the same time, the first received settles and the second is automatically refunded to its sender. No double-sells.
No wallet-connect
Like the primary shop, the marketplace uses the exact-amount rail: the UI shows a
deposit address and an exact USDC amount (for offers, bids, and instant-buys). The
sender address identifies the user and must match their verified
accounts.solana_address. A Cloudflare cron keeper detects deposits and triggers the
settlement program — but the keeper can never drain funds: the on-chain program / PDA
is the sole fund authority.
What actually moves on-chain vs. off-chain
- USDC is escrowed and settled on-chain by the
ions_marketAnchor program. - Skin ownership stays on the off-chain ledger (
owned_skins), re-keyed by the server when the program confirms settlement. (No on-chain NFT yet — no-wallet-connect makes wallet-held NFTs awkward.)
See Marketplace Architecture for the program, the keeper, and the fund-safety invariants.
Fee math, precisely
The fee is computed on the USDC sale amount with integer/BigInt math and a ceil-with-remainder rule, so dust amounts can't round the fee to zero. A server-side minimum-ask floor prevents tiny self-asks from dodging the fee entirely.
Legal note (flagged, not legal advice): a custodial marketplace skimming 9.6% on peer-to-peer resales of a self-issued-token-priced collectible is a higher regulatory posture. Counsel should review before the resale market goes live. See the Disclaimer.