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.

ComponentRateWhere it goes
Buyback & burn4.8%USDC → buys $IONS on PumpSwap (pump.fun AMM) → burned
Treasury4.8%Stays in the treasury as USDC
Seller proceeds90.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_market Anchor 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.