Overview

Checkmates (pieces) and Chessboards (boards) are two NFT collections on Ink. Staking pieces on a board opens a Position, which earns token rewards and a share of trading fees in ETH. Rules are enforced by non-upgradeable contracts; the numbers below are constants in those contracts unless marked configurable. For the story version, read the lore.

Examples

The rules below are exact. These are the same rules with real numbers, using three players.

Building a Position

A Position is one Chessboard with your Checkmates standing on it. You don't need a King: two Pawns are enough to start.

PlayerWhat they stakeScore
Sam2 Pawns on a Common board208
Mia8 pieces with a King and a Queen, one of them on a glowing square, Rare board (×1.1)1,024 × 1.25 × 1.25 × 1.1 = 1,760
LeoA full set of 16, each piece on its own square, the King on one of the board's glowing squares, Epic board (×1.15)2,560 × 2.5 × 1.25 × 1.15 = 9,200

Leo's score is 44 times Sam's, and the day's tokens are shared by score, so Leo earns 44 times more. Three things make the difference: more pieces (each one adds more than the last), the right mix (a King unlocks the set bonuses, and only 174 exist) and a piece on a glowing square (×1.25). The very best board (×1.375) takes a full set to about 11,000.

A week of Moves

Every day you can make one Move with a piece you have staked. It burns a few tokens and puts you in this week's pot. Your Move's weight = your score × the piece's weight × your streak bonus.

Day1234567
Streak bonus+0%+5%+10%+15%+20%+25%+30%

Mia moves her Queen (×1.35) every day: 1,760 × 1.35 = 2,376 weight on day 1, a bit more each day after, about 19,100 for the week. Sam moves a Pawn (×1) every day: about 1,670. If they were the only two players, Mia would get 92% of the week's pot and Sam 8%. Miss a day and the streak starts again from +0%.

When the week ends, each of them claims their share (ETH and tokens) within 30 days. They have to still be staked when they claim: unstaking first gives up the share, and it goes into a later pot for the players who stayed.

Collections

Checkmates: 3,200 pieces. Traits used on-chain: Piece (type) and Square, proven with a Merkle proof built from the final metadata.

Chessboards: 1,024 boards, minted on OpenSea. Each has 1–5 positions: a home square plus up to four more. The home square follows the board number: #1 is a1, #2 b1, … #64 h8, then it starts again, so every square has 16 boards. Staking reads the same rule on-chain.

Move (stage)WhoPriceLimitLength
TreasuryProject walletfree64 boards, given back to the community as rewards15 min
1Checkmates holders (snapshot 4 Nov)0.0015 ETH1 per wallet3 h (17:00–20:00 UTC)
2Holders who missed Move 10.0015 ETHtheir 12 h (20:00–22:00 UTC)
PublicEveryone, no list0.0015 ETH10 per walletfrom 22:00 UTC, until sold out
Mint ETH goes toShare
Starting liquidity of the token pool (added in one go at launch, locked)75%
OpenSea (drop fee)10%
Treasury (marketing, partnerships, growing the pool)10%
Dev5%
Board rarityPositionsShareMultiplier
Common140%1.0×
Uncommon230%1.05×
Rare315%1.1×
Epic410%1.15×
Legendary55%1.25×

Palette rarity multiplies further: Common 1.0×, Uncommon 1.02×, Rare 1.05×, Gilded 1.1×. Board multiplier range: 1.0×–1.375×.

Positions & score

A Position = 1 board + 1–16 pieces, at most one piece per square. Score:

score = tierWeight × composition × perfectMatch × boardMultiplier tierWeight(n) = 100n + 4n(n − 1)   // each extra piece adds more than the last
Pieces12481216
Tier weight1002084481,0241,7282,560

Because every extra piece is worth more than the one before, putting your pieces into one Position always scores more than splitting them across several boards.

Composition (highest only)RequiresBonus
King + Queena King and a Queen×1.25
Armyall six piece types×1.5
Full Setexactly 8 P, 2 N, 2 B, 2 R, 1 Q, 1 K×2.5

Perfect Match ×1.25: any staked piece whose Square is one of the board's positions. Positions are non-transferable; the contract holds the NFTs while staked.

Rewards

Token emissions: 16% of supply streamed linearly over 3 years to Positions, shared pro-rata by score. The contract can never owe more than it holds.

RuleValue
Cycle30 days, counted from each Position's own stake time (no global claim day)
Claimable at the end of a cycle30% of that cycle's earnings
Bonus70%, unlocking in 6 equal monthly slices over the next 6 cycles
Unstake earlyLocked bonus + current cycle are forfeited and redistributed to remaining Positions
Minimum hold24 hours before a Position can claim. Moves are open right away (a set that already played today in another Position, or has a pass running, waits until that ends)
CastleLock tokens into a Position for up to +50% score (full at 1,000 per point of base score). Returned on unstake; leaving within 30 days of a lock-in burns 20%
After emissions endAnyone can call burnUndistributed(): unearned emissions are burned

