Marketplace & Club Ops
This page goes deep on how managers mint, list, buy, train, loan, and graduate talent on Gaff and how the economy stays fair, liquid, and fun.
5.1 NFT Marketplace
What lives on-chain
Player NFTs (ERC-721): unique ID, immutable genesis (academy cohort, origin scout), dynamic attributes (form, stamina, total goals/assists, appearances).
Club Badge NFTs (ERC-721, optional): club identity & cosmetics.
Receipts (ERC-1155 or event logs): tournament entries, prize receipts for verifiable history.
Player metadata (example)
{
"name": "Cristiano Messi (ST, Left)",
"description": "Academy Class S4 · Brazil · Pressing forward.",
"image": "ipfs://Qm.../render.png",
"attributes": [
{"trait_type":"Position","value":"ST"},
{"trait_type":"Foot","value":"Left"},
{"trait_type":"Strength","value":72},
{"trait_type":"Stamina","value":83},
{"trait_type":"Injury Proneness","value":0.18},
{"trait_type":"Form (roll-5)","value":[7,6,8,7,6]},
{"trait_type":"Nationality","value":"BRA"},
{"trait_type":"Cohort","value":"ACA-S4"},
{"trait_type":"Age","value":19}
],
"external_url": "https://gaff.coach/player/12345"
}Minting paths
New Gen (Primary):
Source: academy graduation, special drops, partner leagues.
Supply policy: season-based caps per position & cohort to avoid meta inflation.
Randomness: VRF-backed seeding for base profile, club training develops it.
Convert Prospects → NFTs (Academy grads):
Triggered when graduation threshold is met (see §6.4).
Mint fee covers storage + fraud proofs, discounted via referral.
Listing: gasless → on-chain settlement
Gasless listing uses EIP-712 signatures:
Seller signs
{tokenId, collection, minPrice, expiry, nonce}.Order is stored off-chain (indexer), no gas.
On purchase: buyer calls
fulfill(order, sig),contract verifies signer, price, expiry, ownership & nonce, then transfers NFT and splits funds.
Cancel listing: seller signs a cancel, indexer prunes, or seller revokes nonce on-chain (optional advanced flow).
EIP-712 typed data (example)
Offers & bids
Maker bids (gasless): bidder signs a bid with price floors/expiry.
Taker fills: seller fills best bid on-chain, contract handles escrow & splits.
Collection bids (optional roadmap): “any ST ≥ strength 70”.
Fees & royalties
Protocol fee
1.5%
Goes to Gaff treasury for tournaments & grants.
Creator royalty
2.0%
On primary & secondary (respect creator setting, capped at 4%).
Referral kickback
0.5%
To referrer on first marketplace transaction by referee.
L1/L2 gas
chain
Settlement gas at buyer’s cost, listings remain gasless.
Anti-wash: same-wallet or tightly-linked wallets don’t earn referral kickbacks, on-chain heuristics + risk thresholds throttle abuse.
Fraud & abuse controls
Blacklist stolen tokens (integrations), freeze payouts to suspicious sellers until dispute cleared.
Nonces and per-seller daily cap on order spam to protect indexers.
Banned price bands for newly minted academy grads (e.g., no <$0.1 for 24h) to reduce bot sniping.
5.2 Scouting & Signing
What matters when scouting
Ratings: strength (overall), position weights, footedness, height archetype.
Form: last 5 match ratings (1–10) rolling.
Stamina & Fatigue: current stamina (0–100) impacts match sim and injury risk.
Injury risk:
risk = proneness × (100 - stamina)/100(bounded).Discipline: yellow/red history (affects fair-play tie-breakers in some events).
Chemistry hooks: position fit vs current formation.
Scouting UI signals (examples)
Reliability index (0–100): model of availability: low proneness, high stamina habits.
Trajectory: 4-week trend of ratings & stamina management.
Role fit: “Ideal as pressing forward in 4-3-3”, “sub-optimal in 5-3-2”.
Contracts & wages (optional, toggle per league)
Wage/week
% of treasury
Impacts club upkeep, non-payment flags player unhappy modifier.
Duration
2–16 weeks
Early break penalties (clause) or transfer windows.
Bonuses
Goals/Assists/Win
Small token payouts, caps to avoid farm.
Loan market
Parameters: duration (weeks), recall window (yes/no, week n), wage split (%), optional buy option (price/expiry).
Recall rules:
If recallable, lender can recall after recall window, must honor scheduled matches already locked this round.
If non-recallable, only club mutual termination with penalty.
Collateral (optional): borrower posts a bond, forfeited on default/abuse.
Loan Record (on-chain storage)
Diagrams
Marketplace Flow (gasless listing → on-chain fill)
Club Ops Flywheel
Loan Lifecycle
Dev Notes (implementation hints)
Separation of concerns: marketplace contracts do not mutate player attributes, they only transfer and settle. Training & matches are separate systems writing to on-chain stats or off-chain proofs that are pulled into metadata refresh.
Indexing: use order books keyed by
(collection, tokenId)and(seller, nonce),prune on fills/cancels.Oracles: no price oracles required, settlement uses buyer’s currency (native or whitelisted ERC-20).
Events: emit granular events (
AskCreated,AskCancelled,AskFilled,BidCreated,BidFilled,LoanCreated,LoanRecalled,LoanSettled) for analytics.
FAQ
Q: Can I list gasless and cancel on-chain later?
Yes. Gasless list, if you want an irrevocable cancel, call invalidate(nonce) on-chain. Otherwise, UI removal + indexer pruning hides it.
Q: Do boosts make pay-to-win? No, boosts are capped per account/player, come with cooldowns, and cannot override core attributes. They help availability and consistency, not raw strength spikes.
Q: Can I loan with buy option? Yes, price and expiry are part of the loan struct, exercising transfers immediately and settles royalties/fees.
Last updated