The token

ERC-20, 1,000,000,000 fixed supply, burnable, no mint function. It launches after the Chessboards sell-out. No token exists yet: the only contract will be posted here and by @checkmates3200 on X.

Bucket%Enforced by
Initial liquidity24Added and locked when the pool is created
Liquidity reserve13Paired with incoming ETH (0.5% of every trade + launch-tax share) and locked in the pool; never sold or withdrawn
Airdrop15AirdropStream
Airdrop Patient bonus5Covers everyone choosing Patient; unused part burned
Emissions233 years: Positions 16%, weekly pots 5%, token lock 2%; leftovers burned
Treasury102% at launch, 8% vested over 24 months, to the Safe
Partners51% at launch, 4% vested over 24 months, to the Safe
Team5Vesting: 12-month cliff, then linear

Trading & fees

One ETH/token Uniswap v4 pool. All fees are taken in ETH by the hook; the pool's own LP fee is 0%. Exact-input swaps only. No discounts: every route pays the same fee.

BuySell
Normal3%3%
Snapshot holders, holder window0%3%
Dip mode (price stays below half its 7-day average)0.5%3%
Hard caps (immutable)3%4%
Every fee goes toShare
Weekly + monthly pots (players)half of the fee
Liquidity reserve (locked in the pool)0.5% of the trade
Dev0.25% of the trade
Treasury (marketing, partnerships, buybacks)the rest (0.75% at 3%)

Launch: a holder-only window where Checkmates and Chessboards holders from the snapshot buy at 0% (per-wallet cap), then a 10-minute launch tax for everyone else, starting at 60% and dropping 5 points a minute to 15%, and a max buy of 0.05 ETH per transaction for the first 30 minutes. Launch-tax premium: 50% liquidity reserve, 50% treasury.

Dip mode (automatic): when the 1-hour average price is below half of the 7-day average, buys pay 0.5% until it is back above 60%. Averages count how long each price held, so a dump can't switch it on instantly: the price has to stay down for hours.

Moves & pots

MoveNeeds stakedPot weightPrice
Pawna Pawn×1.00×1.00
Knight / Bishopthat piece×1.10×1.05
Rooka Rook×1.20×1.10
Queena Queen×1.35×1.20
Kinga King×1.50×1.30

One Move per wallet per day, with a piece you have staked, from the moment it's staked. A set of NFTs plays once a day: one that already played today in another Position waits until the day ends (or until its pass ends); up to 2 extra Moves a day at 2× and 4× the price. Price scales with staked score (about $0.10 to $1 for a week of daily Moves), paid in tokens (burned) or ETH (bought and burned). Weight = staked score × piece weight × streak bonus (+5% per day in a row, up to +30%).

Weekly pot: a third of the pots' ETH plus a weekly token release, split by Move weight. Monthly pot: two thirds of the pots' ETH, for wallets with a Move in each of the 4 weeks, split by their lowest weekly weight. Monthly pass: 28 daily Moves for 28 Moves + 10%. Shares can be claimed for 30 days, then roll into the next pot; unstaking before claiming cancels the share. A claim counts Positions held at least 24 hours: if newer ones would cover the whole share, the claim waits for them (always leaving a day to claim) instead of paying less.

Token lock

Lock tokens for 16, 32, 64 or 128 days (no NFTs needed). Weight = amount × days ÷ 128. Lockers share 2% of supply over 3 years, a fixed amount per day, from the day after locking until the last day. No early exit; days nobody is locked are burned.

Airdrop

WhoAmount
Every Checkmates holder wallet in the 4 Nov snapshot80,000 tokens, one per wallet however many you hold
Every Chessboard held at the snapshot after the sell-out100,000 tokens per board

The airdrop belongs to the wallet, not the NFT: sell a board after the snapshot and your airdrop keeps streaming to you.

PathUnlocks
Normal5% at start, the rest linearly over 180 days
Patient (choose before claiming)Nothing until day 30, then allocation + ⅓ linearly over days 30–180 (same end day as Normal)

Claims stay open for 365 days, after which anyone can burn what is left.

Governance & security

RoleCanCannot
Owner = 48 h timelock (Safe proposes & executes)Change configurable settings within the hard caps (e.g. raise fees up to the caps)Exceed caps, change reward rules, move users' NFTs or tokens
Guardian = Safe (instant)Lower fees, add liquidity within a price band (anyone can add it near the average price)Raise anything, withdraw liquidity

No upgradeable proxies. Reward rules (cycle, 30/70 split, slices, tier weights) are constants. The liquidity reserve has no withdraw or remove function. Randomized invariant tests replay thousands of random actions and check token and ETH accounting to the wei.

The live Checkmates collection uses OpenSea's transfer security registry, so the staking contract must be added to the collection's operator list by its owner before staking opens.

Contracts & ABIs

Contract addresses, verified source code and ABIs are published here at launch.